创建安装另一个 Debian 包的 Debian 包(不是来自存储库)

创建安装另一个 Debian 包的 Debian 包(不是来自存储库)

我想知道是否有可能有一个 debian 包可以安装另一个 debian/ubuntu 存储库中没有的包作为依赖项。

假设我有一个A.deb依赖 的包,B.debB.deb它不在任何存储库中可用。A.deb和都B.deb仅在本地硬盘上可用。 有没有安装方法A.deb(例如使用apt install ./A.deb)以便它也会自动安装B.deb

答案1

创建一个本地的临时存储库。将 A.deb 和 B.deb 都放在其中。* 创建一个文件夹 Repo。* 将所有 .deb 文件复制到其中。* 现在创建Packages索引文件。

$ dpkg-scanpackages Repo > Repo/Packages
$ gzip -c Repo/Package > Repo/Packages.gz
  • 在 sources.list 中为 Repo 创建条目。

    $ mkdir /etc/apt/sources.list.d
    
    $ touch /etc/apt/sources.list.d/Repo.list
    
    $ echo "deb [trusted=yes] file:/Repo /" > /etc/apt/sources.list.d/Repo.list
    

如果显示缺少 InRelease 文件或 Release.gpg 文件,请使用 apt-get。

现在 apt 还会在您的个人仓库中搜索缺少的依赖项。如果 A.deb 依赖于 B.deb,则它会安装它。

如果你想创建一个包来从不同位置下载和安装各种包。也许你可以使用Debian preinst、postinst、prerm 和 postrm 脚本

7.6 什么是 Debian preinst、postinst、prerm 和 postrm 脚本?

这些文件是可执行脚本,在安装或删除软件包之前或之后自动运行。连同名为 control 的文件,所有这些文件都是 Debian 档案文件的“control”部分的一部分。

https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html

相关内容