=== Debian-Paketverwaltung: === ======================= Debian-Paket selbst bauen: -------------------------- http://www.martin-bock.de/pc/pc-0101.html\\ http://antbear.org/debpkg-intro.html\\ http://debiananwenderhandbuch.de/debianpaketeerstellen.html\\ http://www.linuxdelta.de/uploads/media/debian_workshop.pdf\\ https://www.luga.de/Angebote/Vortraege/DPKG/DPKG.pdf\ß https://webseiten.hs-weingarten.de/winkelmh/zopecms/hrwcms/installation/debian-paket-manager\\ Anzeige aller installierten Pakete ---------------------------------- (http://wiki.debianforum.de/AnzeigeAllerInstalliertenPakete)\\ Dieser Seite beschreibt Möglichkeiten sich alle auf dem System installierten Pakete anzeigen zu lassen. user@debian:~$ dpkg -l |grep ^i > ~/pakete.txt ergibt: ii xtrans-dev 1.0.0-6 X transport library (development files) ii xutils 7.1.ds-1 X Window System utility programs ii xutils-dev 1.0.2-3 X Window System utility programs for develop ii xview-clients 3.2p1.4-21.1 XView client programs ii xviewg 3.2p1.4-21.1 XView shared libraries In ~/pakete.txt steht dann die Ausgabe im Format von dpkg -l für alle installierten Pakete. Allerdings ist die Breite der Anzeige begrenzt, so dass manche Paketnamen und Versionsstrings nicht ganz komplett sind. Für eine Übersicht reichts aber... Paketnamen und Versionen: ------------------------- Wer nur die Paketnamen und Versionen haben will (ohne den ganze Formatierungkram): user@debian:~$ COLUMNS=200 dpkg -l | awk '/^i/ {print $2, $3}' > pakete.txt Dann steht in der Datei immer der Paketname gefolgt von der installierten Version durch Leerzeichen getrennt: xtrans-dev 1.0.0-6 xutils 7.1.ds-1 xutils-dev 1.0.2-3 xview-clients 3.2p1.4-21.1 xviewg 3.2p1.4-21.1 Liste installierter Pakete ohne Versionsnummer: ----------------------------------------------- Will man nur eine Liste der installierten Pakete ohne die Versionsnummer. user@debian:~$ dpkg --get-selections | awk '/\011install/ {print $1}' xtrans-dev xutils xutils-dev xview-clients xviewg Die Ausgabe ist prima dazu geeignet, um in einem Skript weiterverarbeitet zu werden. Paketlisten sichern: -------------------- Eine Möglichkeit wäre. Sich eine Liste der aktuell installierten Pakete ausgeben zu lassen user@debian:~$ dpkg --get-selections > paketliste_`date -I`.txt xtrans-dev install xutils install xutils-dev install xview-clients install xviewg install Paketlisten (auf anderem PC) einspielen: ---------------------------------------- und diese auf einem anderen PC mit: user@debian:~$dpkg --set-selections < paketliste_`date -I`.txt;apt-get dselect-upgrade wieder einzulesen. Danach sind auf beiden PCs die gleichen Pakete installiert. Anzahl installierter Pakete: ---------------------------- Die Zahl der installierten Pakete kann man mit user@debian:~$dpkg -l | awk '/^i/ {nlines++} END {print nlines}' zählen (warum auch immer ;-)) Einfacher geht es noch mit: user@debian:~$dpkg -l | grep ^i | wc -l Anmerkung: Wenn man die Pakete die korrekt installiert sind (und z.B. nicht auf hold gesetzt sind) anzeigen lassen will, sollte man ˆi einfach mit ˆii in den angegebenen Befehlen ersetzen. --------------------- Hinweise zur Benutzung des Debian Paketmanagers apt (apt = advanced packaging tool): ------------------------------------------------------------------------------------ 1. Paketlisten aktualisieren apt-get update 2. Paket suchen apt-cache search z.B. apt-cache search zope 3. Details ausgeben apt-cache show z.B. apt-cache show zope 4. Inhalt von Paketen apt-file list apt-file search 5. Aktuellen Status checken Alle installierten Pakete: dpkg -l Paketname finden: dpkg -S 6. Update einer bestehenden Installation 7. Neuinstallation apt-get install z.B. apt-get install zope 8. Eigene .debs erstellen 1. Mein Abeitsverzeichnis ist /root. Ab hier ist alles unterhalb davon. 2. Anlegen einer Verzeichnisstruktur die genau der Struktur ab / bis zum Products Directory entspricht. z.B. usr/lib/...../Products 3. Alle zu installierenden Produktverzeichnisse dort hinein kopieren (aber ohne die *.pyc Files) 4. Erstellen eine .tgz Paketes der gesamten Verzeichnisstruktur. tar -cvpzf produktname-harry-zope2.7.tgz usr/ oder besser ohne .pyc files tar -cvpzf --exclude=*.pyc 5. Erstellen eine .deb Paketes mit dem alien Tool alien -d zope_fh.tgz 6. Der besseren Übersichtlichkeit halber erstellen eines Unterverzeichnisses debs/ 7. Verschieben der entstandenen *.deb Datei(en) nach debs 8. Kontrolldatei anlegen dpkg-scanpackages debs /dev/null | gzip >debs/Packages.gz 9. /etc/apt/source.list erweitern um folgende Zeile deb file:/root debs/ 10. apt-get update usw... ---------------------- Unvollständig installierte Pakete ermitteln: -------------------------------------------- Nicht immer verläuft die Installation oder Deinstallation eines Paketes erfolgreich. Mit der folgenden Anweisung sucht man auf dem System nach nur teilweise Installierten Paketen: dpkg -C Statt der Option -C kann auch --audit verwendet werden. -------------- Inhalt eines Paketes ausgeben: ------------------------------ Wenn man ein Paket in Form einer .deb-Datei vorliegen hat, kann man sich mit der Option -c die enthaltenen Dateien und Verzeichnisse ausgeben lassen. Die Ausgabe kann dann z. B. so aussehen: user@debian:/var/cache/apt/archives$ dpkg -c --------------------------- Aus welchem Paket kommt eine Datei? ----------------------------------- Wenn man wissen möchte, durch welches Paket eine bestimmte Datei auf dem System installiert wurde, hilft eine der Optionen -S oder --search weiter: user@debian:~$ dpkg -S /usr/sbin/ab apache2-utils: /usr/sbin/ab ---------------------- apt-cache apt sucht in der lokalen Paketdatenbank innerhalb der kompletten Paketbeschreibung nach Übereinstimmungen mit dem Suchbegriff (hier ted): user@debian:~$ apt-cache search ted erzeugt eine sehr lange Liste. Es werden auch Einträge angezeigt, die die Zeichenkette "ted" im Paketnamen haben wie zB.: parted, auch wenn sie nichts mit dem Editor ted zu tun haben. Zudem werden alle Pakete aufgelistet die von parted abhängen weil auch diese Informationen durchsucht werden und dann eben auch dort die Zeichenkette "ted" auftaucht. Ebenso werden Programme angezeigt, die die Zeichenkette "ted" in der Paketbeschreibung haben. Also zB: "[...] dieses Paket ist viel toller als parted, weil [...]". Das Ziel ist also, so eine Liste einzuschränken. Mit dem Schalter "--names-only": user@debian:~$ apt-cache search --names-only ted wird nur in der Liste der Paketnamen gesucht. Damit wird die Ergebnisliste oftmals schnell übersichtlich genug, um die gewünschte Information zu bekommen. Falls die Ausgabe die Bildschirm-/Fenstergöße übersteigt, bietet sich an, sie an more oder less` zu übergeben, zu pipen: user@debian:~$ apt-cache search --names-only ted | more \\ <- [[:linux|zurück]]