<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ky6uk&#039;s Blog &#187; packaging</title>
	<atom:link href="http://ky6uk.ugatu.net/tag/packaging/feed" rel="self" type="application/rss+xml" />
	<link>http://ky6uk.ugatu.net</link>
	<description>Мой уютненький...</description>
	<lastBuildDate>Mon, 12 Jul 2010 19:54:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Launchpad &#8211; это просто</title>
		<link>http://ky6uk.ugatu.net/launchpad-its-really-simple?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=launchpad-its-really-simple</link>
		<comments>http://ky6uk.ugatu.net/launchpad-its-really-simple#comments</comments>
		<pubDate>Thu, 13 Aug 2009 09:59:44 +0000</pubDate>
		<dc:creator>Ky6uk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ky6uk.ugatu.net/?p=237</guid>
		<description><![CDATA[У меня есть привычка собирать некоторые часто используемые приложения из исходников. Причина этого довольно очевидна &#8211; желание иметь больший функционал с юзабельностью и нежелание иметь древние баги (новые всегда можно откатить или поправить самому). Но длительное использование Ubuntu как основного дистрибутива Linux оставило свой след &#8211; я делаю из этих исходников бинарные пакеты, которые в [...]]]></description>
			<content:encoded><![CDATA[<p>У меня есть привычка собирать некоторые часто используемые приложения из исходников. Причина этого довольно очевидна &#8211; желание иметь б<em><strong>о</strong></em>льший функционал с юзабельностью и нежелание иметь древние баги (новые всегда можно откатить или поправить самому). Но длительное использование Ubuntu как основного дистрибутива Linux оставило свой след &#8211; я делаю из этих исходников бинарные пакеты, которые в дальнейшем можно установить или удалить с помощью обычного пакетного менеджера <a href="http://ru.wikipedia.org/wiki/Dpkg">dpkg</a>.</p>
<p>В последнее время мне стало нехватать моего личного и процессорного времени на сборку, поэтому я заинтересовался сервисом <a href="https://launchpad.net/">launchpad.net</a>. Этот сервис помогает автоматизировать сборку пакетов из исходников для различных архитектур и предоставляет персональный репозиторий (<a href="https://help.launchpad.net/Packaging/PPA">PPA</a>) для готовых пакетов, который можно добавить непосредственно в <em>sources.list</em>.<br />
<span id="more-237"></span></p>
<h4>Для чего это нужно?</h4>
<p>Собственно причина написания статьи:</p>
<ul>
<li>Автоматическая сборка пакетов на сервере в &laquo;чистом&raquo; окружении.</li>
<li>Поддержка различных архитектур (amd64, i386, lpia).</li>
<li>Собственный репозиторий для подключения в Ubuntu.</li>
</ul>
<p>А так же:</p>
<ul>
<li>Хостинг исходных текстов под управлением <a title="Распределённая система управления версиями" href="http://ru.wikipedia.org/wiki/Bazaar" target="_blank">bazaar</a>.</li>
<li>Багтрекер.</li>
<li>Встроенная система локализации.</li>
<li>Группы разработчиков.</li>
<li>Может быть что-то еще&#8230; :)</li>
</ul>
<h4>Начинаем с малого. Регистрация.</h4>
<p>Получить доступ к <a href="https://launchpad.net/">launchpad.net</a> (далее просто <strong>LP</strong>) не сложно, необходимо лишь пройти стандартную процедуру <a title="Вход / Регистрация на Launchpad.Net" href="https://launchpad.net/+login" target="_blank">по этой ссылке</a>.</p>
<ul>
<li>Укажем в нижнем поле наш E-Mail на который придет подтверждение регистрации и нажмем кнопку <strong>Register</strong>.</li>
</ul>
<p style="text-align: center;">
<div id="attachment_249" class="wp-caption aligncenter" style="width: 541px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg.png"><img class="size-full wp-image-249  " title="registration" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg.png" alt="регистрация на launchpad.net" width="531" height="199" /></a><p class="wp-caption-text">регистрация на launchpad.net</p></div>
<ul>
<li>На указанный почтовый адрес придет письмо с инструкциями. В нем будет ссылка на продолжение регистрации.</li>
</ul>
<div id="attachment_258" class="wp-caption aligncenter" style="width: 394px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg1.png"><img class="size-full wp-image-258" title="registration2" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg1.png" alt="письмо со ссылкой" width="384" height="264" /></a><p class="wp-caption-text">письмо со ссылкой</p></div>
<blockquote><p>LP предупреждает, что некоторые почтовые сервисы могут блокировать письма и советует использовать <a href="http://gmail.com/">Gmail</a> или                   <a href="http://mail.yahoo.com/">Yahoo Mail</a> в качестве регистрационной почты, но в большинстве случаев все приходит на любой адрес.</p></blockquote>
<ul>
<li>После перехода в письме по ссылке, откроется страничка LP на которой нужно будет указать отображаемое имя (обычно тут пишут имя и фамилию) и пароль для дальнейшего доступа к LP. После заполнения формы жмем <strong>Continue</strong>. На этом регистрация завершена.</li>
</ul>
<div id="attachment_260" class="wp-caption aligncenter" style="width: 510px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg2.png"><img class="size-full wp-image-260" title="registration complete" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/reg2.png" alt="завершение регистрации" width="500" height="206" /></a><p class="wp-caption-text">завершение регистрации</p></div>
<h4>Создание нового PPA.</h4>
<ul>
<li>Для создания персонального архива пакетов (PPA), на личной странице пользователя необходимо нажать на ссылку <strong>Create a new PPA</strong>.</li>
</ul>
<div id="attachment_264" class="wp-caption aligncenter" style="width: 361px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ppa.png"><img class="size-full wp-image-264" title="создаем новый PPA" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ppa.png" alt="создаем новый PPA" width="351" height="30" /></a><p class="wp-caption-text">создаем новый PPA</p></div>
<ul>
<li>В открывшемся окне заполняем название и описание будущего PPA, соглашаемся с <a style="outline-style: none; outline-width: initial; outline-color: initial; color: #0033aa; text-decoration: underline;" href="https://help.launchpad.net/PPATermsofUse">PPA Terms of Use</a> и жмем кнопку <strong>Activate</strong>. Название и описание в дальнейшем можно будет поменять. После этого откроется страница с только что созданным архивом пакетов.</li>
</ul>
<blockquote><p><strong><span style="color: #993300;">Важно!</span></strong> <span style="color: #993300;">После создания PPA будет заблокирована возможность менять имя персональной страницы (у меня это /~ky6uk/). По этому рекомендую изменить это имя заранее на странице <strong>Change details</strong>.</span></p></blockquote>
<p style="text-align: center;">
<div id="attachment_268" class="wp-caption aligncenter" style="width: 576px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ppa1.png"><img class="size-full wp-image-268 " title="форма создания нового PPA" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ppa1.png" alt="форма создания нового PPA" width="566" height="285" /></a><p class="wp-caption-text">форма создания нового PPA</p></div>
<h4>Важный момент, цифровой ключ.</h4>
<p><span style="font-weight: normal;">Для использования PPA необходимо иметь личный <a title="Подробнее об OpenPGP" href="https://www.pgpru.com/faq/obschie" target="_blank">OpenPGP</a> ключ, которым будут подписываться ваши пакеты для проверки подлинности. Создать его не сложно.</span></p>
<ul>
<li>Генерируем ключ командой
<pre class="brush: plain;">$ gpg --gen-key</pre>
</li>
</ul>
<ul>
<li>Тип ключа оставляем по умолчанию: <em><strong>DSA и ElGamal</strong></em>.</li>
<li>Размер тоже оставим как есть: <em><strong>2048 бит</strong></em>.</li>
<li>Срок действия так же оставляем по умолчанию: <em><strong>без ограничения срока действительности</strong></em>.</li>
<li>Отвечаем утвердительно на вопрос: <em><strong>Все верно? (y/N)</strong><span style="font-style: normal;">.</span></em></li>
<li>Следующим будет вопрос <em><strong>В</strong></em><em><strong>аше настоящее имя</strong><span style="font-style: normal;">.</span><span style="font-style: normal;"> Здесь указываем ваши </span><strong>Имя (Ник) Фамилия</strong></em></li>
<li>Далее указываем ваш E-Mail на вопрос: <strong><em>Email-адрес</em></strong>.</li>
<li><strong><em>Комментарий</em></strong> можно заполнить по своему желанию или оставить пустым.</li>
<li>Если все верно, принимаем изменения и вводим пароль с подтверждением для доступа к приватному ключу.</li>
<li>После ввода пароля начнется процесс генерации ключа. На этом этапе необходимо выполнять различные действия, такие как двигать мышью и печатать на клавиатуре.</li>
</ul>
<p>В итоге должно получиться примерно следующее:</p>
<div id="attachment_283" class="wp-caption aligncenter" style="width: 544px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/gpg.png"><img class="size-full wp-image-283 " title="сгенерированный OpenPGP ключ" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/gpg.png" alt="сгенерированный OpenPGP ключ" width="534" height="150" /></a><p class="wp-caption-text">сгенерированный OpenPGP ключ</p></div>
<p>В моем случае ID ключа <strong>3231C010</strong>.</p>
<ul>
<li>В заключение отправим публичный ключ на сервер ключей:</li>
</ul>
<pre class="brush: plain;">$ gpg --send-keys --keyserver keyserver.ubuntu.com 3231C010</pre>
<h4>Еще немного бюрократии.</h4>
<p>Перед началом работы с PPA так же необходимо подписать нормативный кодекс Ubuntu (<a title="Кодекс норм поведения Ubuntu" href="https://launchpad.net/codeofconduct" target="_blank">Ubuntu Codes of Conduct</a>) своим личным ключом.</p>
<ul>
<li>Переходим по <a title="нормативный кодекс Ubuntu" href="https://launchpad.net/codeofconduct" target="_blank">ссылке</a> и нажимаем на первый пункт: <strong>Register an OpenPGP key</strong></li>
</ul>
<div id="attachment_291" class="wp-caption aligncenter" style="width: 296px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc.png"><img class="size-full wp-image-291" title="UCoC, регистрация OpenPGP ключа" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc.png" alt="UCoC, регистрация OpenPGP ключа" width="286" height="52" /></a><p class="wp-caption-text">UCoC, регистрация OpenPGP ключа</p></div>
<ul>
<li>Импортируем OpenPGP ключ, указав в поле его отпечаток и нажав на кнопку <strong>Import Key</strong>.</li>
</ul>
<p style="text-align: center;">
<div id="attachment_293" class="wp-caption aligncenter" style="width: 562px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc1.png"><img class="size-full wp-image-293 " title="Импорт OpenPGP ключа" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc1.png" alt="Импорт OpenPGP ключа" width="552" height="146" /></a><p class="wp-caption-text">Импорт OpenPGP ключа</p></div>
<blockquote><p>Узнать отпечаток можно командой</p>
<pre class="brush: plain;">$ gpg --fingerprint 3231C010</pre>
<p>Где 3231C010 &#8211; ID вашего ключа.</p></blockquote>
<ul>
<li>На ваш E-Mail придет письмо, с зашифрованным текстом.
<pre class="brush: plain;">-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)

hQIOA7MGLea56Z7WEAf/cc/4jpc3VRK8UPG9qhnM6CCkhJhe2lvMmIUKv3FJ+R7w
trzB9puaO0XdRFeJ5SxmMnwJ8UgElUBBnoIRxWX/fOKPmjgoZ9XFe8j9ziujxZTG
Xcmz7pcqYXBYIj5WuwTTEIVgPNgyI1aCTihepQ6R1x/Uag7Bc2pxVriDabfaIOCq
roTHbh8rqrlxY+aWQcjrHGTMy8G/X8McKjNHu7GN4NoqBsKmTBwJM/rjmodyivAN
PsDP51vQ1ZxGb5wGOlozrI4VVORQePphHRtBM+EnGgket0GemUsgArpk836JMN/M
xhHfPzRBdD5mj11q+FkOLJ7wmEpSuZyEWCjyyp1M3gf/fYP+88n/uRvCqLytnprN
5tqBLREJSQoJnrMsflS791JaS1SF6ExSGXTZC/dJJrGOVu8kGvwdutQgQmnNHhjO
/ZVWEVJVjm/zOsumqM/ukXPS3f161ECRcu4aa+OTDjPhxA/7Wb3UKTiTHd7NyN5K
vegjTzIVpSiL8KyLNtEM/fYKFtLcF3B7Jsgkjwek5jG7FDp3jfG70kFV3vCSWqzK
wvF8d/bDsBs+sxQlr7qNn813d8cBR5bVoj0avGxhhQ6kaRgL6LGg6PyoVRm716gx
apiFIHqEM8J6rjDgNHP+eZi96z2K8tCeWudIJix40D0yoQg2l4TmRv5va2oNTH1N
mtLArwFtV2LipJbTJjU8DaJR65zAoXBndW66FSfM87IiJ0kAeE2HeMrVk4rFtMnb
yD2+9+w5+LUAGU9hp1fIUTrcF4c0lyJhSqe5GUJ9HWuZ2EuXOBFH15RaPaSape4P
QcUfqsAnbG28cBVjR+rD1mxaMaKWXN88lpvHvqDMQsxfzhkyKigRtr9gceLKB2SY
7MHxyXAKs3+4K6378iXCHsEv2AerUKoGbYhK+HEYmQ5ol+AbyIVHCPsi5MDvHLbW
VxUUxCy3Y3rIAn1nljjcAGNxlmEaQNaCXvmF5UwsBwu6PZDO6Sg/2XMpenML7hhc
15hSwUCa2IEpyTpiwHjGFqjZ5giek+cf/P4cLMw0FEu5uVX+t7pxG4DiGwUjSpyY
2m046YyoweqzbaJOH1TrsApAW7K/Ad8D1NJpd1cHRLU3JYq2fiwSgsDIr4Gf+F3R
h8v/SnvAJR7xEOkq/6a+uySqS74JjsZfIPwIsPhDj6WGGY4=
=CLRh
-----END PGP MESSAGE-----</pre>
</li>
</ul>
<ul>
<li>Расшифровать его можно разными способами. Самый простой &#8211; сохранить этот текст в файл, например в <em>/tmp/mail.txt</em> и выполнить команду:
<pre class="brush: plain;">$ gpg --decrypt /tmp/mail.txt</pre>
<p>После ввода пароля текст будет расшифрован. В конце этого сообщения есть ссылка на LP, являющаяся подтверждением того, что вы владелец указанного ключа. Перейдите по этой ссылке и нажмите на кнопку <strong>Continue</strong>.</li>
</ul>
<div id="attachment_297" class="wp-caption aligncenter" style="width: 479px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/openpgp.png"><img class="size-full wp-image-297" title="подтверждение OpenPGP ключа" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/openpgp.png" alt="подтверждение OpenPGP ключа" width="469" height="112" /></a><p class="wp-caption-text">подтверждение OpenPGP ключа</p></div>
<ul>
<li>Теперь необходимо скачать файл нормативного кодекса Ubuntu <a title="Ubuntu Codes of Conduct" href="https://launchpad.net/codeofconduct" target="_blank">на этой</a> странице.</li>
</ul>
<div id="attachment_298" class="wp-caption aligncenter" style="width: 296px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc2.png"><img class="size-full wp-image-298" title="Нормативный кодекс Ubuntu" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc2.png" alt="Нормативный кодекс Ubuntu" width="286" height="52" /></a><p class="wp-caption-text">нормативный кодекс Ubuntu</p></div>
<ul>
<li>Сохраняем файл <em>UbuntuCodeofConduct-1.0.1.txt</em> и выполняем команду
<pre class="brush: plain;">gpg --clearsign UbuntuCodeofConduct-1.0.1.txt</pre>
<p>Это создаст подписанный вашим ключом файл <em>UbuntuCodeofConduct-1.0.1.txt.asc</em>.</li>
<li>Переходим <a title="Ubuntu Codes of Conduct" href="https://launchpad.net/codeofconduct" target="_blank">по ссылке</a> и нажимаем на <strong>Sign It!</strong></li>
</ul>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 296px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc3.png"><img class="size-full wp-image-299" title="подписываем нормативный кодекс Ubuntu" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc3.png" alt="подписываем нормативный кодекс Ubuntu" width="286" height="52" /></a><p class="wp-caption-text">подписываем нормативный кодекс Ubuntu</p></div>
<ul>
<li>Полностью копируем текст из <em>UbuntuCodeofConduct-1.0.1.txt.asc </em>в поле <strong>Signed Code</strong> и нажимаем <strong>Continue</strong>. На этом с бюрократией покончено. ;-)</li>
</ul>
<div id="attachment_300" class="wp-caption aligncenter" style="width: 507px"><a href="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc21.png"><img class="size-full wp-image-300" title="завершение подписывания UCoC" src="http://ky6uk.ugatu.net/wp-content/uploads/2009/08/ucoc21.png" alt="завершение подписывания UCoC" width="497" height="306" /></a><p class="wp-caption-text">завершение подписывания UCoC</p></div>
<h4>Использование PPA.</h4>
<p><span style="font-weight: normal;">Как уже говорилось, с помощью PPA можно автоматизировать сборку и публикацию бинарных пакетов для Ubuntu. Для этого нужно только загрузить архив специальным образом сформированных исходников.</span></p>
<ul>
<li>Для начала уставим в систему пакет <a title="приложение для загрузки deb-пакетов на сервер" href="http://packages.ubunut.com/dput" target="_blank">dput</a>, с помощью которого и будет происходить загрузка исходников на сервер LP.
<pre class="brush: plain;">$ sudo aptitude install dput</pre>
</li>
</ul>
<ul>
<li>После этого нужно создать файл <em>~/.dput.cf</em> со следующим содержанием:
<pre class="brush: plain;">[ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~&lt;ваш_id&gt;/&lt;имя_ppa&gt;/ubuntu/
login = anonymous
allow_unsigned_uploads = 0</pre>
<p><em>&lt;ваш_id&gt;</em> &#8211; это имя вашей страницы на LP. (знак тильды <strong>~</strong> перед именем обязателен)<em><br />
&lt;имя_ppa&gt;</em> по-умолчанию <strong>ppa</strong>. Его можно изменить в настройках.</p>
<p>У меня этот файл выглядит следующим образом:</p>
<pre class="brush: plain;">[ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~ky6uk/ppa/ubuntu/
login = anonymous
allow_unsigned_uploads = 0</pre>
</li>
</ul>
<p>Теперь нам понадобятся специальным образом подготовленные исходники. Покажу на примере уже существующего пакета <a title="Web-браузер" href="http://packages.ubuntu.com/arora" target="_blank">arora</a>.</p>
<ul>
<li>Получим исходники командой
<pre class="brush: plain;">$ apt-get source arora</pre>
</li>
<li>Подождем пока они скачаются и распакуются, затем переименуем директорию с исходниками, добавив к имени <em>~ppa1</em>. У меня директория стала называться <em>arora-0.8.0~ppa1</em>.</li>
</ul>
<blockquote><p>Окончание <em>~ppaX</em> &#8211; одно из требований LP. Все пакеты должны оканчиваться на <em>~ppaX</em>, где <em>X</em> &#8211; цифра, означающая номер билда. Например, если после сборки пакета были замечены недочеты, то после исправления последнюю цифру необходимо увеличить на еденицу. Подробнее про это <a title="требование к версиям пакетов" href="https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage#Versioning" target="_blank">по ссылке</a>.</p></blockquote>
<ul>
<li>Теперь вносим в код все необходимые изменения и не забываем добавить в файл <em>debian/changelog</em> запись о проделанной работе. Например у меня последняя запись выглядит так:
<pre class="brush: plain;">arora (0.8.0~ppa1) karmic; urgency=low

  * Fixed critical bug.
  * Add more functions.

 -- Roman Nuritdinov &lt;ky6uk.kun@yandex.ru&gt;  Thu, 13 Aug 2009 21:34:00 +0600</pre>
</li>
<li>Теперь, находясь в директории с исходниками, даем команду на сборку этих исходников в архив командой
<pre class="brush: plain;">$ debuild -S -sd</pre>
</li>
<li>Осталось отправить полученные файлы на LP, где они будут собраны в бинарный пакет и размещены в вашем PPA. Отправить файлы на LP можно командой
<pre class="brush: plain;">$ dput ppa arora_0.8.0~ppa1_source.changes</pre>
<p>где <em>ppa</em> &#8211; это название правила из <em>~/.dput.cf</em>, а <em>arora_0.8.0~ppa1_source.changes</em> сгенерированный командой <em>debuild</em> файл изменений.</li>
</ul>
<p>Через некоторое время после загрузки исходных кодов на LP на ваш почтовый ящик придет письмо с результатом. Пакет может быть отклонен из-за ошибок или принят на обработку. Если пакет принят, то он будет поставлен в очередь на сборку. Следить за сборкой можно на странице с вашим PPA.</p>
<p>Теперь все зависит только он правильности оформления пакета и качества исходного кода. Удачи!</p>
<h4>Полезные ссылки.</h4>
<ul>
<li><a href="https://help.launchpad.net/Packaging" target="_blank">Управление пакетами на Launchpad.Net.</a></li>
<li><a href="https://help.ubuntu.com/community/GnuPrivacyGuardHowto" target="_blank">Использование GPG в Ubuntu Linux.</a></li>
<li><a href="https://help.launchpad.net/ReadingOpenPgpMail#Reading%20OpenPGP%20E-mail" target="_blank">Чтение зашифрованных OpenPGP писем.</a></li>
<li><a href="http://www.pgpru.com/chernowiki/rukovodstva/bezopasnostj/upravleniekljuchami/podkljuchiopenpgp" target="_blank">Создание и использование OpenPGP на русском.</a></li>
<li><a href="https://wiki.ubuntu.com/PackagingGuide/Complete" target="_blank">Руководство по созданию пакетов для Ubuntu Linux.</a></li>
<li><a href="http://www.debian.org/doc/manuals/maint-guide/ch-start.ru.html" target="_blank">Руководство начинающего разработчика Debian.</a></li>
</ul>
<h3  class="related_post_title">Похожие статьи</h3><ul class="related_post"><li><a href="http://ky6uk.ugatu.net/kmail-1-12-0-openpgp-bab-passphrase" title="KMail 1.12.0 + OpenPGP, &laquo;Bad passphrase&raquo;">KMail 1.12.0 + OpenPGP, &laquo;Bad passphrase&raquo;</a></li><li><a href="http://ky6uk.ugatu.net/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami" title="VTun: организация VPN между двумя точками">VTun: организация VPN между двумя точками</a></li><li><a href="http://ky6uk.ugatu.net/kde-4-5-svezhij-vzglyad-iz-ubuntu-10-10" title="KDE 4.5: свежий взгляд из Ubuntu 10.10">KDE 4.5: свежий взгляд из Ubuntu 10.10</a></li><li><a href="http://ky6uk.ugatu.net/razdayom-3g-internet-ot-megafona-cherez-dir-320" title="Раздаём 3G-интернет от &laquo;Мегафона&raquo; через DIR-320.">Раздаём 3G-интернет от &laquo;Мегафона&raquo; через DIR-320.</a></li><li><a href="http://ky6uk.ugatu.net/java-aplety-v-google-chrome-ubuntu" title="Java-аплеты в Google Chrome (Ubuntu).">Java-аплеты в Google Chrome (Ubuntu).</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ky6uk.ugatu.net/launchpad-its-really-simple/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
