为离线 Ubuntu 机器创建自己的软件包存储库

为离线 Ubuntu 机器创建自己的软件包存储库

我有一些离线的 Ubuntu 18.04 LTS amd64 机器用于软件开发,我需要为它们创建一个包存储库。 (或者在最坏的情况下是包含包的目录)。我该如何解决这个问题?我需要一组具有所有依赖项的常见 c++ 和 python 相关包(标准 c++ 库、pip、numpy...)。

珍惜每一个答案

编辑:重点是如何在另一个(类型)系统上获取软件包。

答案1

我们需要安装一个包:

sudo apt-get install build-essential

创建 Debian 软件包

为此,我们使用dpkg-deb 工具。首先,我们需要创建德比安封装结构。构建所需的唯一文件德比安套餐有:

DEBIAN/control 自定义文件成为包的一部分(不是必需的)首先创建一个名为的目录你好世界。该目录将保存所有必需的包文件:

mkdir helloworld

接下来,创建 DEBIAN 目录和控制文件:

mkdir helloworld/DEBIAN
vi helloworld/DEBIAN/control

在控制文件中,我们输入以下信息:

Package: linuxconfig
Version: 1.0
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: linuxconfig.org
Description: Print linuxconfig.org on the screen

太好了,唯一缺少的是我们的helloworld程序。在helloworld目录中,我们创建一个目录树,它代表我们的程序将在系统中安装的路径,并将可执行文件复制到其中:

mkdir -p helloworld/usr/bin/
cp /path/to/helloworld helloworld/usr/bin/

此时我们已准备好创建包:

dpkg-deb --build helloworld 
dpkg-deb: building package `helloworld ' in `helloworld.deb'.
ls
linuxconfig  linuxconfig.deb

您可能想要更改包的名称,以便它包含程序版本和包体系结构。例如:

mv helloworld.deb helloworld-1.0_amd64.deb

全做完了!我们的包裹准备好了! (注意:这只是一个示例,官方包的创建需要更多工作)。

相关内容