Vollbildmodus: Seiteninhalt ohne Menus

Software installieren über Paketmanager

Der Paketmanager verwaltet die installierten Softwarepakete (=Software in einem Paketformat) und kümmert sich auch um die Aktualisierung. Debian und darauf basierende Distributionen verwenden Software-pakete im deb-Format, andere Distributionen verwenden rpm-Pakete.

Paketmanageroberflächen

  • apt (Debian, (K)ubuntu): ap-get install PAKETNAME (CLI, deb): auf Ubuntu, Debian
  • aptitude (CLI oder grafisch, deb): Unter Debian GNU/Linux ist aptitude inzwischen die bevorzugte Installationsmethode, da es bei manchen Paketen die Abhänggkeiten besser auflöst und beim Entfernen sämtliche Abhängigkeiten berücksichtigt.
  • emerge und tools aus gentoolkit (equery, euse, revdep-rebuild, eread) (bei Gentoo)
  • synaptic / adept (grafisch, deb): auf Ubuntu
  • URPMI (CLI, rpm)
  • yast (grafisch) oder yast -i PAKETNAME auf Suse
  • yum (Suse, Redhat, Fedora, …): yum install PAKETNAME (CLI, rpm)
  • zypper (CLI, rpm): vorrangig auf OpenSuse benutzt

CLI = Command Line ⇒ Komandozeile

andere: SmartPM (Beta-software)

Syntaxvergleich: Debian (dpkg, apt, aptitude) , Redhat (rpm) und Gentoo

tasksel - Kategorienkonfiguration (Webserver, MailServer, Desktop, …)

:!: Besser lesbar in der HTML-Ansicht

Debian (dpkg) Debian (apt) Debian (aptitude) Redhat (rpm) Gentoo (portage + equery, emerge, revdep-rebuild aus dem gentoolkit 1) ) Zypper (OpenSuse) Erklärung
Informationen
dpkg -l oder dpkg --getselections2) ? ? yum list installed oder rpm -qa emerge -ep world rpm -qa installierte Pakete anschauen
dpkg -s PaketName apt-cache show PaketName aptitude show PaketName yum info oder rpm -qi PaketName ? zypper info PaketName Informationen über „PaketName“ anzeigen
dpkg -S Dateiname ? ? rpm -qf Dateiname equery belongs Dateiname rpm -qf Dateiname Paket zu einer vorhandenen Datei suchen
dpkg -L PaketName ? ? rpm -ql PaketName equery files PaketName rpm -ql PaketName Dateien von Paket „PaketName“ auflisten
für installierte Pakete: dpkg -l | grep PaketName apt-cache search PaketName aptitude search yum search emerge -s PaketName zypper search PaketName 3) im Paket-Cache nach Paketname suchen
apt-cache depends PaketName ? zeigt Informationen zu den Abhängigkeiten eines Pakets an
? apt-setup ? ? ? ? Quellenkonfiguration grafisch (Debian: /etc/apt/sources.list)
apt-get -qq install PaketName bzw. aptitude -y install PaketName Nachfragen von debconf müssen mit “export DEBIAN_FRONTEND=noninteractive“ abgestellt werden, zusätzlich können die Einträge force-confold (alte Konfiguration bevorzugen) bzw. force-confnew (neue Konfiguration bevorzugen) und force-confdef (Standard-aktion) in der /etc/dpkg/dpkg.cfg eingetragen werden und damit jegliche Nachfrage unterdrücken ? ? ? Automatische Installation ohne interaktive Nachfragen
Aktionen
? apt-get install PaketName aptitude install PaketName yum install emerge PaketName ? Paket „PaketName“ installieren
? apt-get -d install PaketName ? ? ? ? Paket „PaketName“ nur downloaden
? apt-get source PaketName ? ? emerge --fetchonly PaketName ? Sourcecode des Paketes „PaketName“ holen
- apt-get -s update aptitude -s update yum list updates emerge --sync zypper list-updates 4) Liste verfügbarer Updates holen/Liste aktualisieren
? apt-get upgrade aptitude safe-upgrade 5) yum update emerge --update --deep world 6)7) zypper up alle Pakete updaten
apt-get upgrade PaketName ? ? emerge PaketName (Sicherheits-)Updates: zypper patch 8) Paket „PaketName“ updaten
- apt-get dist-upgrade aptitude dist-upgrade ? - (permanente Updates) Zunächst zypper updatenzypper in zypper libzypp && zypper dup Gesamte Distribution updaten (Paketquellen müssen auf die neue Version angepasst werden!)
dpkg --no-act 9) apt-get -s … aptitude -s … ? emerge -p … zypper -D … Befehl simulieren
? apt-get check ? ? ? ? Installation überprüfen
dpkg -i Dateiname.deb 10) apt-get install PaketName aptitude install PaketName yum install Paketname oder yum localinstall Dateiname.rpm 11) oder rpm -i Dateiname.rpm emerge Paketname zypper install Paketname 12) oder rpm -i Dateiname.rpm 13) Paket „PaketName“ installieren
dpkg -r PaketName apt-get remove PaketName aptitude remove PaketName rpm -e PaketName emerge --unmerge PaketName14) zypper remove Paketname15) Paket „PaketName“ deinstallieren (Konfigurationsdateien bleiben)
dpkg --purge PaketName ? aptitude purge PaketName yum remove 16) ? zypper remove 17) Paket mit Konfigurationsdateien deinstallieren
dpkg-reconfigure PAKET ? ? ? ? ? Ein PAKET neu konfigurieren (Debian: mit debconf)
Paketquellen
- ? ? ? ? zypper addrepo Speicherort Alias 18) Paketquelle (Repository) hinzufügen
- ? ? ? ? zypper removerepo Alias 19) Paketquelle (Repository) löschen
- ? ? ? mirrorselect FIXME ? Debian: nächsten/besten Mirror-Server auswählen
- Datei /etc/apt/sources.list sichern ? ? zypper repos -e Dateiname.repo Liste der Paketquellen exportieren
- Datei /etc/apt/sources.list editieren ? ? zypper ar Dateiname.repo Liste der Paketquellen importieren
Sonderfunktionen
- Debian: Paket „PaketName“ aus dem testing-Zweig installieren: apt-get -t testing PaketName ? ? Gentoo: „hard masked“-Pakete müssen manuell ausgewählt werden ?
Ablageorte wichtiger Dateien
/var/lib/dpkg/available werden die Paketinformationen aller zur Verfügung stehender (installierbarer) Pakete; /var/lib/dpkg/status Informationen über den Status der Installation abgelegt; /var/lib/dpkg/info liegen zu jedem installierten Paket die vier Scripte (*.preinst, *.postinst, *.prerm, *.postrm), eine Liste aller enthaltener Dateien (*.list), die md5-Prüfsummendatei (*.md5sums) und evt. noch andere Informationen wie die zur Verfügung gestellten Libraries (*.shlibs). 20)

RPM-Paketformat

Rpm-Pakete werden von den meisten Distributionen verwendet und sind vor Debians deb-Paketen das meist benutzte Paketformat.

Links zu RPM

DEB-Paketformat

APT

Das Installations- und Konfigurationsprogramm APT (Advanced Package Tool) verspricht höheren Komfort und mehr Übersicht als dselect:

Frei wählbare Quellen für die Installation mit Apt werden unter „/etc/apt/sources.list“ [8] gespeichert. Sowohl eigene Laufwerke als auch FTP- oder HTTP-Server sind als Quellangaben möglich. Durch das Kommando „apt-cdrom add“ werden automatisch Einträge für die Installation von CD-ROM erzeugt.

siehe auch:

Mit „tasksel“ existiert ein semi-grafisches Installationswerkzeug, um Paketgruppen zu installieren. So kann man beispielsweise KDE (K Desktop Environment), German (deutsche Sprachanpassungen) oder C-Development (Entwicklungswerkzeuge für C-Programmierung) auswählen. Über die Abhängigkeiten der gewählten „Tasks“ (Aufgaben) werden dann sämtliche zum Task gehörenden Einzelpakete installiert.

Auch existieren mit aptitude, console-apt und gnome-apt Frontends zur Bedienung von APT. Unter Ubuntu gibt es synaptic oder adept.

Apt-get, Sources & Mirrors

  • Auf der Festplatte speichert apt (z.B. manuell installierte Dateien) in /var/cache/apt/archives/ zwischen.

Proxy einstellen

Alternativ zum systemweiten Einstellen eines Proxy kann man auch apt direkt konfigurieren. Dazu müssen in /etc/apt/apt.conf oder in eine Datei in /etc/apt/apt.conf.d/ (/etc/apt/apt.conf.d/custom bietet sich beispielsweise an) folgende Zeilen eingefügt werden:

Aquire http::Proxy::http://[[user][:pass]@]host[:port]/

Apt-Proxies

Problembehebung

  • Wenn apt und aptitude nur noch „Segmentation fault“ bei Paketaktionen (upgrade, install, …) ausgibt (Meldung wird zu Segmentation faulty Tree): Löschen der Dateien /var/cache/apt/pkgcache.bin und /var/cache/apt/srcpkgcache.bin.
  • debconf: DbDriver “config”: /var/cache/debconf/config.dat is locked by another process
    • mögliche Ursache: Bei einer Installation (z. B. einer Nachfrage) wurde die SSH-Verbindung unterbrochen
    • Lösung:
      1. Der Prozess der /var/cache/debconf/config.dat 21)noch gesperrt hält muss beendet werden:
        fuser -v /var/cache/debconf/config.dat

        Die Ausgabe

                             USER        PID ACCESS COMMAND
        /var/cache/debconf/config.dat:
                             root       4144 f.... dpkg-preconfigu

        zeigt dass der Prozess mit der PID „4144“ die Datei gesperrt hält. Deshalb muss dieser beendet werden:

        kill -9 4144
      2. Anschließend muss die lock-Datei von dpkg gelöscht werden:
        rm -R /var/lib/dpkg/lock

Zusatzprogramme

  • debforster: Es schaut sich die „obersten“ Pakete im Abhängigkeitsbaum an und fragt jeweils, ob es diese entfernen soll. (z.B. alle Gnome-programme)
  • deborphan ist ein Programm, das auf einem Debian-System nach verwaisten Paketen sucht.
  • packagesearch GUI für debtags (Tags für Pakete) und deborphan, leider bei feisty dank diesem Bug nicht benutzbar. Sieht aber nützlich aus.

dselect

Ein betagtes, aber mächtiges Werkzeug für die Paketverwaltung ist dselect. Es kann Abhängigkeiten auflösen und Pakete unter anderem via FTP oder NFS, per Diskette und natürlich von CD-ROM installieren. Die Bedienung und Benutzerfreundlichkeit von dselect ist zwar nicht unumstritten, aber wer die Bildschirm-Ausgaben und die Online-Hilfe liest, bekommt mit dselect ein mächtiges Tool zur Paketverwaltung.

Debian Packete von einem Rechner 1:1 übernehmen

http://dugfaq.sylence.net/dug-faq.htm/ch-packet.htm

8.13 Kann ich die Paketauswahl eines Rechners sichern und 1:1 auf einen anderen übernehmen?

Ja, mit dpkg –get-selections „*“ > packetlist wird die Paketliste in der Datei packetlist gespeichert. „*“ ist nötig, damit auch die Informationen über deinstallierte Pakete mit ausgegeben werden. Diese Liste kannst Du dann mit dem Befehl dpkg –set-selections < packetlist auf ein anderes System übertragen. Anschliessend musst Du noch dselect install ausführen.

Repository anlegen

Gerade wenn man

  1. selbst viele Rechner zu Verwalten hat
  2. und/oder man Bandbreite sparen will (Überlastung wegen der Paralleldownloads der Clients bei großen Updates)
  3. selbst Programmier ist und eigene Pakete anbieten möchte

wird man sich ein Paketrepository (übersetzt in etwa „Paketlager“) erstellen. Dieses hält die Pakete vor und dient als Paketquelle für die Clients. Dazu braucht man je nach Einsatzzweck viel oder wenig Platz auf der Festplatte und einen laufenden http oder ftp-Server.

Zur Erstellung kann man die Programme

  • debarchiver oder
  • reprepro

benutzten.

Konvertierung der Paketformate mit alien

Mit dem Programm alien kann man zwischen den Paketformaten konvertieren. Als Quellen und Ziele sind

  • rpm
  • deb
  • slp (Stampede)
  • tgz (Slackware)
  • und pkg (Solaris)

möglich.

Pakete erstellen

Mit checkinstall kann man aus dem Quellcode Softwarepakete im deb, rpm oder slackware-Format bauen. Da dies aber nur für die entsprechende Plattform geht, kann man für andere Plattformen den Suse Build Service nutzen.

rpm

deb-Pakete erstellen

1) emerge gentoolkit
2) dpkg -l | grep ii listet nur die tatsächlich installierten Paket (ohne entfernte Pakete deren Konfiguration noch da ist) auf
3) Kurzform se; zusätzlich in den Paketbeschreibungen suchen: -d; mehrere Begriffe werden mit ODER verknüpft; Eingrenzung auf installierte (-i) oder nichtinstallierte Pakete (-u) möglich
4) Kurzform: lu; Bei neuen Paketquellen: zypper refresh
5) „aptitude upgrade“ ist veraltet
6) nur explizit installierte: emerge --update --ask world
7) --newuse muss bei veränderten USE-Flags angegeben werden
8) Patche auflisten: zypper lp
9) muss als erste Option stehen!
10) , 11) , 13) muss lokal vorhanden sein
12) Kurzform „in“ möglich
14) Abhängigkeiten werden nicht beachtet! Quelle
15) Kurzform „rm“ möglich
16) , 17) vollständige Bereinigung der Konguration nur manuell:
for package in package1 package2 package3
do
  echo "removing config files for $package"
  for file in $(rpm -q --configfiles $package)
  do
    echo "  removing $file"
    rm -f $file
  done
  rpm -e $package
done
18) Kurzform: ar; Speicherort kann z. B. ein lokales Verzeichnis oder eine URL sein
19) Kurzform: rr; anstatt Alias geht auch die Nummer des Repositories die mit zypper lr angezeigt wird
21) mittels der Funktion flock()
 
linux/paketmanager.txt · Zuletzt geändert: 2011/10/09 16:22 von st
 
Backlinks: [[linux:paketmanager]]