Який найпростіший посібник з упаковки Debian?


150

Я зайшов у вікі Ubuntu, але розгубився, способів було занадто багато. Скажіть, будь ласка, простий посібник із упаковки Debian.


3
Ви хочете створити пакети для власного користування, на певному комп’ютері чи для інших?
andol

1
Якою мовою є програмне забезпечення, яке ви хочете упакувати?
Умань

4
У мене те саме питання. Більшість навчальних посібників та посібників починаються з "отримати тарбол вгору". З цього моменту ми втрачаємось. У нас є проста річ, яку ми хочемо розгорнути, немає тарболу вгору за течією, немає вихідного коду. це лише файл війни, деякі сценарії та деякі файли jar. Що стосується кульового дьогтю вгору за течією і чи бачив хто-небудь посібник, який НЕ використовує його, який є вичерпним (наприклад, займається питаннями користувачів)
Джон Літт

2
Я піду на той, який я розмістив над StackOVerflow.

Якщо ви хочете створити "віртуальні пакети" (групові залежності разом), варто поглянути на equivs-build
Rolf

Відповіді:


103

Це хороший HOWTO для створення базового .debфайлу. Він підходить для створення .debфайлів для особистого використання, але недостатньо жорсткий, якщо ви хочете, щоб пакет був включений в Debian / Ubuntu - для цього вам слід прочитати посібник Debian New Maintainer та / або керівництво по упаковці Ubuntu (на який я вважаю, що ви ' я вже пробував).

Хорошим інструментом для перевірки .debфайлу на відповідність є lintian(інстальований із сховищ).

Тут пройшли два сеанси в чатах "Запитати Ubuntu".

Основи упаковки на Ubuntu (Упаковка: Частина 1)

Упаковка Ubuntu для PPA Launchpad (упаковка: частина 2)


Це добре компілює те, що потрібно для початку упаковки, але в HOWTO я пропускаю інформацію про те, щоб включити піктограму програми у файл deb (і я нічого іншого про це не знайшов). Будь-який натяк, як це зробити?
nightcod3r

14

З якими частинами у вас виникають проблеми? Незважаючи на складність, керівництво здавалося цілком зрозумілим, коли я стежив за ним.

Короткий підсумок:

  • Витяг джерела .tar.gz
  • Біжи dh_make
  • Редагування файлів debian
  • Виконати дебіл

3
Що мене бентежить, чи цей процес однаковий, незалежно від мови джерела чи структури каталогів?
Сет

9
Суть полягає в тому, що у нас немає .tar.gz. ми хочемо упакувати додаток, про який ми писали. Ніякий посібник, схоже, не висвітлює це, всі вони починаються з "тарболу вгору за течією", який у нас немає.
Джон Малий

@JohnLittle ця відповідь може допомогти: askubuntu.com/a/27731/5
Натан Осман

1
А як щодо довготривалої, повторної упаковки? Чи потрібно мені щоразу робити такий тривалий і складний процес упаковки?
kravemir

Якщо у користувача немає ключа GPG , debuildвийде з ладу " debsign: сталася помилка gpg! Аборт .... ".
agc

10

Можна навіть використовувати dpkg-debдля створення простих пакетів.

Ось приємний підручник від Ubuntuforums .


5

Найпростіший спосіб упаковки чогось - це використання checkinstall .


4
checkinstall забезпечує швидкий спосіб побудови бінарного пакету debin (.deb) з методу встановлення джерела. Однак він не забезпечує належного пакета debian (побудованого з пакета джерел debian).
Жоао Пінто

О, людина .. Мені довелося скористатися цим ПЕРЕД Складанням ... це як години збирання.
Пьотр Кула

5

Спочатку розміщений на StackOverFlow , цей посібник призначений для попередньо складеного або інтерпретованого програмного забезпечення:

Використовується правильний спосіб створення дебютного пакету, dpkg-buildpackageале іноді він є трохи складним. Натомість ви можете використовувати, dpkg -b <folder>і це створить ваш пакет Debian.

Це основи для створення пакета Debian dpkg -b <folder>з будь-яким бінарним або будь-яким сценарієм, який запускається автоматично, не потребуючи ручної компіляції (Python, Bash, Pearl, Ruby):

  1. Створіть файли та папки, щоб відтворити таку структуру:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Сценарії, розміщені в /usr/bin/, безпосередньо викликаються з терміналу, зауважте, що я не додав розширення до сценарію. Також ви можете помітити, що структура пакету deb буде структурою програми після її встановлення. Отже, якщо ви дотримуєтесь цієї логіки, якщо у вашій програмі є один файл, ви можете безпосередньо розмістити його ProgramName-Version/usr/bin/your_script, але якщо у вас є кілька файлів, вам слід розмістити їх під ProgramName-Version/usr/share/ProgramName/all your filesі розмістити лише один файл, під /usr/bin/яким буде викликано ваші сценарії з/usr/share/ProgramName/

  2. Змініть усі права доступу до папки на root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Змінення дозволів сценарію:

     chmod 0755 /path/to/the/script
    
  4. Нарешті, ви можете запустити: dpkg -b /path/to/the/ProgramName-Versionі ваш деб пакет буде створений! (Ви також можете додати сценарії публікації / попереднього введення та все, що вам потрібно, це працює як звичайний пакет Debian)

Ось приклад controlфайлу. Вам потрібно лише скопіювати / вставити його в порожній файл під назвою "control" і помістити його в папку DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.

3

Ні, найпростіший і зрозумілий посібник з упаковки в цьому світі

Упаковка програм Java для Ubuntu та інших Debian

Кілька днів тому для своєї першої заявки я створив пакет DEB, дотримуючись цього підручника. Дуже ясно, і мій додаток упаковано успішно. Так, принаймні для мене це найпростіше.

Ви можете порівняти його з посібником з упаковки Debian.


3
"Простий" не означає "завершений". Існує багато правил. Основний навчальний посібник з упаковки .deb не охоплюватиме різні типи програм, а тому упаковка не така проста, як просто "простий підручник".
Thomas Ward

однозначно просто. Це почало мене починати, і я зміг створити свій перший пакет debian за лічені хвилини. Ще багато деталей, з якими потрібно розібратися (погані повідомлення про якість пакету від лінійських), але прекрасна відправна точка.
атмеліно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.