ubuntu制作本地源

转自:https://www.cnblogs.com/sixloop/p/make_ubuntu_apt_repo.html

ubuntu制作apt源
今天我们来讲一下怎么制作ubuntu源。
工作中给客户部署经常没有外网,这个时候我们就需要自己建立apt源仓库。

安装并配置web server

首先需要一个web server,常用的nginx 、apache httpd 等均可。
这里我们以nginx为例。

1.1. 安装:

apt install nginx

1.2. 编辑配置

编辑nginx配置文件,添加如下内容:

server { error_log /var/log/nginx/apt_server.log info; listen 8080; #server_name www.example.com; root /var/www/apt_server; autoindex on; location / { #index index.html index.htm; } }

这里假设我们仓库目录是/var/www/apt_server

1.3. 重载配置

nginx -t reload

初始化仓库目录

和官方仓库 一样,我们按ubuntu版本来组织目录(本人用的zesty版本)

mkdir -p /var/www/apt_server
cd /var/www/apt_server
mkdir -p dists/zesty/main/binary-amd64
mkdir -p dists/zesty/main/binary-i386
ln -s /var/cache/apt/archives /var/www/apt_server/packages

保存自己的离线deb包

执行过sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install XXX操作后,更新包和系统光盘里面没有的软件包都会保存在
/var/cache/apt/archives/目录下。
先随便下载一个包试试:

apt-get install tcpdump

这个时候/var/cache/apt/archives下会有一个deb包:
tcpdump_4.9.2-0ubuntu0.17.04.2_amd64.deb

建立包列表及依赖信息文件

4.1. 安装必要的软件包dpkg-dev

sudo apt-get install dpkg-dev

4.2. 建立包列表及依赖信息文件

cd /var/www/apt_server/
dpkg-scanpackages packages /dev/null
| gzip > dists/zesty/main/binary-amd64/Packages.gz
dpkg-scanpackages packages /dev/null
| gzip > dists/zesty/main/binary-i386/Packages.gz

该命令执行完成后,会生成一个Packages.gz文件,里面记录了本地包的列表及包依赖信息。
(客户端sudo apt-get update命令其实就是为了获取并更新该文件中的信息 )

至此,本地源就基本建好了。

验证本地仓库可用性

下面是我们在一台客户机中指定我们的apt源。

5.1. 配置客户机仓库列表

sudo vim /etc/apt/sources.list

加入我们的源地址:

 #deb http://mirrors.163.com/ubuntu/ zesty main restricted universe multiverse #deb http://mirrors.163.com/ubuntu/ zesty-updates main restricted universe multiverse #deb http://mirrors.163.com/ubuntu/ zesty-security main restricted universe multiverse #deb http://mirrors.163.com/ubuntu/ zesty-proposed main restricted universe multiverse #deb http://mirrors.163.com/ubuntu/ zesty-backports main restricted universe multiverse

(这里我们为了测试,先把在线仓库注释掉。)

保存退出vim,然后更新下仓库信息:

sudo apt-get update ---allow-insecure-repositories

5.2. 安装一个软件玩玩

接下来就是正常的apt-get install了。

sudo apt-get install tcpdump --allow-unauthenticated
注意事项:需要加上这个 --allow-unauthenticated选项。本地的源是没有签名的,直接更新ubuntu1604下的apt会提示找不到release文件,是一种不安全的源,默认是被禁用的。

安装过程中应该会看到是从我们自建的apt源下载的。

 

注:

  这样制作的apt源没有签名,可能apt-get update报错,解决办法:

  1、添加apt签名

  2、在源中添加信任

  deb [arch=amd64 trusted=yes] http://192.168.133.236:8080 zesty main

posted @ 2021-05-11 11:00  莘莘学子  阅读(641)  评论(0编辑  收藏  举报