我有一些离线的 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
全做完了!我们的包裹准备好了! (注意:这只是一个示例,官方包的创建需要更多工作)。