Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:paketverwaltung

Dies ist eine alte Version des Dokuments!


lokale Paketverwaltung

dpkg und rpm

Funktion Debian und Ubuntu RedHat, Fedora und SuSE 1)
Anzeigen welche Pakete installiert sind:
dpkg -l 
COLUMNS=150 dpkg -l 
rpm -qa
Anzeigen zu welchem Paket die Datei /usr/bin/top gehoert:
dpkg -S /usr/bin/top
rpm -qf /usr/bin/top
Beschreibung zum Paket procps anzeigen:
dpkg -s procps
rpm -qi procps
Anzeigen welche Dateien zum Paket procps gehoeren:
dpkg -L procps
rpm -ql procps
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 Größe 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 procps
rpm -V procps
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:
grep 'status installed' /var/log/dpkg.log
rpm -qa --last | tac
Datenverzeichnis für Dienst apache finden:
dpkg -S var/ | grep apache

Abhängigkeiten (rpm)

Von welchen Eigenschaften hängt das Paket cups-libs ab?

rpm -q --requires cups

Welche Eigenschaften stellt das Paket cups-libs anderen Paketen zur Verfügung?

rpm -q --provides paket

Welche Pakete hängen von der Eigenschaft libcups.so.2 ab?

rpm -q --whatrequires libcups.so.2

Welches Paket stellt die Eigenschaft libcups.so.2 zur Verfügung?

rpm -q --whatprovides libcups.so.2

Bei dpkg sind Pakete direkt von anderen Paketen abhängig.

Repository basierte Paketverwaltung

apt, yum und zypper

FunktionDebian RedHat SuSE
Repositories einbinden
apt-setup

/etc/apt/sources.list

/etc/yum.repos.d/*.repo
/etc/zypp/repos.d/*.repo
Repository-Daten aktualisieren
aptitude update
yum check-update
zypper refresh
nach Updates suchen
apt-get -s update
yum check-update
zypper list-updates
Updates einspielen
aptitude safe-upgrade
yum update
zypper update
Nach Paketen suchen
aptitude search suchwort
apt-cache search suchwort
yum search suchwort
yum list | grep paketname
zypper search suchwort
Beschreibung zu einem Paket anzeigen:
aptitude show paketname
yum info paketname
zypper info paketname
Paket installieren
aptitude install paketname
yum install paketname
zypper install paketname
Paket entfernen
aptitude remove paketname
aptitude purge paketname
yum remove paketname
Paket für Datei samba.schema im Repository suchen
apt-file update; apt-file search samba.schema
yum provides */samba.schema

Abhängigkeiten (dpkg und apt)

Von welchen Paketen ist das Paket cups abhängig?

apt-cache depends cups

Welche Pakete sind vom Paket cups abhängig?

apt-cache rdepends cups

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 ) 4) 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

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

Dokumentation

Zusätzliche Repositories

Debian

Ubuntu

RedHat / Centos / Scientific Linux

openSuSE

Debian / Ubuntu

debconf

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.

Repositories mischen

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 .

Lokalen Paketcache ausschalten

In Netzen, in denen ein lokaler Spiegel des Repositories vorhanden ist, ist es nicht notwendig installierte Pakete noch mal auf dem Client zu archivieren:

/etc/apt/apt.conf.d/no-cache :

DPkg::Post-Invoke { "apt-get clean"; };

Paket-Signatur

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 -

Empfohlene Pakete automatisch installieren

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

rpm

Defragmentieren der RPM-Datenbank

rpm --rebuilddb

Links

Einzelne Dateien aus einem .rpm-Paket rausfischen

Anzeigen welche Dateien drin sind: 5)

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

yum beschleunigen

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

mehrere yum Befehle nacheinander, aber nur ein mal Cache aktualisieren:

yum shell

zypper

zypper beschleunigen

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

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

Delta-rpm ausschalten

Delta-RPMs sind nur bei schmaler Netzanbindung sinnvoll, im Intranet bremsen sie die Installation ( und Updates ) aus.

openSuSE 11.3

/etc/zypp/zypp.conf

[main]
download.use_deltarpm = false

bash_completion

Pakete:

bash_completion ( SuSE )

bash ( Debian )

Hilfreich beim Eingeben der Befehle, Optionen und Paketnamen

Aktivieren über den Befehl:

. /etc/bash_completion

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, zypper oder yast
3)
auch das geht mit apt-get, yum, zypper oder yast
4)
nicht offiziell unterstützt - aber brauchbar
5)
mehr zu cpio
admin_grundlagen/paketverwaltung.1341335593.txt.gz · Zuletzt geändert: 2012/07/03 17:13 von ingo_wichmann