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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:создание_ppa [2012/05/09 04:08]
[Шаг 1. Создание цифрового ключа] ться!
wiki:создание_ppa [2013/03/23 14:07] (текущий)
[Шаг 2. Принятие Code of Conduct]
Строка 5: Строка 5:
 Если вы уже зарегистрированы на Launchpad можете пропустить этот шаг. Если вы уже зарегистрированы на Launchpad можете пропустить этот шаг.
  
-Перейдите по ссылке [[https://​login.launchpad.net/​+new_account]] и пройдите регистрацию. Это позволит вам создавать PPA, участвовать в обсуждении багов, править переводи и многое другое.+Перейдите по ссылке [[https://​login.launchpad.net/​+new_account]] и пройдите регистрацию. Это позволит вам создавать ​[[PPA]], участвовать в обсуждении багов, править переводы и многое другое.
  
 ===== Шаг 1. Создание цифрового ключа ===== ===== Шаг 1. Создание цифрового ключа =====
-Цифровым ключем в дальнейшем будут подписываться все ваши пакеты. Именно при помощи него будет подтверждаться то, что пакет был выложен именно вами а не кем-то другим. Более подробная информация о ключах содержится в этой [[репозиторий#​защита_репозиториев|статье]].+Цифровым ключем в дальнейшем будут подписываться все ваши пакеты. Именно при помощи него будет подтверждаться то, что пакет был выложен именно вамиа не кем-то другим. Более подробная информация о ключах содержится в этой [[репозиторий#​защита_репозиториев|статье]].
  
 Сгенерируйте ключ, выполнив в терминале следующую команду:​ Сгенерируйте ключ, выполнив в терминале следующую команду:​
-<​code>​ +<​code ​bash>gpg --gen-key</​code>​
-gpg --gen-key +
-</​code>​+
 Укажите тип ключа //DSA and Elgamal//, размер ключа оставьте по умолчанию - //2048//, срок - //без ограничения срока действительности//​. Подтвердите что вы правильно ввели всю информацию. Теперь укажите свои имя и фамилию,​ маленький коментарий и адрес электронной почты. Подтвердите,​ что вся информация введена правильно. После этого программа начнет генерацию ключа. В процессе может появится надпись вроде этой: Укажите тип ключа //DSA and Elgamal//, размер ключа оставьте по умолчанию - //2048//, срок - //без ограничения срока действительности//​. Подтвердите что вы правильно ввели всю информацию. Теперь укажите свои имя и фамилию,​ маленький коментарий и адрес электронной почты. Подтвердите,​ что вся информация введена правильно. После этого программа начнет генерацию ключа. В процессе может появится надпись вроде этой:
 <​code>​ <​code>​
Строка 38: Строка 36:
  
 Теперь отправим публичный ключ на сервер ключей:​ Теперь отправим публичный ключ на сервер ключей:​
-<​code>​gpg --send-keys --keyserver keyserver.ubuntu.com B0CF7C64</​code>​+<​code ​bash>gpg --send-keys --keyserver keyserver.ubuntu.com B0CF7C64</​code>​
 <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//
   * В поле //​Fingerprint//​ введите отпечаток ключа, полученый в результате предыдущего щага и нажмите //Import Key//{{ :​wiki:​ppa-key-import.png?​nolink |}}   * В поле //​Fingerprint//​ введите отпечаток ключа, полученый в результате предыдущего щага и нажмите //Import Key//{{ :​wiki:​ppa-key-import.png?​nolink |}}
-  * На почту придет зашифрованное письмо. Почтовые клиенты (такие как Evolution) обычно предлагают расшифровать письмо. В противном случае можно скопировать текст письма в текстовый файл и выполнить команду +  ​** На почту придет зашифрованное письмо. Почтовые клиенты (такие как ​[[Evolution]]) обычно предлагают расшифровать письмо. В противном случае можно скопировать текст письма в текстовый файл и выполнить команду 
-  ​--<​code>​gpg --decrypt /​tmp/​mail.txt</​code>​ +  ​.. <​code ​bash>gpg --decrypt /​tmp/​mail.txt</​code>​ 
-где /​tmp/​mail.txt - файл с письмом. +  ​.. ​где /​tmp/​mail.txt - файл с письмом. 
- +  ​.. ​В конце расшифрованного письма будет ссылка на [[Launchpad]], которой вы подтвердите что вы являетесь владельцом ключа. 
-В конце расшифрованого письма будет ссылка на Launchpad, которой вы подтвердите что вы являетесь владельцом ключа. +  * Вновь перейдите на страницу [[https://​launchpad.net/​codeofconduct]] и скачайте Code of Conduct по ссылке //Download the current Code of Conduct//​. 
-  * вновь перейдите на страницу [[https://​launchpad.net/​codeofconduct]] и скачайте Code of Conduct по ссылке //Download the current Code of Conduct//​. +  ** Подпишите скачанный файл коммандой:​ 
-  * подпишите скачанный файл коммандой:​ +  ​.. <​code ​bash>gpg --clearsign UbuntuCodeofConduct-1.1.txt</​code>​ 
-  ​--<​code>​gpg --clearsign UbuntuCodeofConduct-1.1.txt</​code>​ +  ​.. ​Это создаст подписанный вашим ключом файл 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// ​(поле ​URL не показывается при создании первого PPA).+Заполните поля //Display name// и //​URL// ​. Поле ​//​Description// ​не обязательно для заполнения. При заполнении помните,​ что пользователи будут прописывать часть строки URL при добавлении PPA, поэтому его нужно делать максимально коротким,​ но при ​этом отражающем ​суть PPA. Описание //​Descriprion//,​ будет выводится пользователям в терминал,​ при ​добавлении ​PPA, поэтому тоже не усердствуйте с объемом.
  
-===== Шаг 4. Загрузка пакетов в PPA =====+===== Шаг 4. Сборка пакетов для загрузки в PPA ===== 
 +Для загрузки в 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) и загружайте каждую версию отдельно. 
 + 
 +==== Зависимости ==== 
 +Launchpad удовлетворяет сборочные зависимости (Build-Depends) используя:​ 
 +  * последние версии пакетов из PPA в который производится загрузка 
 +  * все секции основного репозитория Ubuntu --  то есть main, restricted, universe и multiverse 
 +  * опционально:​ другие PPA. 
 + 
 +===== Шаг 5. Загрузка пакетов в PPA =====
 Загрузка пакетов осуществляется утилитой ''​dput''​. Загрузка пакетов осуществляется утилитой ''​dput''​.
-<​code>​sudo apt-get install</​code>​ +<​code ​bash>sudo apt-get install dput</​code>​
-Перед загрузкой требуется правильно [[wiki:​создание_deb_пакетов|подготовить исходный код]] пакета. Пакет загружается командой +
-<​code>​dput ppa:​ваш_логин/​url_ppa <​source.changes>​</​code>​ +
-<​source.changes>​ это файл полученый во время подготовки исходного кода.+
  
-===== Ссылки =====+==== Настройка dput ==== 
 +Для удобства стоит настроить dput, для этого необходимо отредактировать файл ~/.dput.cf и привести его к следующему виду: 
 +<code ini>​[ppa-stable] 
 +fqdn ppa.launchpad.net 
 +method ​ftp 
 +incoming ​~<​ваш_id>/<​имя_ppa>/​ubuntu/​ 
 +login anonymous 
 +allow_unsigned_uploads ​0</​code>​ 
 +<​ваш_id>​- ID вашей учетной записи или команды,​ отображается в строке URL браузера 
 +<​имя_ppa>​- название выбранного PPA. 
 +Вы можете настроить dput для работы с любым количеством PPA. Для этого достаточно добавить в файл ~/.dput.cf еще одну секцию настроек,​ аналогичную приведенным выше.
  
 +==== Загрузка пакета ====
 +Пакет загружается командой
 +<code bash>​dput ppa-stable <​source.changes></​code>​
 +где <​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> launchpad разработка}}+{{tag> ​HOWTO launchpad разработка}}