Як створити PPA для робочої програми?


36

Припустимо, у мене працює робоча програма, написана на C, C ++ або Python. Я хочу створити PPA Launchpad PPA, щоб інші могли легко встановити його з пакету. Будь ласка, дайте покрокові інструкції щодо цього від початку до кінця. (Або вкажіть посилання, яке робить те саме;)

  • Чи має значення мова програмування? (Чи може це бути баш сценарій?)
  • Чи потрібно щось додати до моєї збірки?
  • Куди повинна встановлюватися сама збірка?
  • Як визначити залежності?
  • Як я можу використовувати залежності?
  • Як створити .deb?
  • Що мені потрібно зробити перед завантаженням на Launchpad?

1
Я задаю це запитання, оскільки час від часу рекомендую проектам FLOSS створити PPA (тому я можу їх легко встановити :) - Я хотів би мати можливість вказати їх на ретельний ресурс або бути в змозі зробити це сам.
david.libremone

Відповіді:


33

Це дуже широке питання. Я спробую відповісти, наскільки це можливо, але це, безумовно, НЕ буде покроковою інструкцією. Це тому, що не існує поетапного алгоритму створення пакету. Те, як ви це зробите, залежить від багатьох факторів, переважно від типу пакету (програми, бібліотеки), структури джерела та багатьох деталей.

На щастя, на http://packaging.ubuntu.com є ретельний посібник

Я спробую трохи допомогти вам зрозуміти весь процес, тож коли ви будете з ним трохи більше знайомі. Посібник з упаковки містить ресурси для додаткової допомоги.


Перш за все, ви повинні усвідомити, що створення пакету (.deb-файлу) - це окремий процес від створення PPA. Створення PPA - це питання перейти до профілю вашої Launchpad та натиснути посилання "Створити новий PPA". Це все. Він створений, він працює, але порожній. Щоб завантажити пакет, спершу потрібно створити його. Але дозвольте спочатку відповісти на деякі ваші незначні запитання.

  • Мова програмування взагалі НЕ має значення. Це може бути програма C ++, сценарій Bash, Brainfuck Hello World, один файл README або набір класних фотографій. Пакети можуть містити будь-який файл. Під час встановлення пакет вилучається з коренем ("/") вашої файлової системи. Таким чином вони можуть помістити деякі файли у папку бінарних файлів, додати деякі шпалери до набору GNOME за замовчуванням або надати користувачеві сценарій Bash.
  • Вам НЕ потрібно додати щось до джерела. Це повинен бути каталог верхнього рівня, який називається "debian". Будуть деякі файли з деталями пакета - вони будуть використовуватися для визначення типу типу пакету тощо.
  • Залежності перераховані в одному з цих файлів (серед інших деталей). Звідки їх взяти? Вони просто інші пакунки, якими користується ваша програма. Розробник програми буде знати, які бібліотеки та ресурси потрібні його програмі, тому у нього не повинно виникнути особливих проблем з їх переліком.
    • Деякі інструменти, що використовуються для складання пакету (pbuilder), можуть заповнювати залежності автоматично, ймовірно, визначаючи, що потрібно для вашої програми під час компіляції.
  • Також настійно рекомендується використовувати AutoTools . Це ще одне, що вам може знадобитися додати, але, ймовірно, майже кожен фрагмент програмного забезпечення вже використовує їх. AutoTools - це набір надзвичайно корисних програм - автоматичного автоматичного налаштування, автозапуску та автоматичного сканування. Коли ви компілюєте та встановлюєте програму із відомою ./configure && make && make install тоді автоінструменти використовуються для автоматичної роботи з джерелом, для підготовки інших ресурсів, включених до джерела до встановлення, та для вилучення результату компіляції у відповідне місце (щоб відповісти на ваше запитання: Збірка буде витягати МНОГО окремих місць. Бінарні файли перейдуть до / usr / local / bin, docs до / usr / local / share / docs тощо. Більше того, бінарні файли з пакета будуть йти навіть у різні місця, якщо бінарні файли перейдуть до / usr / bin. використовуйте цей складний макет каталогів? Використовуйте AutoTools - він буде дбати про нього автоматично, і тому вони такі корисні).

Створення пакету .deb може виглядати як дуже складний процес, але це не так складно. Я настійно рекомендую вам офіційний посібник Ubuntu для створення пакетів: http://packaging.ubuntu.com

Це ВЕЛИЧЕЗНО, але ви побачите, що, ймовірно, ви можете пропустити більшість частин тексту (залежно від того, який пакет ви збираєтеся створити). В основному процес упаковки складається з таких частин (усі чітко пояснені в Посібнику) :

  1. Запустіть деякі інструменти, які використовуються для створення пакетів.
  2. Отримайте джерело
  3. Створіть каталог ./debian і заповніть його необхідними даними
  4. Створіть пакунок з debuild [Це повинно створити набір файлів, включаючи * .dsc, * _source.build, * _source.changes, які відповідають за дані про пакет та як з ним боротися (у вас також буде джерело .tar.gz)]
  5. Перевірте, чи все працює, запустивши pbuilder локально (знадобиться всі ці файли, згадані вище, і спробуйте об'єднати їх у пакет .deb, автоматично створивши джерело за допомогою AutoTools - ось чому вони мають вирішальне значення для упаковки [чесно кажучи - ні - ви можете обійтися без них або з деякими альтернативами, але це найпростіший підхід, і інший може зажадати певних розширених налаштувань, оскільки вам потрібно буде доручити будівельнику як створити джерело (використовуючи файл ./debian/rules ) - але це не для початківців] ) - якщо ви просто хочете отримати .deb пакет, це зроблено.

Тепер вам доведеться завантажити його у свій PPA, що пояснено на цій довідковій сторінці: https://help.launchpad.net/Packaging/PPA/Uploading

  1. Використовуйте dput для завантаження цих файлів на Launchpad
  2. Launchpad запустить pbuilder на своїх комп’ютерах та генерувати пакети в чистому середовищі
  3. Нарешті, пакунки повинні з’явитися в Угоді.

Як ви бачите, створення PPA не так просто . Але не лякайтеся , це теж не так складно. Більше того, я рекомендую вам не заохочувати розробників використовувати PPA, оскільки, ймовірно, вони вас не слухатимуть, оскільки їм потрібно буде виконати якусь додаткову роботу (і якби вони захотіли, вони б це зробили вже), але ви можете хочете спробувати підтримати розробників Ubuntu та всю спільноту та надати їм підготовлені вами пакети :)

Бажаю удачі у створенні пакунків, сподіваюся, що моя відповідь стане корисною :)

Твій друг, Рафал Цеслак


Як можна створити PPA без запуску, розміщений на власній інфраструктурі? Це просто простий веб-сервер з відповідною структурою каталогу?
Проф. Моріарті

чи справді потрібен був приклад brainf * ck ?
Камден

5
  • Перш ніж ви зможете завантажити пакет, вам потрібно буде встановити його для .debупаковки, див. Ubuntu PackagingGuide .

  • Після того, як ви зможете скласти пакет для свого програмного забезпечення, див. Документацію PPA Launchpad . Він допоможе вам від створення PPA до завантаження вашого пакету.

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