Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:paketverwaltung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:paketverwaltung [2011/06/21 15:49] – [Zusätzliche Repositories] ingo_wichmannadmin_grundlagen:paketverwaltung [2026/09/15 14:23] (aktuell) – [apt, dnf und zypper] ingo_wichmann
Zeile 1: Zeile 1:
-====== Paketverwaltung ====== +====== lokale Paketverwaltung ====== 
-Bei der Paketverwaltung kann man zwei Sorten von Programmen unterscheiden: die Tools zur lokalen Paketverwaltung und die Repository-Tools.  +===== 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 )) |
-===== 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: |  |Anzeigen welche Pakete installiert sind: | 
   dpkg -l    dpkg -l 
Zeile 11: Zeile 8:
   rpm -qa   rpm -qa
 | |
-|Anzeigen zu welchem Paket eine Datei gehoert: |  +|Anzeigen zu welchem Paket die Datei ''/usr/bin/top'' gehoert: |  
-  dpkg -S /usr/share/yelp/toc.xml +  dpkg -S /usr/bin/top
 | |
-  rpm -qf /verzeichnis/datei+  rpm -qf /usr/bin/top
 | |
-|Beschreibung zu einem Paket anzeigen: | +|Beschreibung zum Paket //procps// anzeigen: | 
-  dpkg -s yelp+  dpkg -s procps
 | |
-  rpm -qi paket+  rpm -qi procps
 | |
-|Anzeigen welche Dateien zu einem Paket gehoeren: | +|Anzeigen welche Dateien zum Paket //procps// gehoeren: | 
-  dpkg -L yelp+  dpkg -L procps
 | |
-  rpm -ql paket+  rpm -ql procps
 | |
-|Paket installieren (( das macht man normalerweise mit 'apt-get', 'yum' oder 'yast' )): |+|Paket installieren (( das macht man normalerweise mit //[[#repository_basierte_paketverwaltung|apt]]//, //[[#repository_basierte_paketverwaltung|dnf]]//, //[[#repository_basierte_paketverwaltung|zypper]]// oder //[[#repository_basierte_paketverwaltung|yast]]// )): |
   dpkg -i xskat_4.0-1_i386.deb   dpkg -i xskat_4.0-1_i386.deb
 | |
   rpm -i datei.rpm   rpm -i datei.rpm
 | |
-|Paket loeschen: (( auch das geht mit 'apt-get' )) | +|Paket löschen: (( auch das geht mit //[[#repository_basierte_paketverwaltung|apt]]//, //[[#repository_basierte_paketverwaltung|dnf]]//, //[[#repository_basierte_paketverwaltung|zypper]]// oder //[[#repository_basierte_paketverwaltung|yast]]// )) | 
-  dpkg --remove paket +  dpkg --remove <paket> 
-  dpkg --purge paket+  dpkg --purge <paket>
 | |
   rpm -e <paket>   rpm -e <paket>
 | |
-|Pakete nach Groesse sortiert ausgeben: | + 
-  dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n+^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 )) | 
 +|Pakete nach Größe sortiert ausgeben: | 
 +  dpkg-query -W --showformat='${Installed-Size} \ 
 +  ${Package}\n' | sort -n
 | |
   rpm -qa --queryformat '%{SIZE} %{NAME}\n' | sort -n   rpm -qa --queryformat '%{SIZE} %{NAME}\n' | sort -n
 | |
-|Geaenderte Dateien suchen | +|Geänderte Dateien suchen | 
-  debsums -e <paket>+  debsums -e procps
 | |
-  rpm -V <paket>+  rpm -V procps
 | |
 | Geänderte Konfigurationsdateien suchen | | Geänderte Konfigurationsdateien suchen |
   debsums -ec   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]'+  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]'  
 +| 
 +| Konfigurationsdatei wiederherstellen | 
 +  cd /var/cache/apt/archives/ 
 +  dpkg -i --force-confmiss dokuwiki_0.0.20120125b-2_all.deb
 | |
 | Zuletzt installierte Pakete anzeigen: | | Zuletzt installierte Pakete anzeigen: |
-  grep 'status installed' /var/log/dpkg.log | less+  grep 'status installed' /var/log/dpkg.log
 | |
   rpm -qa --last | tac   rpm -qa --last | tac
 | |
-| Datenverzeichnis für Dienst finden: |+| Datenverzeichnis für Dienst //apache// finden: |
   dpkg -S var/ | grep apache   dpkg -S var/ | grep apache
-| 
 | |
  
-===== Repository basierte Paketverwaltung =====+==== Abhängigkeiten ==== 
 +=== rpm === 
 +Von welchen Eigenschaften hängt das Paket //cups// ab? 
 +  rpm -q --requires cups 
 +Welche Eigenschaften stellt das Paket //systemd// anderen Paketen zur Verfügung? 
 +  rpm -q --provides systemd 
 +Welche Pakete hängen von //cups// ab? 
 +  rpm -q --whatrequires cups 
 +Welches Paket stellt die Eigenschaft //syslog// zur Verfügung? 
 +  rpm -q --whatprovides syslog
  
 +=== 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
  
-==== apt und yum ==== +====== Repository basierte Paketverwaltung ====== 
-|Funktion|Debian, SuSE((Seit SuSE 10.0 zusätzlich installierbar )), Fedora | Fedora, RedHat, SuSE((Seit SuSE 10.0 zusätzlich installierbar )) | +===== apt, dnf und zypper ===== 
-| Repositories einbinden |  +^Funktion^Debian ^RedHat ^SuSE ^ 
-  apt-setup +|Repositories einbinden | ''/etc/apt/sources.list'' \\ ''/etc/apt/sources.list.d/*.list'' |  
-''/etc/apt/sources.list'' | ''/etc/yum.repos.d/*.repo'' |+  dnf config-manager 
 +oder ''/etc/yum.repos.d/*.repo'' | ''/etc/zypp/repos.d/*.repo'' \\ ''zypper addrepo https:/...'' |
 |Repository-Daten aktualisieren| |Repository-Daten aktualisieren|
-  aptitude update+  apt update
 | |
-  yum check-update+  dnf check-update 
 +| 
 +  zypper refresh
 | |
 |Updates einspielen | |Updates einspielen |
-  aptitude safe-upgrade+  apt upgrade
 | |
-  yum update+  dnf upgrade
 | |
-|Nach Paketen suchen| +  zypper update
-  aptitude search suchwort +
-  apt-cache search suchwort+
 | |
-  yum search suchwort +|Distributions upgrade | 
-  yum list | grep paketname+  apt dist-upgrade 
 +Ubuntu: 
 +  do-release-upgrade
 | |
-|Beschreibung zu einem Paket anzeigen:| +  _
-  aptitude show paketname+
 | |
-  yum info paketname +  zypper dup
-| +
-|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| |Nach Paketen suchen|
-  y2pmsh search suchwort+  apt search suchwort
 | |
-  rug search suchwort+  dnf search suchwort 
 +  dnf list | grep paketname
 | |
   zypper search suchwort   zypper search suchwort
 | |
-|Paketbeschreibung anzeigen:| +|Beschreibung zu einem Paket anzeigen:| 
-  y2pmsh show paketname+  apt show paketname
 | |
-  rug info paketname+  dnf info paketname
 | |
   zypper info paketname   zypper info paketname
 | |
 |Paket installieren| |Paket installieren|
-  y2pmsh isc paketname +  apt install paketname
-oder +
-  y2pmsh install paketname +
-  y2pmsh solve +
-  y2pmsh commit+
 | |
-  rug install paketname+  dnf install paketname
 | |
   zypper install paketname   zypper install paketname
 | |
 +|Paket erneut installieren| 
 +  apt-get install --reinstall paketname 
 +  apt reinstall paketname
 +|
 +  dnf reinstall paketname
 +| TODO |
 |Paket entfernen| |Paket entfernen|
-  y2pmsh remove paketname +  apt remove paketname 
-  y2pmsh solve +  apt purge paketname
-  y2pmsh commit+
 | |
-  rug remove paketname+  dnf remove paketname
 | |
   zypper remove paketname   zypper remove paketname
 | |
-|Datei aus noch nicht installiertem Paket suchen (ungetestet)((alternativ , http://packages.opensuse-community.org/))| +|Überflüssige Pakete entfernen| 
-   webpin+  apt autoremove 
 +  apt --purge autoremove 
 +| 
 +  dnf autoremove 
 +| 
 +  :?: 
 +| 
 +|Paket für Datei ''samba.schema'' im Repository suchen| 
 +  apt-file update 
 +  apt-file search samba.schema
 |  | 
 +  dnf provides */samba.schema
 | |
 +  zypper search -d pstree
 +|
 +====== Zusätzliche Repositories ======
 +===== Debian =====
 +==== extrepo ====
 +Docker CE über Extrepo installieren:
 +  apt install extrepo
 +  extrepo search docker
 +  extrepo enable docker-ce
 +  apt update
 +  apt policy docker-ce
 +  apt install docker-ce
  
-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+==== andere Drittanbieter ====
  
-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+Adresse des Repositories zu ''/etc/apt/sources.list.d'' hinzufügen.
  
-Hier ist beschrieben, wie man ein lokales Repository für YaST erstellt: http://en.opensuse.org/Network_Installation_Source+Aus diesem Repository das Paket ''repositoryname-keyring'' installieren, darin sind die Schlüssel enthalten.
  
 +Oder: ''apt-key add dateiname'', fügt die Schlüssel aus ''dateiname'' zum Schlüsselbund hinzu.
  
 +Mit ''apt-key export keyId'' wird ein Schlüssel aus einem bestehenden Schlüsselbund von APT auf stdout exportiert.
  
-==== Zusätzliche Repositories ==== +Mit ''gnupg --export --armor keyId'' wird ein Schlüssel aus einem privaten Schlüsselbund auf stdout exportiert. 
-=== Debian === +====== SLES 15 Moduloperationen ====== 
-  * http://backports.org - neuere Versionen vieler Pakete für Debian stable +Welche Module sind aktiviert? 
-  * http://debian-multimedia.org/ - Software und Codecs für Multimedia +  SUSEConnect -s 
-  * http://www.dotdeb.org/ - aktueller LAMP Stack ( PHP, Mysql, ... )+Suche in allen Modulen 
 +  zypper search-packets <name>
  
-=== Ubuntu === +===== zypper ===== 
-  * http://getdeb.net +Kein wirkliches Äquivalent zu ''autoremove'' 
-  * http://www.medibuntu.org/+  zypper packages --orphaned 
 +  zypper packages --unneeded # wird nicht mehr gebraucht? 
 +   
 +Entfernen inkl. aller Abhängigkeiten 
 +  zypper remove --clean-deps <paket> 
 +====== apt-cacher-ng ====== 
 +Debian-Wiki: https://wiki.debian.org/AptCacherNg
  
-=== RedHat / Centos / Scientific Linux === +== Server Config == 
-  * http://wiki.centos.org/Repositories +  apt install apt-cacher-ng 
-  * http://packages.atrpms.net/name/atrpms-repo+  dpkg-reconfigure apt-cacher-ng -p low
  
-=== openSuSE === +== Client Config == 
-  * [[http://dewiki.opensuse.org/Paket_Repositories]] +<file txt /etc/apt/apt.conf.d/proxy> 
- +Acquire::http { Proxy "http://proxy:3142"; }
-===== 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> </file>
  
-oder im Menu Aptitude/Options/Dependency Handling/ [X]  Install Recommended Packages automatically => abwählen+proxy durch IP oder host ersetzen.
  
-==== beschleunigen ==== +:?: Wo werden die Pakete auf dem Proxy abgelegt :?:\\ 
-=== yum === +:!: Achtung. Funktioniert nur mit den __echten__ URIs, nicht mit http://debian :!:
-ruft man ''yum'' mit der Option ''-C'' auf, werden die Paket-Caches diesmal nicht aktuallisiert.  +
  
-=== rpm === +====== 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 === +===== Einzelne Dateien aus einem .rpm-Paket rausfischen =====
-  * [[ 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]])) Anzeigen welche Dateien drin sind: ((mehr zu [[cpio]]))
   rpm2cpio nxclient-1.5.0-113.i386.rpm | cpio -i -t   rpm2cpio nxclient-1.5.0-113.i386.rpm | cpio -i -t
Zeile 323: Zeile 225:
   rpm2cpio nxclient-1.5.0-113.i386.rpm | cpio -id ./usr/NX/share/keys/server.id_dsa.key   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.1308671387.txt.gz · Zuletzt geändert: 2011/06/21 15:49 von ingo_wichmann