ubuntu · 2020-08-24

ubuntu使用dpkg-scanpackages和nginx搭建本地源

一、服务端安装dpkg-dev和nginx

服务端主机名 node, 版本 Ubuntu 22.04 LTS

apt-get install dpkg-dev nginx -y

二、创建目录

software 目录存放 deb 包
jammy 表示 ubuntu 的版本
binary-amd64 是 64 位操作系统

mkdir -p /var/debs/ubuntu/software/
mkdir -p /var/debs/ubuntu/dists/jammy/main/binary-i386/
mkdir -p /var/debs/ubuntu/dists/jammy/main/binary-amd64/

三、下载deb包

使用 apt download 下载deb包,会把deb包下载到当前目录

apt download vim

把当前目录下的deb包拷贝到 /var/debs/ubuntu/software/ 目录下

mv ./*.deb /var/debs/ubuntu/software/

四、使用dpkg-scanpackages生成Packages.gz

Packages.gz 是索引文件

dpkg-scanpackages software/ /dev/null | gzip > dists/jammy/main/binary-i386/Packages.gz
dpkg-scanpackages software/ /dev/null | gzip > dists/jammy/main/binary-amd64/Packages.gz

执行效果:

root@node:/var/debs/ubuntu# ls
dists  software
root@node:/var/debs/ubuntu# dpkg-scanpackages software/ /dev/null | gzip > dists/jammy/main/binary-i386/Packages.gz
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   vim
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
root@node:/var/debs/ubuntu# dpkg-scanpackages software/ /dev/null | gzip > dists/jammy/main/binary-amd64/Packages.gz
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   vim
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.

五、配置nginx

/etc/nginx/conf.d/ 目录下新建 default.conf 配置文件

server {
    listen 8088;
    location / {
        autoindex on;
        root /var/debs;
    }
}

六、客户端配置apt源

客户端主机名node001
在客户端 /etc/apt/sources.list 下,配置apt源

deb [trusted=yes] http://node:8088/ubuntu/ jammy main

更新源

apt update

执行效果:

root@node001:~# apt update
Ign:1 http://node:8088/ubuntu jammy InRelease
Ign:2 http://node:8088/ubuntu jammy Release
Ign:3 http://node:8088/ubuntu jammy/main amd64 Packages
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Ign:3 http://node:8088/ubuntu jammy/main amd64 Packages
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Ign:3 http://node:8088/ubuntu jammy/main amd64 Packages
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Get:3 http://node:8088/ubuntu jammy/main amd64 Packages [799 B]
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Ign:4 http://node:8088/ubuntu jammy/main all Packages
Ign:5 http://node:8088/ubuntu jammy/main Translation-en
Ign:6 http://node:8088/ubuntu jammy/main amd64 c-n-f Metadata
Ign:7 http://node:8088/ubuntu jammy/main all c-n-f Metadata
Fetched 799 B in 1s (720 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

使用apt安装vim

执行效果:

root@node001:~# apt install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1733 kB of archives.
After this operation, 4027 kB of additional disk space will be used.
Get:1 http://node:8088/ubuntu jammy/main amd64 vim amd64 2:8.2.3995-1ubuntu2.35 [1733 kB]
...