Ubuntu/Debian 自有软件包构建私有源详解

  • Post category:Linux

下面是“Ubuntu/Debian自有软件包构建私有源详解”的攻略:

什么是自有软件包构建私有源?

自有软件包构建私有源,就是将自己编译或者下载的软件包放到自己的服务器上,供本地网络内部使用。

构建私有源的步骤

步骤一:安装必要的软件

首先需要在本地的服务器上安装必要的软件包,包括dpkg-devapache2apt-ftparchivedpkg-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

  1. 首先,我们需要从官网下载最新版的 redis-server

  2. 然后将下载后的 redis-server 文件放到我们之前创建的软件包存放目录中 /var/www/packages/debian/stretch/

  3. 接着,我们需要通过 apt-ftparchive 命令生成 Release 文件,并通过 dpkg-sig 命令签名软件包;

  4. 最后,我们需要将私有源地址添加到本地源列表中,并使用 apt 命令安装 redis-server

这样就可以通过自己的私有源来安装最新版的 redis-server 了。

示例二:开发自己的软件包

假设我们现在需要开发自己的软件包,并在本地网络内使用。这时我们可以通过自己的私有源来实现。

开发自己的软件包,我们需要首先在开发机上编写代码,然后将代码打包(使用 .deb 格式),最后上传到私有源。

  1. 在开发机上编写好代码之后,我们可以使用 dpkg-deb 工具将代码打包成 .deb 文件;

  2. 将打包好的 .deb 文件上传到我们之前创建的软件包存放目录中 /var/www/packages/debian/stretch/

  3. 接着,我们需要通过 apt-ftparchive 命令生成 Release 文件,并通过 dpkg-sig 命令签名软件包;

  4. 最后,我们需要将私有源地址添加到本地源列表中,并使用 apt 命令安装我们开发的软件包。

这样就可以通过自己的私有源来使用我们开发的软件包了。