Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:создание_ppa [2012/06/10 18:50] |
wiki:создание_ppa [2013/02/04 17:06] Информацию о подготовке пакетов лучше добавлять в создание_deb_пакетов |
||
---|---|---|---|
Строка 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> | ||
Строка 46: | Строка 44: | ||
* Нажмите //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). Поле //Description// не обязательно для заполнения. | + | Заполните поля //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> HOWTO launchpad разработка}} | {{tag> HOWTO launchpad разработка}} |