Apt-grip – Emdebian-Grip erweitern(1) um Debian-Pakete auf die Schnelle

ÜBERSICHT


$ sudo apt-grip foo bar baz
$ sudo apt-grip -M http://ftp.fr.debian.org/debian/ foo bar baz

$ sudo apt-grip --clean-cache

Beschreibung

Emdebian-Grip hat eine begrenzte Anzahl Pakete im Hauptdepot, hauptsächlich, um die Größe der APT-Zwischenspeicherdaten zu verringern. Gelegentlich müssen individuelle Pakete von Standard-Debian zu einer einzelnen Maschine hinzugefügt werden, auf der Emdebian-Grip läuft. Apt-grip wurde zu diesem vorgesehenen Zweck geschrieben.

Apt-grip benötigt DEB_VENDOR-Unterstützung in Dpkg, um festzulegen wie das Paket "gegrippt" werden sollte. Standard-Vendor ist "Emdebian-grip", aber beachten Sie den nächsten Abschnitt der Einschränkungen von Apt-grip, falls Sie planen, es in einem unveränderten Debian-System zu benutzen.

Es ist üblicherweise der Fall, dass bereits ein Upgrade des System auf Emdebian-Grip durchgeführt wurde, bevor Apt-grip benutzt wird.

Kontaktieren Sie die Mailingliste »[email protected]« für Anfragen, Pakete direkt zu den Emdebian-Grip-Depots hinzuzufügen.

Das Herunterladen der Packages-Dateien kann eine angemessene Zeit dauern, geben Sie daher, wenn Sie eine Anzahl Pakete anpacken entweder alles Pakete in einem Befehl an oder benutzen Sie die Option "--keep-cache" für jeden Durchgang und benutzen Sie am Ende die Option "--clean-cache".

Falls auf dem Gerät, das Grip ausführt, nicht genügend Platz zum Herunterladen und Verarbeiten der Pakete vorhanden ist, führen Sie »apt-grip« auf einer anderen Maschine mittels der Optionen "--build-only" und "--arch" aus.

Die verarbeiteten Archive werden sich in /var/lib/apt-grip/output/ befinden und können von dort direkt auf das Gerät kopiert oder in ein lokal zugreifbares Depot eingefügt werden. Sobald es auf dem Grip-Gerät installiert ist, benutzen Sie auf dem Rechner, auf dem das Paket gebaut wird, "apt-grip -c", um den Zwischenspeicher zu bereinigen. "--keep-cache" wird vorausgesetzt, wenn "--build-only" gesetzt ist.

Beachten Sie außerdem, dass ebenso wie der Rest der Emdebian-Verarbeitung, »Install-Recommends« immer abgeschaltet ist, so dass Sie ein Paket, von dem Sie möchten, dass es nur von Paketen in der Liste, die an "apt-grip" übergeben wird, empfohlen wird, explizit zur Liste hinzufügen müssen.

Einschränkungen

Die Installation beliebiger Pakete von außerhalb der normalen Apt-Quellen (insbesondere, falls diese Pakete anschließend wie in Emgrip geändert wurden) wird diese Pakete als »lokal oder hinfällig« in dem Paketmanagern auflisten. Von umgewandelten Paketen kann kein Upgrade durchgeführt werden ohne den Aufruf von "Apt-grip" zu wiederholen, weil "Apt-get" nichts vom temporären Spiegel weiß, den "Apt-grip" zum Herunterladen der Pakete benutzt hat. Dies kann Probleme verursachen, falls von Abhängigkeiten zu solchen Paketen ein Upgrade durchgeführt werden müsste. Es ist möglich, dass das Hauptsystem "Apt" versuchen wird, diese lokalen Pakete zu entfernen, um mit dem Upgrade des Hauptsystems fortzufahren.

Am Besten ist es, den Zusatz eines solchen Paketes zum Depot, das Sie benutzen, in den Haupt-Apt-Quellen zu suchen. (Benutzen Sie das Paket Emdebian-grip-server, um Ihr eigenes Depot zu erstellen.)

Ein Paket "grippen" heißt, eine neue Version (mit Versionssuffix em1) mit weniger Dateien im neuen Paket zu erstellen. Lesen Sie »emgrip (1)«, um ausführlichere Informationen über diesen Vorgang zu erhalten. Verändern der Versionszeichenkette heißt, dass einige Abhängigkeiten geändert werden müssen – hauptsächliche strikte Abhängigkeiten. Dies bedeutet, dass Apt-grip bei einigen Paketkombinationen fehlschlagen könnte.

"Apt-grip" benutzt die Option "--reinstall" von Apt-get, um mit einigen dieser Situationen zurechtzukommen.

Fragen strikter Abhängigkeiten

Falls ein Quellpaket mehrere Binärpakete erstellt, von denen mindestens ein Paket eine strikte Abhängigkeit zu einem der anderen Binärpakete hat und eines dieser Binärpakete bereits von Debian installiert wurde, wird es notwendig Grip-Versionen von beiden beteiligten Binärpaketen zu installieren, so dass die strikte Abhängigkeit eingehalten werden kann.

 Quelle: foo
 Paket: foo
 Abhängigkeit: bar (= 0.0.1)
 Paket: bar
 $ sudo apt-grip foo bar

Im Beispiel oberhalb wird foo_0.0.1_amd64.deb zu foo_0.0.1em1_amd64.deb und es wird eine strikte Abhängigkeit zu "bar (=0.0.1em1)" durch Emgrip.

Standardspiegel

Apt-grip benutzt "http://ftp.uk.debian.org/debian/" als Standard-Debian-Spiegel. Benutzen Sie zum Ändern die Option -M|--mirror.

SecureApt

Benutzen Sie die Option "--no-auth", um die Verwendung nicht authentifizierter Depots zu erlauben. Beachten Sie, dass dies die Authentifizierung gegenüber allen verfügbaren Depots deaktiviert.

Upgrade auf Grip

Ändern Sie Ihre Quellenliste von Debian-Spiegeln auf Emdebian-Grip-Spiegel.

z.B. für Unstable:

 deb http://www.emdebian.org/grip/ unstable main

(Emdebian-Grip unterstützt nur Debian-Suites: »unstable«, »sid«, »testing«, »squeeze«, »stable«, »lenny«, »lenny-proposed-updates«.)

Dann aktualisieren und Upgrade durchführen:

 $ sudo apt-get update
 $ sudo apt-get clean
 $ sudo apt-get upgrade
 $ sudo apt-get dist-upgrade

(Beachten Sie, dass apt-get üblicherweise vermeldet, es sei in der Lage mehrere hundert Megabyte freien Speicher auf Ihrem System zu schaffen, wenn ein Upgrade einiger Ihrer Debian-Pakete auf Emdebian-Grip durchgeführt wird, Sie aber immer noch Raum benötigen, um die neuen Pakete tatsächlich herunterzuladen und zu entpacken.) Benutzen Sie nach dem Upgrade "apt-get clean", um mehr freien Speicher wiederzugewinnen.

Grip-Komponenten

Grip teilt das Archiv überdies, indem es neue Bereiche des Archivs für Pakete erstellt, die im Zusammenhang mit der Entwicklung, Fehlersuche, Dokumentation oder Java stehen, um die endgültige Größe der auf dem System zwischengespeicherten Pakete wieder zu verkleinern. Falls Sie "apt-grip" auf Ihrem Emdebian-Grip-System nutzen möchten, stellen Sie sicher, dass Sie Ihren Apt-Quellen die dev-Komponente hinzufügen.

 deb http://www.emdebian.org/grip/ unstable main dev

ähnlich für doc, debug und java. Andere Komponenten könnten von Zeit zu Zeit hinzugefügt werden, prüfen Sie daher die Emdebian-Website:

 http://www.emdebian.org/grip/search.php

Fügt wie benötigt weitere Komponenten hinzu:

 deb http://www.emdebian.org/grip/ unstable main dev debug java

Emdebian-Baked

Apt-grip wurde erweitert, um bei der Generierung von Paketen für die Benutzung mit Emdebian-Baked zu helfen. Dies bedeutete das Hinzufügen von Unterstützung von fremden Architekturen, als auch Unterstützung, dass aktuell installierte Pakete auf dem Gerät ignoriert werden, auf dem Apt-grip ausgeführt wird.

Der abweichende Teil dieses Prozesses ist die Verwaltung aktualisierter Pakete und veränderter Abhängigkeiten. Apt-grip kann nur bei Debian-Stable helfen.

Emdebian-Grip bekam keinen Lenny-Backport, daher muss auf Ihrer Entwicklungsmaschine Debian-Squeeze oder Sid (Testing oder Unstable) laufen, um ein Baked-Wurzeldateisystem zu entwickeln, das auf Lenny basiert.

Apt-grip-Beispielbefehl für Baked

 $ sudo apt-grip -a mipsel -V emdebian-baked -S stable dash snmpd

Baked-Pakete werden dann in /var/lib/apt-grip/output/ einschließlich aller Abhängigkeiten des angegebenen Paketes existieren. Diese können dann in ein existierendes Reprepro-Depot eingefügt werden.

 $ reprepro includedeb stable /var/lib/apt-grip/output/*.deb

Falls Ihr Depot mehr als eine Architektur unterstützt, stellen Sie sicher, dass Sie die »Architecture: all«-Pakete, die bereits von Apt-grip verarbeitet wurden, entfernen oder ignorieren.

 $ sudo rm /var/lib/apt-grip/output*_all.deb

Benutzen Sie dann die Reprepro-Option »-A«, um die hinzugefügte Architektur einzuschließen:

 $ reprepro -A armel includedeb stable /var/lib/apt-grip/output/*_armel.deb

Um weitere Informationen zu erhalten, lesen Sie die Emdebian-Website: http://www.emdebian.org/baked/