Как создать метапакет, который автоматически устанавливает другие пакеты?
Я хотел бы иметь возможность создавать пакет, который не содержит сам код или программы, но вместо этого устанавливает другие пакеты, которые существуют в репозиториях, на компьютер, вроде как ubuntu-restricted-extras
пакет делает?
1 ответ
Подобный метапакет может быть создан с помощью инструмента под названием equivs
который создаст пакет только с информацией о зависимостях.
Сначала создайте каталог:
mkdir my-metapackage
cd my-metapackage/
Теперь запустите программу:
equivs-control ns-control
Это создаст файл с именем ns-control
откройте этот файл в текстовом редакторе. Управляющий файл, который вы генерируете, должен иметь свой Depends
или же Recommends
строки, измененные в зависимости от пакетов, которые вы хотите установить:
Section: misc
Priority: optional
Standards-Version: 3.9.1
Package: my-metapackage
Version: 1.0
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
The Long description of this package ends with a newline!
(Просто пример, вы должны включить больше информации)
И, наконец, соберите пакет, запустив
equivs-build ns-control
Ваша посылка находится по адресу my-metapackage/my-metapackage_1.0_all.deb
,
Если вы хотите также создать пакет с исходным кодом, --full
опция может быть передана equivs-build
например, equivs-build --full ns-control
, Это будет использовать debuild, а также создавать файлы.dsc &.tar.gz.
Чтобы создать исходный файл.changes, который вы можете загрузить в PPA, извлеките и соберите исходный пакет с помощью
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
Если Maintainer, который вы установили в ns-control, совпадает с вашим ключом GPG, он должен создать и подписать файл my-metapackage_1.0_source.changes, чтобы вы передали его на ваш PPA