Debian系Linux dpkg和apt源的基本操作和高级操作

Basic and advanced skills of dpkg and apt

Posted by Eric on November 15, 2022

Debian系Linux的包管理软件是 dpkg / apt , 在国内, 最基础的操作就是换源. 常见的有清华tuna, ustc, aliyun , 网易163 等. 其中aliyun 因为用的人太多了, 速度明显比较慢. 特别是在firefly默认使用aliyun源的情况下, 所以如果板子是 aliyun的源, 我也会换成ustc.

高级一点的操作是自己建立一个源, 这部分详细正规的操作在我转的firefly文章中有详细说明, 这里的例子是一个极简的用apache2源的一个例子. 当然, 外网自定义的话, 也可以用ppa, 不过我试了一下挺麻烦的.

1. 自定义内部源

1
sudo dpkg --configure -a

1. 安装apache2,建立连接

1
sudo apt install apache2

修改三个文件

1
2
3
4
5
 /etc/apache2/apache2.conf
  
 /etc/apache2/ports.conf
  
 /etc/apache2/sites-available/000-default.conf
   

重启,开始,停止服务

1
2
3
4
5
 /etc/init.d/apache2 start
  
 /etc/init.d/apache2 stop
  
 /etc/init.d/apache2 restart

2. 信任源

  1. 生成packages

  2. 生成Release

  3. 生成Release.pgp

  4. 生成InRelease

1
2
3
4
5
dpkg-scanpackages -m . > Packages
apt-ftparchive release .  > Release
gpg --gen-key
gpg --armor --detach-sign --sign -o Release.gpg Release
gpg --clearsign -o InRelease Release

3. 客户端添加source

1
deb [trusted=yes] http://192.168.57.130/packages ./

2. hosts添加内网域名

1
192.168.57.130 baidu.com

3. 板子debian更换国内源

1
sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.ustc.edu.cn@g" /etc/apt/sources.list

4. ubuntu替换国内源

1
sudo sed -i "s@http://.*ubuntu.com@http://mirrors.ustc.edu.cn/@g" /etc/apt/sources.list

5. apt源增加信任

1
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy main restricted universe multiverse