我想知道是否有可能有一个 debian 包可以安装另一个 debian/ubuntu 存储库中没有的包作为依赖项。
假设我有一个A.deb
依赖 的包,B.deb
但B.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