Как создать пакет deb, который устанавливает серию файлов

EDIT httplib.py (/usr/lib/pythonX.X/httplib.py в Linux)

НАЙТИ Объявление класса HTTPSConnection

  class HTTPSConnection(HTTPConnection):
....

Код внутри класса CHANGE [ ! d2]

self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)

TO

self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)

Затем httplib HTTPS-запрос должен работать

import httplib
from urlparse import urlparse
url = XXX
URL = urlparse(url)
connection = httplib.HTTPSConnection(URL.hostname)
connection.request('POST', URL.path + URL.query)
response = connection.getresponse()
23
задан 4 June 2012 в 19:38

9 ответов

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.

создание пакета, готового для Launchpad

. Это будет в конечном итоге станет серией отдельных пакетов PPA для запуска. То, что я предпочитаю (но, возможно, не смогу добиться ...), заключается в том, чтобы сохранить мою упаковку до минимума - создайте серию пакетов из шаблона и настройте минимальный минимум (файл изменений и т. Д. + Файл tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я буду использовать debhelper. Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. debhelper )

Файл changelog можно редактировать с помощью команды dch, доступной из пакета devscripts. [F17] (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и команде dh можно найти на ее странице руководства.

Страница для его руководства была очень ценной для меня, чтобы понять это, это рекомендуемое чтение. Пример упаковки можно найти на https://github.com/Bumblebee-Project/bumblebee-ppa.

создании пакета из существующего дерева файлов

https://github.com/Bumblebee-Project/bumblebee-ppa можно использовать для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления, расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 25 May 2018 в 10:37
  • 1
    +1 абсолютный гений - я склоняюсь перед тобой, сэр. Благодаря! – fossfreedom♦ 5 June 2012 в 03:10
  • 2
    Спасибо за эту большую помощь! Были некоторые проблемы с файлом управления, хотя, в конце концов, это сработало, но не спрашивайте меня, как;) – Gerhard Burger 11 May 2013 в 00:05

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 25 July 2018 в 18:39

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 31 July 2018 в 10:34

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 31 July 2018 в 11:37

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 2 August 2018 в 00:48

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 4 August 2018 в 16:18

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 7 August 2018 в 18:23

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 10 August 2018 в 07:06

Ниже я предполагаю, что источник открыт (например, скрипты Python), которые поэтому не привязаны ни к какой архитектуре (например, amd64 или i386), следовательно, «все». Если у вас есть источник C, вам нужно использовать Architecture: amd64 i386 в исходном файле control.


создание готового пакета для Launchpad

Это в конечном итоге станет серией отдельных пакетов PPA для запуска.

То, что я предпочитаю (но может и не достигнуть ...), заключается в том, чтобы свести мою упаковку к минимуму - создать серию пакетов из шаблона и отрегулируйте минимальный минимум (changelog etc + tar tar).

Launchpad принимает только исходные пакеты, поэтому создайте файл rules, который устанавливает файлы в правильных местах. Для удобства я использую debhelper . Каталог с вашими файлами должен выглядеть так:

debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...

Файл debian/copyright также может быть полезен для информирования пользователей о лицензиях, связанных с пакетом. Я не думаю, что вам нужен скрипт postinst, так как вам нужно только извлечь некоторые файлы. compat должен содержать уровень совместимости debhelper, например «8». (подробнее см. страницу руководства debhelper )

Файл changelog можно отредактировать с помощью команды dch, доступной из пакета devscripts. rules (используя debhelper) должен содержать:

#!/usr/bin/make -f
%:
    dh $@
override_dh_install:
    dh_install mypluginfolder/ /usr/share/rhythmbox/plugins

Сделать его исполняемым с помощью chmod 755 debian/rules. Исходный пакет можно построить с помощью debuild -S. Убедитесь, что находитесь в каталоге с именем <package-name>-<version>. Более подробную информацию о поведении override_ и dh можно найти на на странице руководства .

Руководство пользователя Debian New Maintainers ' было очень ценный для меня, чтобы понять это, рекомендуется читать. Пример упаковки можно найти на странице https://github.com/Bumblebee-Project/bumblebee-ppa .


создание пакета из существующего дерева файлов

dpkg-deb -b может использоваться для создания tarball из существующего дерева файлов. Сначала начните с создания каталога, который должен быть назван после вашего пакета. Предположим, вы хотите назвать его myplugin и поместить его в /usr/share/rhythmbox/plugins/mypluginfolder. Кроме того, создайте каталог DEBIAN (в верхнем регистре!) Для хранения информации о пакете:

mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN

Скопируйте файлы:

cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins

Затем вам понадобится так называемый файл управления , расположенный в myplugin/DEBIAN/control, который описывает пакет. Содержимое такого файла приведено ниже:

Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
 Longer description here
 .
 As you can see, new paragraph are split by a single dot,
 and lines have to be indented by one space.

Теперь вы можете дополнительно проверить содержимое своего пакета. Следующая команда перечисляет содержимое записей в файле и каталоге myplugin:

find myplugin -ls

Если вы удовлетворены, создайте пакет в текущем каталоге:

dpkg-deb -b myplugin .

A появится новый файл, названный как <package>_<version>_<architecture>.deb, который находится в этом примере myplugin_1.0-1_all.deb. Вы можете использовать программу less, чтобы заглянуть в файл. Например, less myplugin_1.0-1_all.deb.

31
ответ дан 15 August 2018 в 19:05
  • 1
    +1 абсолютный гений - я склоняюсь перед тобой, сэр. Спасибо! – fossfreedom♦ 5 June 2012 в 03:10
  • 2
    Спасибо за эту большую помощь! Были некоторые проблемы с файлом управления, хотя, в конце концов, это сработало, но не спрашивайте меня, как;) – Gerhard Burger 11 May 2013 в 00:05

Другие вопросы по тегам:

Похожие вопросы: