Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:paketverwaltung

Dies ist eine alte Version des Dokuments!


Paketverwaltung

Bei der Paketverwaltung kann man zwei Sorten von Programmen unterscheiden: die Tools zur lokalen Paketverwaltung und die Repository-Tools.

lokale Paketverwaltung

dpkg und rpm

Funktion Debian und UbuntuRedHat, Fedora und SuSE 1)
Anzeigen welche Pakete installiert sind:
dpkg -l 
COLUMNS=150 dpkg -l 
rpm -qa
Anzeigen zu welchem Paket eine Datei gehoert:
dpkg -S /usr/share/yelp/toc.xml 
rpm -qf /verzeichnis/datei
Beschreibung zu einem Paket anzeigen:
dpkg -s yelp
rpm -qi paket
Anzeigen welche Dateien zu einem Paket gehoeren:
dpkg -L yelp
rpm -ql paket
Paket installieren 2):
dpkg -i xskat_4.0-1_i386.deb
rpm -i datei.rpm
Paket loeschen: 3)
dpkg --remove paket
dpkg --purge paket
rpm -e <paket>
Pakete nach Groesse sortiert ausgeben:
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n
rpm -qa --queryformat '%{SIZE} %{NAME}\n' | sort -n
Geaenderte Dateien suchen
debsums -e <paket>
rpm -V <paket>
Geänderte Konfigurationsdateien suchen
debsums -ec
rpm -qac --dump | perl -naF'\s+' -e 'print $F[0], $/ if -f $F[0] and not -l $F[0] and (split /\s+/, `md5sum $F[0]`)[0] ne $F[3]'
Zuletzt installierte Pakete anzeigen:
less /var/log/dpkg.log
rpm -qa --last | tac
Datenverzeichnis für Dienst finden:
dpkg -S var/ | grep apache

Repository basierte Paketverwaltung

apt und yum

FunktionDebian, SuSE4), Fedora Fedora, RedHat, SuSE5)
Repositories einbinden
apt-setup

/etc/apt/sources.list

/etc/yum.repos.d/*.repo
Repository-Daten aktualisieren
aptitude update
yum check-update
Updates einspielen
aptitude safe-upgrade
yum update
Nach Paketen suchen
aptitude search suchwort
apt-cache search suchwort
yum search suchwort
yum list | grep paketname
Beschreibung zu einem Paket anzeigen:
aptitude show paketname
yum info paketname
Paket installieren
aptitude install paketname
yum install paketname
Paket entfernen
aptitude remove paketname
aptitude purge paketname
yum remove paketname
Datei aus noch nicht installiertem Paket suchen
apt-file update; apt-file search

Dokumentation der Distributoren

yast, y2pmsh, rug und zypper

YaST, y2pmsh, rug und zypper sind nur für SuSE verfügbar.

Funktion y2pmsh ( SuSE 9.2 bis 10.1 / SLES 9 & 10 ) 6) rug ( SuSE 10.1 bis 10.2 / SLES 10 ) zypper ( ab SuSE 10.2)
Repositories einbinden
y2pmsh source --add http://suse/i386/update/10.1

oder

y2pmsh source -a http://suse/i386/update/10.1
rug service-add -t zypp http://suse/i386/update/10.1 

oder

rug sa -t zypp http://suse/i386/update/10.1 
zypper service-add http://suse/i386/update/10.3

oder

zypper service-add http://suse/i386/update/10.3
Repository-Daten aktualisieren
rug refresh
zypper refresh
Updates einspielen
y2pmsh upgrade
y2pmsh commit
rug update
zypper update
Nach Paketen suchen
y2pmsh search suchwort
rug search suchwort
zypper search suchwort
Paketbeschreibung anzeigen:
y2pmsh show paketname
rug info paketname
zypper info paketname
Paket installieren
y2pmsh isc paketname

oder

y2pmsh install paketname
y2pmsh solve
y2pmsh commit
rug install paketname
zypper install paketname
Paket entfernen
y2pmsh remove paketname
y2pmsh solve
y2pmsh commit
rug remove paketname
zypper remove paketname
Datei aus noch nicht installiertem Paket suchen (ungetestet)7)
 webpin

Die Paketverwaltung von YaST baut bis SuSE 10.0 / SLES 9 auf dem Programm y2pmsh auf, daß man hier auch an Stelle von yast benutzen kann. y2pmsh hat auch einen interaktiven Modus: einfach starten, und die oben angegebenen Befehle funktionieren incl. Tab-Completion

y2pmsh/YaST/rug/zypper bietet die Möglichkeit verschiedene Repositories einzubinden. Eine Liste verfügbarer Repositories findet sich hier: http://www.opensuse.org/Additional_YaST_Package_Repositories

Hier ist beschrieben, wie man ein lokales Repository für YaST erstellt: http://en.opensuse.org/Network_Installation_Source

Zusätzliche Repositories

Debian

Ubuntu

RedHat / Centos / Scientific Linux

openSuSE

Vermischtes

debconf

debconf ist nur für debian und ubuntu verfügbar

Anzeigen, welche Einstellungen bei der Installation des Paketes exim4-config vorgenommen wurden:

debconf-show exim4-config

Nur die mit * gekennzeichneten Einträge sind vom Benutzer erfragt worden.

Man kann die von debconf gestellten Fragen vorab mit dem dem Befehl debconf-set-selections beantworten:

debconf-set-selections <<DEBCONF
# Other destinations for which mail is accepted:
exim4-config exim4/dc_other_hostnames string notebook01.linuxhotel.de
# General type of mail configuration:
exim4-config exim4/dc_eximconfig_configtype select local delivery only; not on a network
# Root and postmaster mail recipient:
exim4-config exim4/dc_postmaster string
# System mail name:
exim4-config exim4/mailname string notebook01.linuxhotel.de
# Split configuration into small files?
exim4-config exim4/use_split_config boolean false
# IP-addresses to listen on for incoming SMTP connections:
exim4-config exim4/dc_local_interfaces string 127.0.0.1
DEBCONF

Der Befehl debconf-get-selections aus dem Paket debconf-utils erzeugt eine Ausgabe, die man leicht als Eingabe für den Befehlt debconf-set-selections verwenden kann:

debconf-get-selections | grep -B 1 ^exim4-config

Achtung: die Ausgabe von debconf-get-selections enthält ein Tabulatorzeichen zwischen den 4 Feldern, daß in Terminals uU. als mehrere Leerzeichen dargestellt wird. Die Eingabe von debconf-set-selections darf aber immer nur genau 1 Whitespace-Zeichen enthalten.

Debian Versionen mischen

Secure Apt

Schlüssel über Paket beziehen

Für Debian gültige Schlüssel finden sich im Paket debian-archive-keyring und können nachträglich mit folgenden Befehlen geladen werden:

aptitude install debian-archive-keyring
apt-key update

Paketliste aktualisieren - sollte jetzt ohne Fehlermeldung klappen:

aptitude update

Schlüssel für das Debian-Archiv finden sich auch unter http://ftp-master.debian.org/

Schlüssel über Datei beziehen

Im Fall von debian-volatile ( http://www.debian.org/volatile ) gibt es kein Paket, sondern man muß den Schlüssel von Hand runterladen und dann importieren:

wget http://www.debian.org/volatile/etch-volatile.asc
apt-key add etch-volatile.asc
apt-key update

Nachschauen obs geklappt hat:

apt-key list

Paketliste aktualisieren - sollte jetzt ohne Fehlermeldung klappen:

aptitude update

Schlüssel über Key-Server beziehen

Im Fall von anderen Quellen die nur die PGP Signatur veröffentlichen gilt folgendes Verfahren:

gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys DB90D8FC306B6783
gpg --armor --export DB90D8FC306B6783 | apt-key add -

aptitude

Unter debian steht neben apt-get auch den Befehl aptitude.

Was ich persönlich nicht mag: aptitude installiert automatisch empfohlene Pakete mit. Das kann man aber mit der Option -R oder folgender Konfiguration ändern: /etc/apt/apt.conf:

aptitude::Recommends-Important "false";

oder im Menu Aptitude/Options/Dependency Handling/ [X] Install Recommended Packages automatically ⇒ abwählen

beschleunigen

yum

ruft man yum mit der Option -C auf, werden die Paket-Caches diesmal nicht aktuallisiert.

rpm

Defragmentieren der RPM-Datenbank:

rpm --rebuilddb

zypper

SQLite-Datenbanken lassen sich mit dem VACUUM-Kommando aufräumen:

sqlite3 /var/cache/zypp/zypp.db vacuum

Links

bash_completion

Pakete:

bash_completion ( SuSE )

bash ( Debian )

Hilfreich beim Eingeben der Befehle, Optionen und Paketnamen

Aktivieren über den Befehl:

. /etc/bash_completion

Einzelne Dateien aus einem .rpm-Paket rausfischen

Anzeigen welche Dateien drin sind: 8)

rpm2cpio nxclient-1.5.0-113.i386.rpm | cpio -i -t

Datei extrahieren:

rpm2cpio nxclient-1.5.0-113.i386.rpm | cpio -id ./usr/NX/share/keys/server.id_dsa.key

Dateien aus einem .deb-Paket rausfischen

Alle Dateien aus einem Paket ins aktuelle Verzeichnis kopieren

dpkg-deb --vextract /var/cache/apt/archives/xen-utils-common_3.0.3-0-2_all.deb .

rug nicht-interaktiv

Wie kann ich rug in Skripten laufen lassen? Keine Ahnung, aber SuSE selbst ruft rug bei der Installation wie folgt auf:

TERM=dumb rug ...

Quellpakete

Quellpakete installieren

wget http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0pre7try2.tar.bz2
tar xjf MPlayer-1.0pre7try2.tar.bz2
cd MPlayer-1.0pre7try2
./configure

Fehlermeldungen beachten und fehlende Pakete ( enthalten meist „lib“ und „devel“ im Namen ) nachinstallieren.

make

Wenn make erfolgreich durchgelaufen ist, dann als Benutzer root

make install

oder

checkinstall

ausführen.

rpm Pakete aus Source-RPMs bauen

getestet unter CentOS 5.2

Als root:

yum install rpm-build autoconf automake libselinux-devel libacl-devel

Als Nutzer:

mkdir -p $HOME/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
rpm -ihv http://wftp.tu-chemnitz.de/pub/linux/centos/5.2/os/SRPMS/tar-1.15.1-23.0.1.el5.src.rpm
cd rpm/SPECS
rpmbuild -ba tar.spec

Links

deb Pakete aus Source-DEBs bauen

Als root:

apt-get install fakeroot 
apt-get build-dep tar

Als Nutzer:

apt-get source tar
cd tar-1.14
dpkg-buildpackage -rfakeroot -uc -b
1)
OK, rpm ist auch für debian verfügbar, aber sollte da nur in besonderen Fällen eingesetzt werden
2)
das macht man normalerweise mit 'apt-get', 'yum' oder 'yast'
3)
auch das geht mit 'apt-get'
4) , 5)
Seit SuSE 10.0 zusätzlich installierbar
6)
nicht offiziell unterstützt - aber brauchbar
8)
mehr zu cpio
admin_grundlagen/paketverwaltung.1304590076.txt.gz · Zuletzt geändert: 2011/06/21 14:39 (Externe Bearbeitung)