ubuntu制作本地镜像源教程

一、制作本地镜像源的原因

1. 内网部署

虽然我们在开发过程中使用linux服务器,往往都可以联网,装个软件直接apt install 非常的方便;

但是处于安全考虑,很多客户的服务器是绝对内网的,比如公安网;那么你要装个软件就会发现缺少很多依赖,而当你装一个依赖的时候又报错缺少另一个依赖,有时甚至会陷入循环的依赖中。导致部署异常的困难。

2.其他原因

离线安装和维护

更好的软件版本管理

增强系统的安全性和可稳定性

二、制作方法

1. 下载依赖

从一台可以联网的服务器中下载相关deb包,为了防止版本不同导致依赖版本不对,最好linux版本也一样。

下载包括依赖包;拿build-essential举例

image-20241022211721482

/var/cache/apt/archives 是默认的安装包缓存地址

此时系统中无任何缓存文件;

执行命令: -d 标识仅下载不安装,-f 是自动解决依赖问题

apt -d -f -y install build-essential

image-20241022234839639

可以看到下载了相关依赖包;

2. 制作离线包

# 创建一个名为 /opt/ubuntu_mirrors 的目录,用于存放后续操作相关的文件和数据
mkdir /opt/ubuntu_mirrors

# 将 /var/cache/apt/archives/ 目录下的所有文件和目录递归复制到 /opt/ubuntu_mirrors 目录中
cp -r /var/cache/apt/archives/* /opt/ubuntu_mirrors

# 切换当前工作目录到 /opt/ubuntu_mirrors
cd /opt/ubuntu_mirrors 

# 删除 partial/ 目录及其lock 文件
rm -rf partial/ lock

# 使用 apt-ftparchive 工具生成当前目录(. 表示当前目录,即 /opt/ubuntu_mirrors)下的软件包信息文件 Packages
# 这个文件包含了当前目录中软件包的详细信息,如名称、版本、依赖关系等,用于构建本地镜像源的软件包索引
apt-ftparchive packages. > Packages

# 使用 apt-ftparchive 工具生成当前目录下的发布信息文件 Release
# 该文件包含了关于本地镜像源的一些基本信息,如镜像源的描述、包含的组件、日期等,用于提供给 apt 工具识别和使用本地镜像源
apt-ftparchive release. > Release

# 切换当前工作目录到上级目录(即 /opt)
cd../

# 将 /opt/ubuntu_mirrors/ 目录及其内容打包成一个名为 ubuntu_mirrors.tar 的 tar 归档文件
# 这个归档文件可以用于备份、传输或分发本地镜像源相关的数据
tar -cvf ubuntu_mirrors.tar ubuntu_mirrors/

这时候本地源离线包ubuntu_mirrors.tar就制作好了;

image-20241022235514194

三、使用本地镜像源

使用上述打包的本地镜像源ubuntu_mirrors.tar的服务器中;

# 切换目录 /opt
cd /opt

# 解压
tar -xvf ubuntu_mirrors.tar

# 备份系统原本的软件源,ubuntu24.04及以上的版本路径为 /etc/apt/sources.list.d/ubuntu.sources
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 使用 echo 命令向 /etc/apt/sources.list 文件追加新的一行内容,即本地镜像源的配置信息
# "deb [trusted=yes] file:/opt/ubuntu_mirrors./" 是配置格式
# "deb" 表示这是一个 Debian 软件源类型
# "[trusted=yes]" 表示信任该软件源,不进行数字签名验证(因为是本地构建的,假设其可信)
# "file:/opt/ubuntu_mirrors" 是本地镜像源的文件路径
# "./" 表示该软件源的目录结构为当前目录(在本地镜像源的上下文中就是 /opt/ubuntu_mirrors 目录下的相应结构)
echo "deb [trusted=yes] file:/opt/ubuntu_mirrors./" >>/etc/apt/sources.list

# 更新软件包列表,让系统根据新配置的本地镜像源获取软件包信息
# 此操作会扫描本地镜像源目录,读取软件包的相关元数据,如软件包名称、版本、依赖关系等,并更新本地的软件包索引
apt update 

# 离线安装 build-essential 软件包及其依赖项
apt install -y build-essential

Snipaste_2024-10-23_00-12-33

四、apt的常见参数

apt 可以自动处理依赖问题

1. 重装

使用 --reinstall 即可

例如 重装 build-essential

apt -f -y install --reinstall build-essential

2. 查看已经安装的软件

apt list --installed 配合grep筛选

3.卸载

apt-get remove 保留配置文件)、 apt-get purge (彻底删除)

4. 搜索

apt search

五. dpkg 的常用参数

dpkg 不会自动处理依赖问题

1. 安装软件

dpkg -i *.deb

可以直接制定deb文件的名称;但有时候会因为缺少依赖而安装失败;

2. 查看已安装的软件

dpkg -l 配合 grep 管道来进行查询

3. 卸载软件

dpkg -r (保留配置文件)、 dpkg -P (彻底删除)

以上就是ubuntu制作本地镜像源的详细过程,学会这种技巧,后续再离线部署的时候就不慌张了,也有一定的思路了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaOpsPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值