Я хотел бы знать, возможно ли иметь debian пакет, который устанавливает другой пакет как зависимость, которая не доступна из debian/ubuntu репозиториев.
Так позволяет, говорят, что у меня есть пакет A.deb
который зависит от B.deb
но B.deb
не доступно ни в каком репозитории. Оба A.deb
и B.deb
доступны только на локальном жестком диске. Есть ли способ установить A.deb
(например, с apt install ./A.deb
) таким образом, что это автоматически также установит B.deb
?
Создайте локальный tivial Репозиторий. Поместите и A.deb и B.deb в нем. * Создайте папку Repo. * Скопируйте все .deb файлы в нем. * Теперь создайте Packages
индексный файл.
$ dpkg-scanpackages Repo > Repo/Packages
$ gzip -c Repo/Package > Repo/Packages.gz
Создайте запись для Repo в sources.list.
$ 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 - добираются.
Теперь склонный будет искать недостающие зависимости в Вашем Персональном Repo также. И если A.deb будет зависеть от B.deb, то он установит его.
Если Вы хотите создать пакет, чтобы загрузить и установить различные пакеты от различных местоположений. Можете быть Вы, может использовать Debian preinst, postinst, prerm, и postrm сценарии.
7.6 Что такое Debian preinst, postinst, prerm, и postrm сценарий?
Эти файлы являются исполняемыми скриптами, которые автоматически запущены, прежде или после того, как пакет установлен или удален. Наряду с файлом, названным управлением, все эти файлы являются частью раздела "управления" архивного файла Debian.
https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html