当前位置: 首页 > news >正文

ubuntu创建apt-mirror本地仓库

        首先创建apt-mirror的服务端,也就是存储所有apt-get下载的文件和依赖。大约需要300G,预留400G左右空间就可以开始了。

        安装ubuntu省略,用的是ubuntu202204

        ubuntu挂载硬盘(不需要的可以跳过):

#下载挂载工具
sudo apt-get install nfs-3g#查看空间大小,比照大小找到你的加的400G以上的硬盘
#df -lh#创建一个挂载目录
mkdir /data1#挂载
mount -t ntfs-3g /"df -lh命令找到的磁盘目录" /data1#然后cd 到 / 目录,你就可以看到你新加的硬盘/data1了 

正式开始

一、服务端

1、安装插件

        apt-mirror用于下载源并保存;nginx用于开启服务,让apt后续配置sources.list文件的地址可以找到。

sudo apt-get install apt-mirror
sudo apt-get install nginx

2、创建apt-miror存储目录

在刚刚挂载的硬盘中创建源存储目录:

#如果你是按照上述把新硬盘挂载在了/data1,那就进入/data1创建这个文件夹,后续所有涉及目录的地方也要加上/data1,后面出现的地方我会提示
mkdir /linoxide

3、修改apt-mirror配置文件

第一个配置是修改下载目录和下载的源

vi /etc/apt/mirror.list
############# config ##################
#
#数据基目录,此处看你的环境是否需要改为/data1/linoxide
set base_path    /linoxide
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
#设置下载线程数
set nthreads     20
set _tilde 0
#
############# end config ##############
deb https://mirror.sjtu.edu.cn/ubuntu jammy main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-security main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-updates main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-proposed main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-backports main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-security main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-updates main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-proposed main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-backports main restricted universe multiverse
#这个脚本会清除上游服务器废弃的包的
clean https://mirror.sjtu.edu.cn/ubuntu

记得保存 

        第二个配置是让apt-mirror识别到cnf文件并下载同步(其实下载完成后不只是缺cnf,但是只加上cnf就可以了。后续追求完美看看apt update的时候缺什么可以加一下)

vi /usr/bin/apt-mirror
add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.bz2" );
add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.xz" );
#差不多在450行左右加入下面这一句
add_url_to_download( $url . $_ . "/cnf/Commands-" . $arch . ".xz" );
add_url_to_download( $url . $_ . "/i18n/Index" );

 记得保存

【vi不好用可以用nano编辑】

4、开始下载

直接运行指令:

sudo apt-mirror

可能需要很长时间,等待下载就可以了,下载完成差不多是这个样子

下载完的目录内容是三个文件

mirror文件就是主要内容了

5、替换文件

        将/mirror/mirror.sjtu.edu.cn/ubuntu目录下的的dists文件替换为/skel/mirror.sjtu.edu.cn/ubuntu目录下的dists文件

        否则配置sources.list后每次apt-install都会显示无法找到下载文件。

6、固定IP

固定服务端也就是下载好apt-mirror的电脑IP

apt-get install net-tools
ifconfig

#ubuntu202204是这个,老版本好像不太一样
cd /etc/netplan
vi 01-network-manager-all.yaml
network:ethernets:#换成你ifconfig看到的决定ip的网口,我这里是叫enp2s0enp2s0:dhcp4: false#保证端口号别被占用addresses: [192.168.1.166/24]gateway4: 192.168.1.1optional: truenameservers:addresses: [144.144.144.144, 8.8.8.8]version: 2

 记得保存,然后生效一下

sudo netplan apply

然后再ifconfig看看ip是否生效,再打开ubuntu自动安装的火狐看看有没有网络

7、挂载源文件

纯粹为了方便管理

#看你的磁盘情况是/data1/linoxide还是/linoxide
sudo ln -s /linoxide /packages/apt-mirror

8、开放apt-mirror文件服务

这里要用到第一步中下载的nginx

sudo vi /etc/nginx/sites-available/default

server {#保证80别被占用,占用了用别的端口号也行,但是后面客户端源端口要改listen 80 default_server;listen [::]:80 default_server;root /var/www/html;index index.html index.htm index.nginx-debian.htmlserver_name loaclhost;autoindex on;location / {index index.html index.htm;#当然你也可以绑定的深一点,然后apt配置文件直接加/ubunturoot /packages;try_files $uri $uri/ =404;}
}

记得保存,然后生效一下

sudo service nginx restart

 然后打开网站就可以看到:

 进入我们的关键目录看一看

        服务端配置完成,服务端就可以不需要网络了。

        如果是有网络环境可以定时执行sudo apt-mirror更新源,也可以写一个脚本定时更新。

二、客户端

        客户端要和服务端同一网段,我上面服务端是192.168.1.166,客户端也要在192.168.1下。客户端也随便固定个ip就可以了。

1、更改apt源

sudo vi /etc/apt/sources.list

         模拟环境是客户端没有网络,所以其他源也请求不到了,只能请求到新的服务端的源,所以文件内之前的内容全部注释或者删掉都可以。

        文件内写入下面几行:

#下面的192.168.1.166换成你设置的服务端IP
#地址也是,nginx可以绑定更深层,这里也就可以少写了
deb [arch=amd64] http://192.168.1.166/apt-mirror/mirror/mirror.sjtu.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb [arch=amd64] http://192.168.1.166/apt-mirror/mirror/mirror.sjtu.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb [arch=amd64] http://192.168.1.166/apt-mirror/mirror/mirror.sjtu.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse 
deb [arch=amd64] http://192.168.1.166/apt-mirror/mirror/mirror.sjtu.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb [arch=amd64] http://192.168.1.166/apt-mirror/mirror/mirror.sjtu.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse    

 记得保存,然后生效一下

sudo apt-get update

等待执行完成

2、验证

sudo apt-get install apache2

        如果下载成功,看一下下载的源是什么地方,如果是刚才配置的服务器,那就是成功了。

sudo apt policy apache2

相关文章:

ubuntu创建apt-mirror本地仓库

首先创建apt-mirror的服务端&#xff0c;也就是存储所有apt-get下载的文件和依赖。大约需要300G&#xff0c;预留400G左右空间就可以开始了。 安装ubuntu省略&#xff0c;用的是ubuntu202204 ubuntu挂载硬盘&#xff08;不需要的可以跳过&#xff09;: #下载挂载工具 sudo apt…...

计算机网络 internet应用 (水

ARPA net ---Internet 前身 发展史: ARPA net 第一个主干网..美国军方NSFnet 美国国家科学基金会NSFANSnet 美国全国 (internet 叫法开始出现) 第二代互联网(现在() IP地址 IP地址 最高管理机构 - InterNIC IPV4 32位 IPV6 128位 域名 起名 解析 domain name sys…...

【ChatGLM3】第三代大语言模型多GPU部署指南

关于ChatGLM3 ChatGLM3是智谱AI与清华大学KEG实验室联合发布的新一代对话预训练模型。在第二代ChatGLM的基础之上&#xff0c; 更强大的基础模型&#xff1a; ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、…...

云原生Kubernetes系列 | Docker/Kubernetes的卷管理

云原生Kubernetes系列 | Docker/Kubernetes的卷管理 1. Docker卷管理2. Kubernetes卷管理2.1. 本地存储2.1.1. emptyDir2.1.2. hostPath2.2. 网络存储2.2.1. 使用NFS2.2.2. 使用ISCSI2.3. 持久化存储2.3.1. PV和PVC2.3.2. 访问模式2.3.3. 回收策略1. Docker卷管理...

Java实现快速排序算法

快速排序算法 &#xff08;1&#xff09;概念&#xff1a;快速排序是指通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行&…...

MAC配置环境变量

1、配置 JAVA JDK 1.1、查看 JDK 安装目录 &#xff08;1&#xff09;可以在Android Studio中查看&#xff0c;复制该路径 &#xff08;2&#xff09;也可以在官网下载 Java JDK下载地址 mac中的安装地址是"资源库->Java->JavaVirtualMachines"中 1.2、…...

系列五、DQL

一、DQL 1.1、概述 DQL的英文全称为&#xff1a;Data Query Language&#xff0c;中文意思为&#xff1a;数据查询语言&#xff0c;用大白话讲就是查询数据。对于大多数系统来说&#xff0c;查询操作的频次是要远高于增删改的&#xff0c;当我们去访问企业官网、电商网站&…...

【智能家居】七、人脸识别 翔云平台编程使用(编译openSSL支持libcurl的https访问、安装SSL依赖库openSSL)

一、翔云 人工智能开放平台 API文档开发示例下载 二、编译openSSL支持libcurl的https访问 安装SSL依赖库openSSL(使用工具wget)libcurl库重新配置&#xff0c;编译&#xff0c;安装运行&#xff08;运行需添加动态库为环境变量&#xff09; 三、编程实现人脸识别 四、Base6…...

基于node 安装express后端脚手架

1.首先创建文件件 2.在文件夹内打开终端 npm init 3.安装express: npm install -g express-generator注意的地方&#xff1a;这个时候安装特别慢,最后导致不成功 解决方法&#xff1a;npm config set registry http://registry.npm.taobao.org/ 4.依次执行 npm install -g ex…...

Mrdoc知识文档

MrDoc知识文档平台是一款基于Python开发的在线文档系统&#xff0c;适合作为个人和中小型团队的私有云文档、云笔记和知识管理工具&#xff0c;致力于成为优秀的私有化在线文档部署方案。我现在主要把markdown笔记放在上面&#xff0c;因为平时老是需要查询一些知识点&#xff…...

C语言中getchar函数

在 C 语言中&#xff0c;getchar() 是一个标准库函数&#xff0c;用于从标准输入&#xff08;通常是键盘&#xff09;读取单个字符。它的函数原型如下&#xff1a; int getchar(void);getchar() 函数的工作原理如下&#xff1a; 当调用 getchar() 函数时&#xff0c;它会等待…...

全栈开发组合

SpringBoot是什么&#xff1f; SpringBoot是一个基于Spring框架的开源框架&#xff0c;由Pivotal团队开发。它的设计目的是用来简化Spring应用的初始搭建以及开发过程。SpringBoot提供了丰富的Spring模块化支持&#xff0c;可以帮助开发者更轻松快捷地构建出企业级应用 Sprin…...

wpf TelerikUI使用DragDropManager

首先&#xff0c;我先创建事务对象ApplicationInfo&#xff0c;当暴露出一对属性当例子集合对于构成ListBoxes。这个类在例子中显示如下代码&#xff1a; public class ApplicationInfo { public Double Price { get; set; } public String IconPath { get; set; } public …...

Python+Appium自动化测试之元素等待方法与重新封装元素定位方法

在appium自动化测试脚本运行的过程中&#xff0c;因为网络不稳定、测试机或模拟器卡顿等原因&#xff0c;有时候会出现页面元素加载超时元素定位失败的情况&#xff0c;但实际这又不是bug&#xff0c;只是元素加载较慢&#xff0c;这个时候我们就会使用元素等待的方法来避免这种…...

详解Maven如何打包SpringBoot工程

目录 一、spring-boot-maven-plugin详解 1、添加spring-boot-maven-plugin插件到pom.xml 2、配置主类&#xff08;Main Class&#xff09; 3、配置打包的JAR文件名 4、包含或排除特定的资源文件 5、指定额外的依赖项 6、配置运行参数 7、自定义插件执行阶段 二、Maven打…...

PyQt6 QFrame分割线控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…...

PostgreSql 序列

一、概述 在 PostgreSQL 中&#xff0c;序列用于生成唯一标识符&#xff0c;通常用于为表的主键列生成连续的唯一值。若目的仅是为表字段设置自增 id&#xff0c;可考虑序列类型来实现&#xff0c;可参考《PostgreSql 设置自增字段》 二、创建序列 2.1 语法 CREATE [ TEMPOR…...

【深度学习目标检测】六、基于深度学习的路标识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…...

Vue3上传图片和删除图片

<div class"illness-img"><van-uploader:after-read"onAfterRead"delete"onDeleteImg"v-model"fileList"max-count"9":max-size"5 * 1024 * 1024"upload-icon"photo-o"upload-text"上传图…...

华为配置VRRP负载分担示例

组网需求 如图1所示&#xff0c;HostA和HostC通过Switch双归属到SwitchA和SwitchB。为减轻SwitchA上数据流量的承载压力&#xff0c;HostA以SwitchA为默认网关接入Internet&#xff0c;SwitchB作为备份网关&#xff1b;HostC以SwitchB为默认网关接入Internet&#xff0c;Switc…...

TinyUPnP:嵌入式设备轻量级UPnP端口映射实现

1. TinyUPnP&#xff1a;面向嵌入式平台的轻量级UPnP IGD客户端实现 TinyUPnP 是一个专为资源受限嵌入式系统设计的极简 UPnP&#xff08;Universal Plug and Play&#xff09;Internet Gateway Device&#xff08;IGD&#xff09;客户端库&#xff0c;核心目标是 在无用户干预…...

如何免费使用Pyfa:EVE Online舰船配置终极实用指南

如何免费使用Pyfa&#xff1a;EVE Online舰船配置终极实用指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa Pyfa&#xff08;Python Fitting Assistant&#xff09…...

DLSS Swapper完整指南:掌握游戏性能优化的终极工具

DLSS Swapper完整指南&#xff1a;掌握游戏性能优化的终极工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款革命性的游戏性能优化工具&#xff0c;专为现代PC游戏玩家设计。这款开源软件让您能够…...

从零到一:MicroPython 环境搭建与首个硬件交互项目实战

1. 初识MicroPython&#xff1a;为什么选择它&#xff1f; 第一次接触MicroPython时&#xff0c;我正为一个智能家居项目寻找合适的开发方案。当时被它"Python on hardware"的理念吸引——毕竟谁能拒绝用熟悉的Python语法直接控制硬件呢&#xff1f;MicroPython本质上…...

Chrome密码一键提取:3分钟找回所有浏览器保存的密码

Chrome密码一键提取&#xff1a;3分钟找回所有浏览器保存的密码 【免费下载链接】chromepass Get all passwords stored by Chrome on WINDOWS. 项目地址: https://gitcode.com/gh_mirrors/chr/chromepass 你是否曾经因为忘记某个重要网站的登录密码而感到焦虑&#xff…...

DCT-Net人像卡通化真实案例:企业年会电子抽奖卡通头像墙

DCT-Net人像卡通化真实案例&#xff1a;企业年会电子抽奖卡通头像墙 年底了&#xff0c;公司年会又要来了。行政部的同事找到我&#xff0c;说今年想搞点新花样&#xff0c;电子抽奖环节能不能不用大家千篇一律的证件照&#xff0c;换成好玩的卡通头像墙&#xff1f;这样抽奖的…...

Android Framework开发工程师深度解析与技术指南

引言 在移动智能设备普及的今天,Android系统作为全球主流的操作系统,其Framework层开发是支撑整个生态的核心。Android Framework开发工程师负责系统架构设计、深度定制与兼容性优化,确保设备高效运行。本文将基于职位描述的核心要素,系统解析Android Framework开发的技术…...

开源LoRA模型落地实操:Z-Image-Turbo+孙珍妮风格的Gradio快速调用教程

开源LoRA模型落地实操&#xff1a;Z-Image-Turbo孙珍妮风格的Gradio快速调用教程 想用AI生成特定风格的明星写真&#xff0c;但觉得在线服务限制多、效果不可控&#xff1f;自己部署模型又担心太复杂&#xff1f;今天&#xff0c;我们就来解决这个问题。 我将带你一步步&…...

技术人终身学习:2026年软件测试从业者必跟的5个播客

在技术迭代日新月异的今天&#xff0c;终身学习已不再是可选项&#xff0c;而是软件测试从业者保持竞争力的生存法则。碎片化的时间如何转化为系统性的认知升级&#xff1f;深度思考如何突破日常工作环境的局限&#xff1f;播客&#xff0c;以其伴随性强、信息密度高、视角多元…...

不止是缓存:深入Quartus FIFO IP核,玩转Show-ahead与Normal模式下的数据吞吐率优化

深入解析Quartus FIFO IP核&#xff1a;Show-ahead与Normal模式下的性能优化实战 在FPGA开发中&#xff0c;数据流处理系统的性能瓶颈往往出现在数据缓冲环节。作为Intel Quartus Prime工具链中的关键IP核&#xff0c;FIFO&#xff08;First In First Out&#xff09;缓冲器的…...