<?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>Abraxas &#187; Paketmanagement</title>
	<atom:link href="http://www.effinger.org/blog/tag/paketmanagement/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.effinger.org/blog</link>
	<description>a personal knowledge base</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:05:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Eigenes PPA-Repository auf Launchpad einrichten</title>
		<link>http://www.effinger.org/blog/2009/01/21/eigenes-ppa-repository-auf-launchpad-einrichten/</link>
		<comments>http://www.effinger.org/blog/2009/01/21/eigenes-ppa-repository-auf-launchpad-einrichten/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 22:22:30 +0000</pubDate>
		<dc:creator>Markus Effinger</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[GPG]]></category>
		<category><![CDATA[Launchpad]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[Paketmanagement]]></category>

		<guid isPermaLink="false">http://www.effinger.org/blog/?p=476</guid>
		<description><![CDATA[<p>Ein Launchpad-Repository (PPA &#8211; personal package archive) mit 1 GB freiem Speicherplatz hilft den eigenen Webserver zu entlasten. Der ersten Schritt zum eigenen Repository ist die Anmeldung bei Launchpad.</p> Erzeugen eines OpenPGP-Schlüssels <p>Um ein Repository zu bekommen, benötigt man außerdem einen OpenPGP Schlüssel. Diesen habe ich mit dem Befehl</p> gpg --gen-key <p>erzeugt. Dabei habe ich [...]]]></description>
			<content:encoded><![CDATA[<p>Ein <a href="https://help.launchpad.net/Packaging/PPA">Launchpad-Repository (PPA &#8211; personal package archive)</a> mit 1 GB freiem Speicherplatz hilft den eigenen Webserver zu entlasten. Der ersten Schritt zum eigenen Repository ist die <a href="https://launchpad.net/+login">Anmeldung bei Launchpad</a>.</p>
<h2>Erzeugen eines OpenPGP-Schlüssels</h2>
<p>Um ein Repository zu bekommen, benötigt man außerdem einen <a href="https://help.ubuntu.com/community/GnuPrivacyGuardHowto">OpenPGP Schlüssel</a>. Diesen habe ich mit dem Befehl</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--gen-key</span></pre></div></div>

<p>erzeugt. Dabei habe ich für Art, Gültigkeit und Schlüssellänge stets die vorgegebenen Standardwerte verwendet. Bei den persönlichen Angaben bitte keinen Kommentar eingeben. Zum Schluss erhält man auch eine Zeile mit der Ausgabe</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pub   1024D<span style="color: #000000; font-weight: bold;">/</span>8E7FE678 <span style="color: #000000;">2009</span>-01-<span style="color: #000000;">21</span></pre></div></div>

<p>Die öffentliche Schlüssel-ID beträgt hier also 8E7FE678. Diese Ausgabe erhält man im Nachhinein übrigens mit einem</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--list-keys</span></pre></div></div>

<p>für alle erzeugten Schlüssel bzw. für eine spezielle E-Mail-Addresse mit</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--list-keys</span> your<span style="color: #000000; font-weight: bold;">@</span>mailaddress.com</pre></div></div>

<p>Damit die öffentliche Schlüssel-ID allen Programmen zur Verfügung steht, setzen wir die entsprechende Umgebungsvariable durch Ergänzung der .bashrc um folgende Zeile (Schlüssel-ID anpassen):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GPGKEY</span>=8E7FE678</pre></div></div>

<p>Außerdem sollte man sicherstellen, dass die Angaben zu den Packages, die aus den zwei Umgebungsvariablen DEBFULLNAME und DEBEMAIL gelesen werden, vorhanden sind. Die Schreibweise muss <strong>exakt</strong> mit den gemachten Angaben zur Erzeugung des OpenPGP-Schlüssels übereinstimmen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DEBFULLNAME</span>=<span style="color: #ff0000;">'Your Name'</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DEBEMAIL</span>=<span style="color: #ff0000;">'your@mailaddress.org'</span></pre></div></div>

<p>Gibt es Differenzen erhält man nämlich bei der Erstellung von Paketen folgende Fehlermeldung: &#8220;geheimer schlüssel ist nicht vorhanden&#8221; bzw. &#8220;secret key not available&#8221;. Als nächstes Übertragen wir den öffentlichen Schlüssel auf einen öffentlichen Schlüsselserver</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--send-keys</span> <span style="color: #660033;">--keyserver</span> keyserver.ubuntu.com 8E7FE678</pre></div></div>

<p>Die Schlüssel-ID ist hier natürlich ebenfalls anzupassen.</p>
<h2>Aktivieren des Launchpad-Repositories</h2>
<p>Zum Aktivieren des Launchpad-Repositories meldet man sich mit seinem <a href="https://launchpad.net/+login">Login</a> an und klickt auf seinen Namen (rechts oben), so dass man zum eigenen Profil komt. Anschließend wählt dann den Punkt <em>Change Details</em>. Im Menü wählt man OpenPGP Keys und gibt dort die Finger-Print des Schlüssels ein, den man über ein</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--fingerprint</span> 8E7FE678</pre></div></div>

<p>erhält (wiederum für eigene Schlüssel-ID anpassen). Nach dem Importieren erhält man eine E-Mail, deren Inhalt einen verschlüsselten Link enthält, den man zum Aktivieren aufrufen muss. Zum Entschlüsseln wird der entsprechende Inhalt (ab einschließlich &#8212;&#8211;BEGIN PGP MESSAGE&#8212;&#8211;  bis &#8212;&#8211;END PGP MESSAGE&#8212;&#8211;) in der Datei temp.txt gespeichert, die man dann durch ein</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--decrypt</span> temp.txt</pre></div></div>

<p>in den Klartext verwandelt. Durch Aufrufen des enthaltenen Links bestätigt man den Schlüssel nochmals und kann dann unter seinem Profil das PPA aktivieren. Im nächsten Schritt muss man Ubuntero werden, d.h. den Ubuntu Verhaltenskodex akzeptieren. Ist man dies nicht, werden hochgeladene Pakete mit der Fehlermeldung &#8220;PPA uploads must be signed by an &#8216;ubuntero&#8217;. &#8221; verworfen. Um Ubuntero zu werden ruft man nach dem Einloggen die Seite <a href="https://launchpad.net/codeofconduct">Ubuntu Code of Conduct</a> auf, geht auf den Punkt <em>Sign it!</em>, lädt den Kodex herunter und signiert ihn mit einem</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--clearsign</span> UbuntuCodeofConduct-1.0.1.txt</pre></div></div>

<p>Den Inhalt der dadurch erzeugten Datei UbuntuCodeofConduct-1.0.1.txt.asc fügt man nun in das entsprechende Feld ein, schickt das Formular ab &#8211; und schon ist man Ubuntero.</p>
<h2>Pakete erstellen und ins Repository übernehmen</h2>
<p>Eigene Pakete muss man fortan beim Erstellen signieren, falls sie in das PPA-Repository aufgenommen werden sollen. Falls man ein bereits im Ubuntu-Repository vorhandenes Paket angepasst hat, also die Datei names xyz.orig.tar.gz von Beginn an vorhanden ist, so erstellt man mit</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">debuild <span style="color: #660033;">-S</span> <span style="color: #660033;">-sd</span></pre></div></div>

<p>die entsprechenden Dateien &#8211; ansonsten mit</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">debuild <span style="color: #660033;">-S</span> <span style="color: #660033;">-sa</span></pre></div></div>

<p>Zum Hochladen installiert man dput mit</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> dput</pre></div></div>

<p>und erzeugt die Datei ~/.dput.cf mit diesem Inhalt (bitte launchpad-id anpassen):</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>my-ppa<span style="">&#93;</span></span>
<span style="color: #000099;">fqdn</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> ppa.launchpad.net</span>
<span style="color: #000099;">method</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> ftp</span>
<span style="color: #000099;">incoming</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> ~your-launchpad-id/ubuntu/</span>
<span style="color: #000099;">login</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> anonymous</span>
<span style="color: #000099;">allow_unsigned_uploads</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 0</span></pre></div></div>

<p>Das erzeugte Source-Paket wird schließlich durch ein</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">dput my-ppa P_V_source.changes</pre></div></div>

<p>ins Repository übertragen. P steht dabei für den Paketnamen und V für die Versionsnummer. Die Datei P_V_source.changes sollte sich natürlich im entsprechenden Verzeichnis befinden. Anfangs habe ich mich gefragt, weshalb man zum Hochladen kein Passwort oder dergleichen benötigt, aber da die erzeugten Pakete signiert sind, ist das ja gar nicht notwendig.<br />
Die hochgeladenen Quelltext-Pakete werden dann von Launchpad für die Platformen i386, AMD64 und LPIA kompiliert und  anschließend ins Repository gestellt. Das kann etwas dauern. Natürlich sollte man vorher selbst sicherstellen, dass das Kompilieren auf dem eigenen Rechner fehlerfrei abläuft. Während in der Vergangenheit die Packages auf dem Launchpad PPA nicht signiert wurden, soll dies <a href="https://bugs.launchpad.net/soyuz/+bug/125103/comments/64">zukünftig anders</a> sein. Ich bin gespannt, wann meine Pakete signiert sind..</p>
<h2>Kleine Tips zum Schluss</h2>
<h3>GPG-Agent nutzen</h3>
<p>Der gpg-agent erlaubt eine etwas bequemere Anwendung von GPG, da bei mehrfacher Verwendung eines Schlüssels innerhalb einer bestimmten Zeitspanne nur beim ersten Mal nach dem Passwort gefragt wird. Installieren lässt sich der gpg-agent mit einem</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> gnupg-agent</pre></div></div>

<p>Damit der gpg-agent bei jeder Sitzung gestartet wird, habe ich ihn unter <em>System&gt;Einstellungen&gt;Sitzungen</em> als Startprogramm mit dem Befehl</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg-agent <span style="color: #660033;">--daemon</span></pre></div></div>

<p>hinzugefügt.</p>
<h3>Schlüssel zurückziehen</h3>
<p>Hat jemand Zugang zum privaten Schlüssel erhalten, so kann man den Schlüssel zurückziehen/als ungültig markieren (revoke). Die sehr gute <a href="http://www.hackdiary.com/2004/01/18/revoking-a-gpg-key/">revoke-Anleitung von Hackdiary</a> hilft dabei. Lediglich den dort angegebenen MIT Server habe ich durch den Ubuntu Server ersetzt, an den ich meinen öffentlichen Schlüssel gesendet hatte. Das sollte eigentlich aber keinen Unterschied machen, da die Schlüsselserver die öffentlichen Schlüssel untereinander austauschen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.effinger.org/blog/2009/01/21/eigenes-ppa-repository-auf-launchpad-einrichten/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

