Linux Paketmanager

Links

RPM-Hölle

Ist eine Paketinstallation oder -deinstallation schief gegangen, kann es passieren, das man dann mit der Installation eines Paketes nicht mehr weiter kommt, da RPM dann beim installieren meint, es sei schon installiert und beim deinstallieren meint, es sei ja gar nicht installiert…

Das nennt man dann RPM-Hölle.

Dieses Problem ist sehr unangenehm, kann aber recht einfach gelöst werden.

Bei RedHat/Fedora geht das so:

# killall -9 rpm
# rm -f /var/lib/rpm/__db.*
# rpm --rebuilddb

Debian/Ubuntu

aufräumen

# dpkg --configure -a
# apt-get check
# apt-get -f install
# apt-get autoremove

URL-Liste der benötigten Pakete

Dieser Befehl liefert eine URL für alle zu installierenden Pakete.

In diesem Fall, um „gnome“ zu installieren:

# apt-get -q -y --print-uris install gnome | grep ^\' | awk '{print $1}' | tr -d "'" > wget.list

DEB-Hölle

Leider gibt es unter Debian und Ubuntu auch diesen leidigen Zustand, der im RPM-Paketsystem berüchtigt ist.

Aber viel schlimmer ist die Tatsache, dass es hier nicht so leicht repariert werden kann. :-(

Unter der URL http://ubuntuforums.org/showthread.php?t=474587 wird ein Script vorgestellt, mit dem man sich seine Paket-Datenbank, oder wie man es unter Debian nennen will, neu generieren kann.

Leider kann das Script die Datei /var/lib/dpkg/status nicht in vollem Umfang neu generieren, es fehlen die „Confiles“-Felder und ausserdem hat jedes Paket den Status „installed“, auch die deinstallierten Pakete!

#!/bin/bash
get_control_info ()
{
      for i in /var/lib/apt/lists/*_Packages
      do
              sed '/Package: '"$1"'$/,/^$/!d' $i
      done
}
for i in /var/lib/dpkg/info/*.list
do
      package_name=`basename $i | sed 's/.list$//'`
      get_control_info $package_name >> status-new
done
sed -i -e '/^Filename: .*/d' -e '/^MD5sum:/d' -e '/^SHA1:/d' -e '/^SHA256:/d' status-new
sed -i '/^Package: /a\Status: install ok installed' status-new

Das Feld „Confiles“ muss man aus der alten Datei von Hand rekonstruieren, ebenso wie der Status bei deinstallierten Paketen.

Proxy konfigurieren

Fedora (RedHat/CentOS 5.x)

vi /etc/yum.conf
      proxy=http://192.168.1.1:3128

Nicht in Anführungszeichen setzen!

Debian (Ubuntu)

vi /etc/apt/apt.conf
      Acquire::http::Proxy "http://192.168.1.1:3128";

Paketmanager bedienen

PKG_Cache aktuallisieren

  • Fedora (RedHat/CentOS 5.x)
# yum clean all
# yum makecache
  • Debian
# apt-get update
# aptitude update

Pakete aktuallisieren

  • Fedora (RedHat/CentOS 5.x)
# yum safe-upgrade
  • Debian
# apt-get safe-upgrade
# aptitude safe-upgrade

Pakete installieren

  • Fedora (RedHat/CentOS 5.x)
# yum install elinks
  • Debian
# apt-get install links
# aptitude install links

Paket suchen

  • Fedora (RedHat/CentOS 5.x)
# yum search elinks
  • Debian
aptitude search links

Paket entfernen

  • Fedora (RedHat/CentOS 5.x)
# yum remove elinks
  • Debian
# aptitude remove links

Paket mit seinen Konfigurationsdateien entfernen

  • Fedora
<gibts in dieser Form nicht>
  • Debian
# aptitude purge links
# aptitude remove links_

Entweder „purge“ oder mit dem normalen „remove“ aber mit einem „_“ hinten an den Paketnamen angehängt.

installierte Pakete anzeigen

  • Fedora
# rpm -qa
  • Debian
# dpkg -l

installierte Dateien eines Paketes anzeigen

  • Fedora (RedHat/CentOS 5.x)
# yum provides links
# rpm -ql elinks
  • Debian
# dpkg -L links

Paket zeigen welches eine bestimmte Datei installierte

  • Fedora
# rpm -qf /usr/bin/links
  • Debian
# dpkg -S /usr/bin/links

lokale Datei installieren

  • Fedora
# rpm -Uhv paket.rpm
  • Debian
# dpkg -i paket.deb

installiertes Paket neu konfigurieren

  • Fedora
<gibts nicht in dieser Form>
  • Debian
# dpkg-reconfigure krb5-config

Abhängigkeiten zu einem Paket ermitteln

Fedora
<das geht, aber frag mich nicht wie; das brauchte ich noch nie>
  • Debian
# apt-cache depends -i mc

veraltete Pakete aus dem Paket-Cache entfernen

  • Debian
# aptitude update
# aptitude autoclean
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki