Я хотел бы создать новый пакет DEB, чтобы установить ряд файлов. Если это вообще возможно, я хотел бы, чтобы распаковать в папку, содержащую эти файлы как часть установки в известную папку. В противном случае, какое-то знание, как упаковать исходные файлы и папки было бы очень полезно.
Вопрос - возможно ли это, и если да - то как?
Позволяет привести пример:
~/mypluginfolder/
содержит файлы x
, y
вложенная папка называетсяabc
, так и внутри , что еще один файл с именем z
.
Я хочу, чтобы очернить эту папку: tar -cvf myfiles.tar ~/mypluginfolder
Я полагаю, мой Debian пакет будет выглядеть
myfiles.tar.gz
myfiles+ppafoss_0.1-1/
myfiles.tar
DEBIAN
changelog, compat, control, install, rules source
Можно ли как - то распаковать myfiles.tar
в известном месте папки, например ,
/usr/share/rhythmbox/plugins/
Таким образом, конечный результат будет выглядеть так:
/usr/share/rhythmbox/plugins/mypluginfolder
/usr/share/rhythmbox/plugins/mypluginfolder\x
/usr/share/rhythmbox/plugins/mypluginfolder\y
/usr/share/rhythmbox/plugins/mypluginfolder\abc\z
Если - предполагая, панель запуска необходим источник, совет будет искать, куда я должна отбросить эти исходные файлы и папки в структуру пакетов DEB.
Это в конечном счете станет серией индивидуального Launchpad пакетов PPA.
То, что я предпочитаю (но, возможно, не смогу достичь ...), чтобы сохранить свою упаковку до минимума - создать серию пакетов из шаблона и настроить необходимый минимум (изменения и т.д. + файл смолы / файл и папка структуру) ,
источник
Ответы:
Ниже, я предполагаю , что источник является открытым (например , скрипты на Python) , которые , следовательно , не связаны с какой - либо архитектуры (например , amd64 или i386), следовательно , «все», Если у вас есть какой - то источник C, вам нужно использовать
Architecture: amd64 i386
в исходномcontrol
файле.создание пакета готовых для Launchpad
Launchpad принимает только пакеты с исходными текстами, поэтому создать
rules
что устанавливает файлы в нужных местах. Для удобства я буду использовать debhelper . Каталог с файлами должен выглядеть следующим образом :debian/copyright
Файл также может быть полезен для информирования пользователей о лицензиях , связанных с пакетом. Я не думаю , что вам нуженpostinst
сценарий , так как вам нужно только извлечь некоторые файлы.compat
должен содержать уровень compatilbility debhelper, скажем , «8». (пожалуйста , обратитесь к странице руководства по debhelper для более подробной информации)changelog
Файл можно редактировать с помощьюdch
команды, доступной изdevscripts
пакета.rules
( С использованием debhelper) должна содержать:Сделайте его исполняемым с помощью
chmod 755 debian/rules
. Исходный пакет может быть построен с использованиемdebuild -S
. Убедитесь, что в директории с именем<package-name>-<version>
. Более подробная информации оoverride_
поведении иdh
командах можно найти на странице руководства .Руководство разработчика Debian было очень ценным для меня , чтобы понять это, это рекомендуется чтение. Пример упаковки можно найти на https://github.com/Bumblebee-Project/bumblebee-ppa .
создание пакета из существующего дерева файлов
dpkg-deb -b
может быть использовано для создания тарболов из существующего дерева файлов. Во- первых, начните с создания каталога , который должен быть назван в честь вашего пакета. Я предполагаю , что вы хотите назвать егоmyplugin
, и положил его в/usr/share/rhythmbox/plugins/mypluginfolder
.DEBIAN
Скопируйте файлы:
Далее, вам потребуется так называемый контрольный файл , расположенный в
myplugin/DEBIAN/control
котором описывается пакет. Содержимое такого файла помещаются ниже:Теперь, вы можете дополнительно проверить содержимое упаковки. Следующая команда выводит список директорий и файлов Записи содержимого
myplugin
:Если вы удовлетворены, сборки пакета в текущем каталоге:
Новый файл появится, названный , как
<package>_<version>_<architecture>.deb
что в этом примереmyplugin_1.0-1_all.deb
. Вы можете использоватьless
программу , чтобы заглянуть в файл. Например,less myplugin_1.0-1_all.deb
.источник