Это старая версия документа.


Шаг 0. Регистрация на Launchpad

Если вы уже зарегистрированы на Launchpad можете пропустить этот шаг.

Перейдите по ссылке https://login.launchpad.net/+new_account и пройдите регистрацию. Это позволит вам создавать PPA, участвовать в обсуждении багов, править переводы и многое другое.

Шаг 1. Создание цифрового ключа

Цифровым ключем в дальнейшем будут подписываться все ваши пакеты. Именно при помощи него будет подтверждаться то, что пакет был выложен именно вами а не кем-то другим. Более подробная информация о ключах содержится в этой статье.

Сгенерируйте ключ, выполнив в терминале следующую команду:

gpg --gen-key

Укажите тип ключа DSA and Elgamal, размер ключа оставьте по умолчанию - 2048, срок - без ограничения срока действительности. Подтвердите что вы правильно ввели всю информацию. Теперь укажите свои имя и фамилию, маленький коментарий и адрес электронной почты. Подтвердите, что вся информация введена правильно. После этого программа начнет генерацию ключа. В процессе может появится надпись вроде этой:

Недостаточно случайных чисел.  Выполняйте какие-либо действия для того,
чтобы ОС могла получить больше случайных данных! (Необходимо ещё 145 байт)

Попробуйте что-то понабирать на клавиатуре и процесс пойдет дальше.

В итоге должно получится примерно следующее:

gpg: ключ B0CF7C64 помечен как абсолютно доверяемый.
открытый и закрытый ключи созданы и подписаны.

gpg: проверка таблицы доверий
gpg: 3 ограниченных необходимо, 1 выполненных необходимо, PGP модель доверия
gpg: глубина: 0  корректных:   2  подписанных:   1  доверия: 0-, 0q, 0n, 0m, 0f, 2u
gpg: глубина: 1  корректных:   1  подписанных:   0  доверия: 0-, 0q, 0n, 0m, 1f, 0u
pub   2048D/B0CF7C64 2012-05-08
      Отпечаток ключа = BF0A D1A0 94EC 9396 803B  E256 F636 0EA4 B0CF 7C64
uid                  Baba Yaga (pensioner) <yaga@deepforest.ru>
sub   2048g/BED82F5A 2012-05-08

Нас интересует первая строчка, в ней указан ID ключа. В примере ID равен B0CF7C64.

Теперь отправим публичный ключ на сервер ключей:

gpg --send-keys --keyserver keyserver.ubuntu.com B0CF7C64
На этом этапе генирируются публичный и личный ключи. Личный ключ должен находится только у вас, иначе это поставит под угрозу безопасность PPA.

Шаг 2. Принятие Code of Conduct

Code of Conduct это документ, описывающий правила поведения в сообществе Ubuntu. Без подписания этого документа у вас не будет возможности использовать некоторые функции Launchpad, в том числе и создание PPA.

  • Перейдите по ссылке https://launchpad.net/codeofconduct
  • Нажмите Register an OpenPGP key
  • В поле Fingerprint введите отпечаток ключа, полученый в результате предыдущего щага и нажмите Import Key
  • На почту придет зашифрованное письмо. Почтовые клиенты (такие как Evolution) обычно предлагают расшифровать письмо. В противном случае можно скопировать текст письма в текстовый файл и выполнить команду
  1. gpg --decrypt /tmp/mail.txt

где /tmp/mail.txt - файл с письмом.

В конце расшифрованого письма будет ссылка на Launchpad, которой вы подтвердите что вы являетесь владельцом ключа.

  • вновь перейдите на страницу https://launchpad.net/codeofconduct и скачайте Code of Conduct по ссылке Download the current Code of Conduct.
  • подпишите скачанный файл коммандой:
  1. gpg --clearsign UbuntuCodeofConduct-1.1.txt

Это создаст подписанный вашим ключом файл UbuntuCodeofConduct-1.1.txt.asc .

  • перейдите на страницу https://launchpad.net/codeofconduct и нажмите на ссылку Sign it!. в появившееся поле Signed Code ввода вставьте все содержимое файла UbuntuCodeofConduct-1.1.txt.asc и нажмите Continue.

Шаг 3. Создание PPA

Перейдите на страницу своего профиля на Launchpad и найдите ссылку Create a new PPA. Заполните поля Display name и URL (поле URL не показывается при создании первого PPA). Поле Description не обязательно для заполнения.

Шаг 4. Загрузка пакетов в PPA

Загрузка пакетов осуществляется утилитой dput.

sudo apt-get install

Перед загрузкой требуется правильно подготовить исходный код пакета. Пакет загружается командой

dput ppa:ваш_логин/url_ppa <source.changes>

<source.changes> это файл полученый во время подготовки исходного кода.

Ссылки