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.pdfhttps://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 <name>
    z.B. apt-cache search zope
 3. Details ausgeben
    apt-cache show <name>
    z.B. apt-cache show zope
 4. Inhalt von Paketen
    apt-file list <paketname>
    apt-file search <dateiname>
 5. Aktuellen Status checken
    Alle installierten Pakete: dpkg -l
    Paketname finden: dpkg -S <dateiname>
 6. Update einer bestehenden Installation
 7. Neuinstallation
    apt-get install <name>
    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 <name.tgz> <absoluter/pfad/> --exclude=<absoluter/pfad/>*.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


zurück