Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
admin_grundlagen:paketverwaltung [2012/07/03 16:19] ingo_wichmann [yast, y2pmsh, rug und zypper] |
admin_grundlagen:paketverwaltung [2024/01/19 09:52] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== lokale Paketverwaltung ====== | ||
- | ===== dpkg und rpm ===== | ||
- | ^Funktion ^Debian und Ubuntu ^RedHat, Fedora und SuSE (( OK, rpm ist auch für debian verfügbar, aber sollte da nur in besonderen Fällen eingesetzt werden )) | | ||
- | |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 (( das macht man normalerweise mit //apt-get//, //yum//, //zypper// oder //yast// )): | | ||
- | dpkg -i xskat_4.0-1_i386.deb | ||
- | | | ||
- | rpm -i datei.rpm | ||
- | | | ||
- | |Paket loeschen: (( auch das geht mit //apt-get//, //yum//, //zypper// oder //yast// )) | | ||
- | 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 ===== | ||
- | ^Funktion^Debian ^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 | ||
- | | | ||
- | |Datei aus noch nicht installiertem Paket suchen| | ||
- | apt-file update; apt-file search | ||
- | | | ||
- | yum provides filename | ||
- | | | ||
- | ==== 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 ) (( nicht offiziell unterstützt - aber brauchbar )) | 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 der Distributoren ===== | ||
- | [[ http://docs.fedoraproject.org/yum/en/ | Fedora ]] | ||
- | [[ http://www.debian.org/doc/manuals/apt-howto/index.de.html | Debian ]] | ||
- | [[ http://de.opensuse.org/Paketverwaltung | openSuSE ]] | ||
- | |||
- | ====== Zusätzliche Repositories ====== | ||
- | ===== Debian ===== | ||
- | * http://backports.org - neuere Versionen vieler Pakete für Debian stable | ||
- | * http://debian-multimedia.org/ - Software und Codecs für Multimedia | ||
- | * http://www.dotdeb.org/ - aktueller LAMP Stack ( PHP, Mysql, ... ) | ||
- | |||
- | ===== Ubuntu ===== | ||
- | * http://getdeb.net | ||
- | * http://www.medibuntu.org/ | ||
- | |||
- | ===== RedHat / Centos / Scientific Linux ===== | ||
- | * http://wiki.centos.org/Repositories | ||
- | * http://packages.atrpms.net/name/atrpms-repo | ||
- | |||
- | ===== openSuSE ===== | ||
- | * [[http://dewiki.opensuse.org/Paket_Repositories]] | ||
- | |||
- | ====== 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: | ||
- | <code bash> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | 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 ===== | ||
- | http://jaqque.sbih.org/kplug/apt-pinning.html | ||
- | |||
- | ==== 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'' : | ||
- | <file> | ||
- | DPkg::Post-Invoke { "apt-get clean"; }; | ||
- | </file> | ||
- | |||
- | ===== 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 - | ||
- | |||
- | === Links === | ||
- | * http://wiki.debian.org/SecureApt | ||
- | |||
- | ===== 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'': | ||
- | <file> | ||
- | aptitude::Recommends-Important "false"; | ||
- | </file> | ||
- | |||
- | oder im Menu Aptitude/Options/Dependency Handling/ [X] Install Recommended Packages automatically => abwählen | ||
- | |||
- | ====== rpm ====== | ||
- | ===== Defragmentieren der RPM-Datenbank ===== | ||
- | rpm --rebuilddb | ||
- | |||
- | === Links === | ||
- | * [[ http://de.opensuse.org/SDB:Paketverwaltungsstapelspeicher_beschleunigen#Extern_defragmentieren | Tips zu rpm und zypper ]] | ||
- | |||
- | ===== Einzelne Dateien aus einem .rpm-Paket rausfischen ===== | ||
- | Anzeigen welche Dateien drin sind: ((mehr zu [[cpio]])) | ||
- | 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'' | ||
- | <file> | ||
- | [main] | ||
- | download.use_deltarpm = false | ||
- | </file> | ||
- | |||
- | ===== 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 === | ||
- | * [[ http://www.rpm.org/max-rpm/ | rpm Buch online]] | ||
- | * [[ http://www.rpm.org | rpm Homepage ]] | ||
- | |||
- | ===== 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 | ||