Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:paketverwaltung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

admin_grundlagen:paketverwaltung [2012/07/03 14:47]
ingo_wichmann
admin_grundlagen:paketverwaltung [2024/01/19 09:52]
Zeile 1: Zeile 1:
-====== 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 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 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 (( das macht man normalerweise mit '​apt-get',​ '​yum'​ oder '​yast'​ )): | 
-  dpkg -i xskat_4.0-1_i386.deb 
-| 
-  rpm -i datei.rpm 
-| 
-|Paket loeschen: (( auch das geht mit '​apt-get'​ )) | 
-  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 
- 
-keine einfache Lösung (( 
-  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 | less 
-| 
-  rpm -qa --last | tac 
-| 
-| Datenverzeichnis für Dienst finden: | 
-  dpkg -S var/ | grep apache 
-| 
-| 
- 
-=== Abhängigkeiten === 
-Welche Eigenschaften benötigt das Paket //​cups-libs//​ 
-  rpm -q --requires cups 
-Welche Eigenschaften stellt das Paket //​cups-libs//​ anderen Paketen zur Verfügung 
-  rpm -q --provides paket 
-Welches Paket benötigt die Eigenschaft //​libcups.so.2//​ 
-  rpm -q --whatrequires libcups.so.2 
-Welches Paket stellt die Eigenschaft //​libcups.so.2//​ zur Verfügung 
-  rpm -q --whatprovides libcups.so.2 
- 
-===== Repository basierte Paketverwaltung ===== 
-==== apt und yum ==== 
-|Funktion|Debian,​ SuSE((Seit SuSE 10.0 zusätzlich installierbar )), Fedora | Fedora, RedHat, SuSE((Seit SuSE 10.0 zusätzlich installierbar )) | 
-| 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 
-| 
-|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 ==== 
-[[ 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 ]] 
- 
-==== 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 
-| 
-|Datei aus noch nicht installiertem Paket suchen (ungetestet)((alternativ , http://​packages.opensuse-community.org/​))| 
-   ​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 === 
-  * 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]] 
- 
-===== 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:​ 
-<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.//​ 
- 
-==== Debian Versionen mischen ==== 
-http://​jaqque.sbih.org/​kplug/​apt-pinning.html 
- 
- 
-==== 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 - 
- 
-=== Links === 
-  * http://​wiki.debian.org/​SecureApt 
- 
- 
-==== 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'':​ 
-<​file>​ 
-aptitude::​Recommends-Important "​false";​ 
-</​file>​ 
- 
-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 === 
-  * [[ http://​de.opensuse.org/​SDB:​Paketverwaltungsstapelspeicher_beschleunigen#​Extern_defragmentieren | Tips zu rpm und zypper ]] 
- 
-==== 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: ((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 
- 
-==== 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 === 
-   * [[ 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 
  
admin_grundlagen/paketverwaltung.txt · Zuletzt geändert: 2024/01/19 09:52 (Externe Bearbeitung)