下面是“Ubuntu/Debian自有软件包构建私有源详解”的攻略:
什么是自有软件包构建私有源?
自有软件包构建私有源,就是将自己编译或者下载的软件包放到自己的服务器上,供本地网络内部使用。
构建私有源的步骤
步骤一:安装必要的软件
首先需要在本地的服务器上安装必要的软件包,包括dpkg-dev
、apache2
、apt-ftparchive
、dpkg-sig
等。
sudo apt install dpkg-dev apache2 apt-ftparchive dpkg-sig
步骤二:创建软件包的存放目录
在本地服务器上创建用于存放软件包的目录,例如:
sudo mkdir -p /var/www/packages/debian/stretch
这里的 /var/www/packages/debian/stretch
就是软件包的存放目录,其中 /debian/stretch
表示适用于 Debian9(即Stretch)系统。
步骤三:下载或编译软件包
接下来需要下载或编译软件包,并将其放入到上一步创建的软件包存放目录中。
步骤四:生成Release文件
生成 Release
文件,这个文件非常重要,它是用来验证软件包的安全性的。生成 Release
文件的命令为:
cd /var/www/packages/debian/stretch/
apt-ftparchive release . > Release
其中 .
表示当前目录。
步骤五:签名软件包
签名软件包是为了能够确保软件的安全性。签名方法如下:
dpkg-sig -s builder *.deb
其中 *.deb
表示将当前目录下的所有 .deb
文件全部签名。
步骤六:添加私有源到本地源列表中
添加私有源到本地源列表中,通过编辑 /etc/apt/sources.list
文件,添加以下内容:
deb http://localhost/debian stretch main
其中,http://localhost/debian
表示你的私有源地址。
步骤七:更新缓存并安装软件包
最后,我们需要运行以下命令更新本地缓存,并安装软件包:
sudo apt update
sudo apt install xxx
其中,xxx
表示你要安装的软件包名称。
示例说明
示例一:安装 redis-server
软件包
假设我们需要在本地的服务器上安装 redis-server
,但是官方源中的版本比较老,这时我们可以自己构建私有源来安装最新版的 redis-server
。
-
首先,我们需要从官网下载最新版的
redis-server
; -
然后将下载后的
redis-server
文件放到我们之前创建的软件包存放目录中/var/www/packages/debian/stretch/
; -
接着,我们需要通过
apt-ftparchive
命令生成Release
文件,并通过dpkg-sig
命令签名软件包; -
最后,我们需要将私有源地址添加到本地源列表中,并使用
apt
命令安装redis-server
。
这样就可以通过自己的私有源来安装最新版的 redis-server
了。
示例二:开发自己的软件包
假设我们现在需要开发自己的软件包,并在本地网络内使用。这时我们可以通过自己的私有源来实现。
开发自己的软件包,我们需要首先在开发机上编写代码,然后将代码打包(使用 .deb 格式),最后上传到私有源。
-
在开发机上编写好代码之后,我们可以使用
dpkg-deb
工具将代码打包成.deb
文件; -
将打包好的
.deb
文件上传到我们之前创建的软件包存放目录中/var/www/packages/debian/stretch/
; -
接着,我们需要通过
apt-ftparchive
命令生成Release
文件,并通过dpkg-sig
命令签名软件包; -
最后,我们需要将私有源地址添加到本地源列表中,并使用
apt
命令安装我们开发的软件包。
这样就可以通过自己的私有源来使用我们开发的软件包了。