Как создать метапакет, который автоматически устанавливает другие пакеты?
Я хотел бы иметь возможность создавать пакет, который не содержит сам код или программы, но вместо этого устанавливает другие пакеты, которые существуют в репозиториях, на компьютер, вроде как 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