Создание собственного PPA Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:создание_ppa [2013/01/31 10:53]
wiki:создание_ppa [2013/03/23 14:07] (текущий)
[Шаг 2. Принятие Code of Conduct]
Строка 1: Строка 1:
 ====== Создание собственного PPA ====== ====== Создание собственного PPA ======
  
-====== Шаг 0. Регистрация на Launchpad ​======+===== Шаг 0. Регистрация на Launchpad =====
  
 Если вы уже зарегистрированы на Launchpad можете пропустить этот шаг. Если вы уже зарегистрированы на Launchpad можете пропустить этот шаг.
Строка 7: Строка 7:
 Перейдите по ссылке [[https://​login.launchpad.net/​+new_account]] и пройдите регистрацию. Это позволит вам создавать [[PPA]], участвовать в обсуждении багов, править переводы и многое другое. Перейдите по ссылке [[https://​login.launchpad.net/​+new_account]] и пройдите регистрацию. Это позволит вам создавать [[PPA]], участвовать в обсуждении багов, править переводы и многое другое.
  
-====== Шаг 1. Создание цифрового ключа ​======+===== Шаг 1. Создание цифрового ключа =====
 Цифровым ключем в дальнейшем будут подписываться все ваши пакеты. Именно при помощи него будет подтверждаться то, что пакет был выложен именно вами, а не кем-то другим. Более подробная информация о ключах содержится в этой [[репозиторий#​защита_репозиториев|статье]]. Цифровым ключем в дальнейшем будут подписываться все ваши пакеты. Именно при помощи него будет подтверждаться то, что пакет был выложен именно вами, а не кем-то другим. Более подробная информация о ключах содержится в этой [[репозиторий#​защита_репозиториев|статье]].
  
Строка 39: Строка 39:
 <note important>​На этом этапе генирируются публичный и личный ключи. Личный ключ должен находится только у вас, иначе это поставит под угрозу безопасность PPA.</​note>​ <note important>​На этом этапе генирируются публичный и личный ключи. Личный ключ должен находится только у вас, иначе это поставит под угрозу безопасность PPA.</​note>​
  
-====== Шаг 2. Принятие Code of Conduct ​====== +===== Шаг 2. Принятие Code of Conduct ===== 
-Code of Conduct это документ,​ описывающий правила поведения в сообществе Ubuntu. Без подписания этого документа у вас не будет возможности использовать некоторые функции Launchpad, в том числе и создание PPA.+Code of Conduct это документ,​ описывающий правила поведения в сообществе Ubuntu. Без подписания этого документа у вас не будет возможности использовать некоторые функции Launchpad, в том числе и создание PPA. Перевод этого документа можно прочитать в статье [[conduct|Кодекс поведения Ubuntu]].
   * Перейдите по ссылке [[https://​launchpad.net/​codeofconduct]]   * Перейдите по ссылке [[https://​launchpad.net/​codeofconduct]]
   * Нажмите //Register an OpenPGP key//   * Нажмите //Register an OpenPGP key//
Строка 53: Строка 53:
   .. Это создаст подписанный вашим ключом файл UbuntuCodeofConduct-1.1.txt.asc .   .. Это создаст подписанный вашим ключом файл UbuntuCodeofConduct-1.1.txt.asc .
   * Перейдите на страницу [[https://​launchpad.net/​codeofconduct]] и нажмите на ссылку //Sign it!//. в появившееся поле //Signed Code// ввода вставьте все содержимое файла UbuntuCodeofConduct-1.1.txt.asc и нажмите //​Continue//​.   * Перейдите на страницу [[https://​launchpad.net/​codeofconduct]] и нажмите на ссылку //Sign it!//. в появившееся поле //Signed Code// ввода вставьте все содержимое файла UbuntuCodeofConduct-1.1.txt.asc и нажмите //​Continue//​.
- +===== Шаг 3. Создание PPA =====
-====== Шаг 3. Создание PPA ======+
 Перейдите на страницу своего профиля на Launchpad и найдите ссылку //Create a new PPA//. Перейдите на страницу своего профиля на Launchpad и найдите ссылку //Create a new PPA//.
 {{ :​wiki:​ppa-create.png?​nolink |}} {{ :​wiki:​ppa-create.png?​nolink |}}
 Заполните поля //Display name// и //URL// . Поле //​Description//​ не обязательно для заполнения. При заполнении помните,​ что пользователи будут прописывать часть строки URL при добавлении PPA, поэтому его нужно делать максимально коротким,​ но при этом отражающем суть PPA. Описание //​Descriprion//,​ будет выводится пользователям в терминал,​ при добавлении PPA, поэтому тоже не усердствуйте с объемом. Заполните поля //Display name// и //URL// . Поле //​Description//​ не обязательно для заполнения. При заполнении помните,​ что пользователи будут прописывать часть строки URL при добавлении PPA, поэтому его нужно делать максимально коротким,​ но при этом отражающем суть PPA. Описание //​Descriprion//,​ будет выводится пользователям в терминал,​ при добавлении PPA, поэтому тоже не усердствуйте с объемом.
  
-====== Шаг 4. Сборка пакетов для загрузки в PPA ====== +===== Шаг 4. Сборка пакетов для загрузки в PPA ===== 
-Для загрузки в PPA используется специально подготовленные архивы source.changes,​ не пытайтесь загрузить в репозиторий .deb, пакеты. ​Для формирования ​подходящего пакета из исходников ​вашей программы ​необходимо сделать ​следующее+Для загрузки в PPA используется специально подготовленные архивы source.changes,​ не пытайтесь загрузить в репозиторий .deb, пакеты. ​Инструкцию по "дебианизации" ​исходных кодов можно посмотреть в статье ​[[создание_deb_пакетов|Сборка ПО и создание .deb-пакетов ​из исходников в Debian-системах]]. 
-===== "Дебианизация" ​исходников ​===== +
-===== Правка конфигурационных файлов =====+
 ==== Версионность ==== ==== Версионность ====
 +Если вы пакуете пакет, который уже есть в репозитории Ubuntu, необходимо убедится,​ что:
 +  * версия пакета,​ собранная вами заменяет существующую в репозитарии версию;​
 +  * следующие версии пакета из репозитория Ubunt заменят ваш пакет.
 +Для того, чтобы добиться это используйте суффикс ppan (где n это номер ревизии пакета). Несколько примеров:​
 +  * пакет из репозитария Ubuntu myapp_1.0-1 → пакет в PPA myapp_1.0-1ppa1
 +  * пакет из репозитария Ubuntu myapp_1.0-1ubuntu3 → пакет в PPA myapp_1.0-1ubuntu3ppa1
 +Версии пакетов должны быть уникальными. Если вы хотите использовать один и тот же пакет для разных выпусков Ubuntu (при условии,​ что он будет работать без перекомпиляции),​ вы можете воспользоваться функцией [[#​Копирование пакета для других релизов Ubuntu|копирования пакетов]].
 +
 +Если же пакет не работает в других выпусках без пересборки,​ то прибавляйте к версии суффикс ~имя_выпуска (например myapp_1.0-1ubuntu3ppa1~lucid) и загружайте каждую версию отдельно.
 +
 ==== Зависимости ==== ==== Зависимости ====
-====== Шаг 5. Загрузка пакетов в PPA ======+Launchpad удовлетворяет сборочные зависимости (Build-Depends) используя:​ 
 +  * последние версии пакетов из PPA в который производится загрузка 
 +  * все секции основного репозитория Ubuntu --  то есть main, restricted, universe и multiverse 
 +  * опционально:​ другие PPA. 
 + 
 +===== Шаг 5. Загрузка пакетов в PPA =====
 Загрузка пакетов осуществляется утилитой ''​dput''​. Загрузка пакетов осуществляется утилитой ''​dput''​.
 <code bash>​sudo apt-get install dput</​code>​ <code bash>​sudo apt-get install dput</​code>​
-===== Настройка dput =====+ 
 +==== Настройка dput ====
 Для удобства стоит настроить dput, для этого необходимо отредактировать файл ~/.dput.cf и привести его к следующему виду: Для удобства стоит настроить dput, для этого необходимо отредактировать файл ~/.dput.cf и привести его к следующему виду:
-<​code>​[ppa-stable]+<​code ​ini>​[ppa-stable]
 fqdn = ppa.launchpad.net fqdn = ppa.launchpad.net
 method = ftp method = ftp
-incoming = ~<​ваш_id>/<​имя_ppa-stable>/​ubuntu/​+incoming = ~<​ваш_id>/<​имя_ppa>/​ubuntu/​
 login = anonymous login = anonymous
-allow_unsigned_uploads = 0+allow_unsigned_uploads = 0</​code>​ 
 +<​ваш_id>​- ID вашей учетной записи или команды,​ отображается в строке URL браузера 
 +<​имя_ppa>​- название выбранного PPA. 
 +Вы можете настроить dput для работы с любым количеством PPA. Для этого достаточно добавить в файл ~/.dput.cf еще одну секцию настроек,​ аналогичную приведенным выше.
  
-[ppa-unstable] +==== Загрузка пакета ====
-fqdn = ppa.launchpad.net +
-method = ftp +
-incoming = ~<​ваш_id>/<​имя_ppa-unstable>/​ubuntu/​ +
-login = anonymous +
-allow_unsigned_uploads = 0 +
-</​code>​ +
-<​ваш_id>​- ID вашей учетной записи или команды,​ отображается в строке URL браузера\\ +
-<​имя_ppa-unstable>​- название выбранного PPA. +
-Так как PPA у вас может быть несколько,​ то и конфигураций может быть сколько угодно. +
-===== Загрузка пакета ​=====+
 Пакет загружается командой Пакет загружается командой
 <code bash>​dput ppa-stable <​source.changes></​code>​ <code bash>​dput ppa-stable <​source.changes></​code>​
 где <​source.changes>​ -- файл полученный во время подготовки исходного кода. где <​source.changes>​ -- файл полученный во время подготовки исходного кода.
 +
 +После успешной загрузки на почтовый ящик вашей учетной записи,​ а так же почтовый ящик, указанный в файле debian/​changelog придет уведомление об успешной или неуспешной загрузке архива. Что значат ошибки в письмах можно посмотреть [[https://​help.launchpad.net/​Packaging/​UploadErrors|здесь]]. В случае успешной загрузки,​ через некоторое время начнется сборка пакета для доступных архитектур,​ лог файл сборки будет доступен к просмотру онлайн,​ в просмотре подробностей к пакету на странице PPA, а так же, в случае ошибки,​ будет прислана ссылка на просмотр лога на почту.
 +
 +===== Копирование пакета для других релизов Ubuntu =====
 +Для того, чтобы пользователи различных версий дистрибутивов могли скачивать пакет с вашего репозитория,​ необходимо сделать следующее:​
 +  - Нажмите //View package details//
 +  - Далее нажмите //Copy packages// и отметить пакеты,​ которые хотите "​размножить"​
 +  - Укажите //​Destination series// выбрав целевую версию дистрибутива. При этом, нужно поставить точку в пункте //Сopy existing binares//, что запретит пересборку пакета.
 +
 ===== Ссылки ===== ===== Ссылки =====
   * [[http://​ky6uk.org/​launchpad-its-really-simple|Launchpad — это просто]]   * [[http://​ky6uk.org/​launchpad-its-really-simple|Launchpad — это просто]]
 +  * [[https://​help.launchpad.net/​Packaging/​PPA|Packaging/​PPA]] (англ.)
  
 {{tag> HOWTO launchpad разработка}} {{tag> HOWTO launchpad разработка}}