Введение в разработку Ubuntu: часть 2

Это вторая статья в серии, объясняющей основы разработки Ubuntu, не требующей огромного количества знаний, инструментов, концептов, процессов и инфраструктуры. Если вам понравилась статья или вы нашли в ней что-то проблемное, пожалуйста, проявляйте активность в комментариях. 1 часть тут.

web links

Существуют некоторые вещи, которые вам нужно сделать, перед тем как начать работать над Ubuntu. Эта статья написана для того, чтобы подготовить ваш компьютер к работе и загрузке ваших пакетов на хостинг-платформу Ubuntu, Launchpad. Вот что мы сделаем:

Устанавливаем связанный с упаковкой софт. Это включает:

Ubuntu-специфичные утилиты упаковки

Софт для шифрования — ваша работа будет подтверждать, что это вы

Дополнительный софт для шифрования, для секурной передачи файлов

Создадим и настроим ваш аккаунт на Launchpad

Настроим ваше окружение разработчика, чтобы помочь вам создавать локальные сборки пакетов, сообщаться с другими разработчиками и предлагать ваши изменения на Launchpad.

Устанавливаем базовый софт упаковки

Есть некоторые инструмент, которые сделают вашу жизнь в качестве разработчика Ubuntu намного проще. Вы столкнётесь с этими инструментами позже в этой статье. Чтобы установить большинство из них, вам потребуется выполнить эту команду:

$ sudo apt-get install gnupg pbuilder ubuntu-dev-tools \

bzr-builddeb apt-file

Замечание: Начиная с Ubuntu 11.10 «Oneiric Ocelot» (или если у вас включены Backports в более старом поддерживающимся релизе), следующая команда установит утилиты выше, а также несколько удобных утилит для разработки Ubuntu:

$ sudo apt-get install packaging-dev

Эта команды установит следующий софт:

gnupg – GNU Privacy Guard содержит инструмент, который потребуется вам для создания криптографического ключа, которым вы будете подписывать файлы, которые вы хотите загрузить на Launchpad.

pbuilder – инструмент для создания воспроизводимых сборок пакета в изоляционном окружении

ubuntu-dev-tools (и devscripts, прямая зависимость) – коллекция инструментов, делающая многие задачи по упаковке проще.

bzr-builddeb (и bzr, зависимость) – распределённый контроль версий с Bazaar, новый путь работы с пакетами для Ubuntu, сделающий это проще для множества разработчиков — работу над одинаковым кодом, при этом делая проще совмещение разных изменений.

Apt-file — простой способ найти бинарный пакет, содержащий нужный файл

apt-cache (часть пакета apt) предоставляет много информации о пакетах в Ubuntu.

Создаём GPG-ключ

GPG поддерживает GNU Privacy Guard и реализаует стандарт OpenPGP, позволяющий вам подписывать и зашифровывать сообщения и файлы. Это полезно для различных процессов. В нашем случае это важно, что вы можете подписывать файлы вашим ключом, следовательно их можно идентифицировать как вашу работу. Если вы загружаете исходный пакет на Launchpad, он пример только пакет, если личность загружающего человека подтверждена.

Чтобы сгенерировать новый GPG-ключ, выполните:

$ gpg —gen-key

Сначала GPG спросит вас, какой вид ключа вам нужен. Выбор RSA и DSA будет нормальным. Затем вас спросят о размере ключа. Стандартный (сейчас 2048) нормален, но 4096 более безопасен. Затем, вас спросят, хотите ли вы добавить дату истечения ключа. Можно просто написать «0», что значит, что ключ никогда не истечёт. Последний вопрос будет о вас и вашем e-mail адресе. Введите их, в соответствии с тем, как вы хотите представляться в Ubuntu, а позже вы сможете добавить дополнительные адреса. Добавлять комментарий не обязательно. Затем вам нужно будет ввести «контрольную фразу» (passphrase), придумайте для себя безопасный (эта фраза — ни что иное, как пароль, в котором разрешено добавлять пробелы).

Теперь GPG создаст ключ для вас; это может занять некоторое время, потому что ему требуются случайные байты. Поэтому вам желательно дать системе немного работы. Например, перемещайте курсор, вводите абзацы случайного текста, заходите на веб-страницы.

После того, как ключ будет готов, вы получите сообщение, похожее на это:

pub   4096R/43CDE61D 2010-12-06

     Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D

uid                  Egor Solovyev < Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;

sub   4096R/51FBE68C 2010-12-06


В это случае 43CDE61D — ID ключа.

Затем, вам нужно загрузить публичную часть вашего ключа на сервер идентификации, чтобы каждый мог определять сообщения и файлы как ваши. Чтобы это сделать, введите::

$ gpg —send-keys

Это отправит ваш ключ на один из серверов, но сеть серверов ключей автоматически синхронизирует ключи друг между другом. Когда синхронизация закончится, ваш подписанный публичный ключ будет готов для проверки контрибуторами по всему миру. (Замечание: если у вас нет установленного по умолчанию сервера с ключами, gpg может потребоваться дополнительный аргумент additional —keyserver keyserver.ubuntu.com в команде ниже). Кстати если Вас интересует поисковое продвижение, советуем обратиться к russianpromo.ru.

Создаём ваш SSH-ключ

SSH поддерживает Secure Shell, это протокол, позволяющий вам обмениваться данными по безопасному пути в сети. Можно использовать SSH для доступа к оболочке другого компьютера, а можно использовать его для безопасного обмена файлами. В нашем случае, мы в основном будем использовать SSH для безопасной загрузки пакетов на Launchpad.

Чтобы сгенерировать SSH-ключ, введите:

$ ssh-keygen -t rsa

Имя файла по умолчанию появится само, поэтому вы можете его оставить. Также рекомендуем задать «контрольную фразу»

Настраиваем pbuilder

pbuilder позволяет вам собирать пакеты локально на вашей машине. Он служит нескольким целям:

Сборка будет сделана в минимальном и чистом окружении. Это помогает вам убедиться в том, что ваши сборки успешны, без изменения вашей локальной системы

нет нужны устанавливать все требуемые зависимости локально

Вы можете настроить разные случаи для различных релизов Ubuntu и Debian

Настроить pbuilder очень просто, выполните

$ pbuilder-dist <релиз> create

где <релиз> может быть precise, oneiric, natty, maverick, lucid, или для Debian он может быть sid. Это может занять время для загрузки всех требуемых пакетов для «минимальной установки». Загруженные файл будут закешированны.

Готовимся к работе с Launchpad

Следующим нашим шагом будет подготовка вашей системы для работы с Launchpad. Этот раздел будет фокусироваться на следующих темах:

Что такое Launchpad; создание аккаунта Launchpad

Загрузка ваших ключей GPG и SSH на Launchpad

Настраиваем Bazaar для работы с Launchpad

Настраиваем Bash для работы с Bazaar

 

О Launchpad

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

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

 Кроме хостинга Ubuntu, Launchpad может предоставить хостинг для любого свободного проекта. Больше информации вы можете найти на Launchpad Help wiki.

 

Создаём аккаунт Launchpad

 

Если у вас ещё нет аккаунта на Launchpad, вы можете просто создать его. Если у вас есть аккаунт Launchpad, но вы не можете вспомнить ваш Launchpad id, вы можете найти его, перейдя на https://launchpad.net/~ и посмотреть на часть, следующую после ~ в URL-адресе.

 Процесс регистрации на Launchpad спросит у вас ваше реальное имя для отображения. Это требуется для того, что ваши коллеги по разработке Ubuntu могли узнать вас лучше.

 Когда вы зарегистрируете новый аккаунт, Launchpad отправит вам email с ссылкой, которую вам нужно открыть для подтверждения вашего адреса. Если вы его не получили, проверьте вашу папку со спамом.

 Страница помощи по новым аккаунтам на Launchpad содержит больше информации о процессе регистрации и настройках, которые вы можете изменить.

 

 Загружаем ваш GPG-ключ на Launchpad

Чтобы проверить свой ключ GPG, выполните:

$ gpg —fingerprint < Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;

и он выведет что-то наподобие:

pub   4096R/43CDE61D 2010-12-06

     Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D

uid                  Egor Solovyev < Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;

 

sub   4096R/51FBE68C 2010-12-06

Откройте https://launchpad.net/~/+editpgpkeys и скопируйте ваш «Key fingerprint» в текстовое поле. В примере выше это должен быть 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D. Теперь нажмите на «Import Key».

Launchpad будет использовать этот отпечаток для проверки сервером Ubuntu вашего ключа, и, если всё будет нормально, для отправки вам на почту подтверждения импортирования вашего ключа. Проверьте вашу почту и прочитайте письмо, которое вам отправил вам Launchpad. Если ваш email-клиент поддерживает шифрование OpenPGP, он спросит ваш пароль, который вы выбрали для ключа, когда GPG его генерировал. Введите пароль, затем кликните на ссылку, чтобы подтвердить, что ключ ваш.

Launchpad шифрует email, используя ваш публичный ключ, поэтому можно убедиться в том, что ключ ваш. Если ваша программа для почты не поддерживает OpenPGP-шифрование, скопируйте защищённое содержание письма, наберите gpg в вашем терминале, и вставьте туда содержание письма.

Вернитесь на сайт Launchpad, используя кнопку Confirm, Launchpad завершит импортирование вашего ключа OpenPGP.

Найдите больше информации на https://help.launchpad.net/YourAccount/ImportingYourPGPKey

 

Загружаем ваш SSH-ключ на Launchpad

Откройте https://launchpad.net/~/+editsshkeys в веб-браузере, также откройте ~/.ssh/id_rsa.pub в текстовом редакторе. Это публичная часть вашего ключа SSH, так что им можно безопасно поделиться с Launchpad. Скопируйте содержание файла и вставьте его в текстовое поле на вебстранице, говорящей «Add an SSH key». Теперь кликните «Import Public Key».

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

Настраиваем Bazaar

Bazaar — инструмент, который мы используем для хранения изменений кода логичным способом, для обмена предлагаемыми изменениями.

Чтобы рассказать Bazaar’у, кто вы такие, просто выполните:


$ bzr whoami «Egor Solovyev <«> Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >

$ bzr launchpad-login subgenius


whoami  расскажет Bazaar’у,  какое имя и email он должен использовать для коммитов сообщений. С помощью launchpad-login вы устанавливаете Launchpad ID. Этим способом код, опубликованный вами в Launchpad, будет ассоциирован с вами.

Замечание: если вы не помните ваш ID, перейдите на https://launchpad.net/~ и посмотрите, куда вы будете перенаправлены. Часть после “~” в URL-адресе — ваш Launchpad ID.)


Настраиваем вашу оболочку


Похожие на Bazaar, инструменты упаковки Debian/Ubuntu требуют знать о вас. Просто откройте ваш файл ~/.bashrc в текстовом редакторе и найдите линии, похожие на эти:

$ export DEBFULLNAME=»Egor Solovyev»

$ export DEBEMAILundefined»

Теперь сохраните этот файл и перезапустите ваш терминал или выполните:

$ source ~/.bashrc

(Если вы не используете оболочку по умолчанию, которой является bash, отредактируйте файл, связанный с вашей оболочкой)