Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:rpm [23.09.2013 16:30. ] – [Informationen über ein installiertes Paket] djangocentos:rpm [20.04.2018 10:38. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== RPM : (An)sammlung nützlicher oft gebrauchte Befehle ======
 +
 +
 +===== GPG-Schlüssel =====
 +==== Importieren eines GPG-Schlüssels ====
 +   # rpm --import <GPG-KEY-FILE>
 +
 +==== Abfrage aller importierten GPG-Schlüssel ====
 +   # rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
 +
 +==== Löschen eines importierten GPG-Schlüssel ====
 +   # rpm -e gpg-pubkey-e42d547b-459f07a4
 +
 +
 +===== Installation =====
 +==== Installation inkl. aller Abhängigkeiten ====
 +   # yum install <RPM-Paket> -y
 +
 +==== lokale Installation ohne PGP-Signaturüberprüfung ====
 +   # yum localinstall --nogpgcheck <RPM-Paket>
 +===== Information =====
 +==== Informationen über ein installiertes Paket ====
 +   # rpm -qi Paketname
 +
 +==== Changelog eines Pakets anzeigen ====
 +Mit Hilfe des Paketes/Programmes **yum-plugin-changelog** kann man sich sehr leicht anzeigen lassen, welche Änderungen bei einem Paket dokumentiert worden sind. Falls noch nicht geschehen, installieren wir das Paket mit Hilfe von **yum**.
 +   # yum install yum-plugin-changelog
 +
 +Der Befehl ist weitgehend selbsterklärend, bei Bedarf greift man einfach auf die zugehörige **manpage** zurück.
 +   # man yum-changelog
 +
 +Im folgenden Beispiel fragen wir nach dem aktuellen Changelog, also z.B. aus dem Jahr 2013, des Paketes rsyslog.
 +   # yum changelog 2013-01 rsyslog*
 +<code>Loaded plugins: changelog, fastestmirror, security
 +Repository base-LC is listed more than once in the configuration
 +Repository updates-LC is listed more than once in the configuration
 +Repository extras-LC is listed more than once in the configuration
 +Repository centosplus-LC is listed more than once in the configuration
 +Loading mirror speeds from cached hostfile
 +
 +Listing changelogs since 2013-01-23
 +
 +==================== Installed Packages ====================
 +rsyslog-5.8.10-7.el6_4.x86_64            installed
 +* Mon Aug 26 14:00:00 2013 Tomas Heinrich <theinric@redhat.com> 5.8.10-7
 +- drop patch 5 which introduced a regression
 +  resolves: #996826
 +  reverts: #847568
 +
 +changelog stats. 7 pkgs, 1 source pkg, 1 changelog
 +</code>
 +Auch beim [[centos:rpm?&#anzeige_des_changelogs_vor_einem_update|Update]] eines Paketes, können wir uns die Änderungen vor der Aktualisierung ansehen. Hierzu verwenden wir die Option //--changelog// beim Aufruf von **yum**.
 +
 +   # yum update --changelog
 +==== Abhängigkeiten eines Paketes anzeigen ====
 +Die abhängigkeiten eines Paketes fragen wir wie folgt ab:
 +   # rpm -q --requires $Paketname
 +
 +Beispiel:
 +   # rpm -q --requires gnupg
 +<code>/bin/sh
 +/bin/sh
 +/bin/sh
 +/sbin/install-info
 +libbz2.so.1()(64bit)
 +libc.so.6()(64bit)
 +libc.so.6(GLIBC_2.14)(64bit)
 +libc.so.6(GLIBC_2.15)(64bit)
 +libc.so.6(GLIBC_2.2.5)(64bit)
 +libc.so.6(GLIBC_2.3)(64bit)
 +libc.so.6(GLIBC_2.3.3)(64bit)
 +libc.so.6(GLIBC_2.3.4)(64bit)
 +libc.so.6(GLIBC_2.4)(64bit)
 +libcurl.so.4()(64bit)
 +libdl.so.2()(64bit)
 +libdl.so.2(GLIBC_2.2.5)(64bit)
 +libldap-2.4.so.2()(64bit)
 +libreadline.so.6()(64bit)
 +libresolv.so.2()(64bit)
 +libresolv.so.2(GLIBC_2.2.5)(64bit)
 +libusb-0.1.so.4()(64bit)
 +libz.so.1()(64bit)
 +rpmlib(CompressedFileNames) <= 3.0.4-1
 +rpmlib(FileDigests) <= 4.6.0-1
 +rpmlib(PayloadFilesHavePrefix) <= 4.0-1
 +rtld(GNU_HASH)
 +rpmlib(PayloadIsXz) <= 5.2-1
 +</code>
 +
 +Paketabhängigkeiten können mit unter sehr komplex und unübersichtlich werden/sein. Vor allem beim Paketbau verliert man zu Weilen leicht den Überblick. Im obigen Beispiel wird nur ein Teil der eigentlichen Abhängigkeiten aufgelistet; in Wahrheit ist dieser jedoch sehr komplex und zu weilen sehr rießig.
 +
 +Mit hilfe des Befehls **rpmdep** aus dem RPM-Paket **rpmorphan** kann man sehr leicht und einfach diese Abhängigkeiten visualisieren.
 +
 +Hierzu installieren wir uns kurzer Hand dieses Paket. Unter Fedora 19 haben wir es leicht, da dieses Paket im //**Fedora-Repository**// enthalten ist.
 +   # yum install rpmorphan 
 +
 +Unter **Centos 6.x** ist dies ein klein wenig aufwändiger. Wir holen uns erst das Paket auf unseren Entwicklungs-/Rechner.
 +   # wget ftp://rpmfind.net/linux/sourceforge/r/rp/rpmorphan/rpmorphan/1.9/rpmorphan-1.9-1.noarch.rpm
 +
 +Anschließend installieren wir das gerade heruntergeladene RPM-Paket.
 +   # yum localinstall --nogpgcheck rpmorphan-1.9-1.noarch.rpm
 +
 +Nun können wir uns eine graphische Übersicht/Baum z.B. des Paketes gnupg erzeugen. //(Der Befehl **dot** entstammt dem Paket graphviz, das natürlich auch installiert sein muß.)//
 +   # rpmdep -dot gnupg.dot gnupg && dot -Tpng gnupg.dot -o gnupg.png
 +
 +Das generierte Bild **gnupg** können wir uns nun mit dem gewohnten Programm ansehen.
 +
 +{{ :centos:gnupg2.png?direct&700 |Bild: Abhängigkeiten von gnupg als Graphik}}
 +<html><center><i>Zum Vergrößern auf das Bild klicken!</i></center></html>
 +
 +
 +==== Nach einem Paket suchen ====
 +  # rpm -qa | grep Paketname
 +
 +==== Auflistung der Pakete nach deren Größe ====
 +Eine Auflistung aller installierten Pakete nach deren Größe erhält man mit:
 +  $ rpm -qa --queryformat '%{SIZE} %{NAME}\n' | sort -nr | more
 +==== Dateiliste eines heruntergeladenen RPMs ansehen ====
 +Hat man sich ein RPM aus dem WWW heruntergaladen und möchte vor dem Installieren wissen, welche Dateien und Verzeichnisse in dem RPM enthalten sind, benutzt man folgenden Aufruf:
 +  $ rpm2cpio rpmforge-release-0.5.2-2.el6.rf.i686.rpm | cpio -it
 +==== einzelne Datei aus einem RPM holen ====
 +Will man nur eine einzelne Datei aus einem RPM holen, ohne das komplette RPM zu installieren, so geht man wie, wie im nachfolgenden Beispiel aufgezeigt, vor:
 +  - Im ersten Schritt holen wir uns das RPM auf den lokalen Rechner. <code>$ wget http://wxtoimg.com/downloads/wxtoimg-2.10.11.i386.rpm</code>
 +  - Dann kucken wir in das RPM, ob die gewünschte Datei auch enthalten ist. <code>$ rpm2cpio wxtoimg-2.10.11.i386.rpm | cpio -it</code>
 +  - Dann holen wir uns das Objekt der Begierde aus dem RPM. <code>$ rpm2cpio wxtoimg-2.10.11.i386.rpm | cpio -id ./usr/local/lib/wx/tle/weather.txt</code>
 +  - Zum Schluss sehen wir uns die extrahierte Datei an. <code>less usr/local/lib/wx/tle/weather.txt</code>
 +==== Dateiliste eines installierten Paketes ====
 +   # rpm -ql Paketname
 +<code># rpm -ql dhcp
 +/etc/dhcpd.conf
 +/etc/rc.d/init.d/dhcpd
 +/etc/rc.d/init.d/dhcrelay
 +/etc/sysconfig/dhcpd
 +/etc/sysconfig/dhcrelay
 +/usr/bin/omshell
 +/usr/sbin/dhcpd
 +/usr/sbin/dhcrelay
 +/usr/share/doc/dhcp-3.0.5
 +/usr/share/doc/dhcp-3.0.5/IANA-arp-parameters
 +/usr/share/doc/dhcp-3.0.5/README
 +/usr/share/doc/dhcp-3.0.5/RELNOTES
 +/usr/share/doc/dhcp-3.0.5/api+protocol
 +/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
 +/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt
 +/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt
 +/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient-script.8
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.8
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.conf.5
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.leases.5
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-eval.5
 +/usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-options.5
 +/usr/share/doc/dhcp-3.0.5/rfc1542.txt
 +/usr/share/doc/dhcp-3.0.5/rfc2131.txt
 +/usr/share/doc/dhcp-3.0.5/rfc2132.txt
 +/usr/share/doc/dhcp-3.0.5/rfc2485.txt
 +/usr/share/doc/dhcp-3.0.5/rfc2489.txt
 +/usr/share/doc/dhcp-3.0.5/rfc951.txt
 +/usr/share/man/man1/omshell.1.gz
 +/usr/share/man/man5/dhcpd-eval.5.gz
 +/usr/share/man/man5/dhcpd-options.5.gz
 +/usr/share/man/man5/dhcpd.conf.5.gz
 +/usr/share/man/man5/dhcpd.leases.5.gz
 +/usr/share/man/man8/dhcpd.8.gz
 +/usr/share/man/man8/dhcrelay.8.gz
 +/var/lib/dhcpd
 +/var/lib/dhcpd/dhcpd.leases</code>
 +Somit findet man sehr schnell und einfach heraus, wo die
 +   * ausführbaren Programm(teil)e
 +   * Programmdokumentation
 +   * Konfigurationsfiles und -beispiele
 +liegen.
 +==== Nachfrage zu welchem Paket eine Datei gehört ====
 +Ist der Pfad eines Befehls bekannt, so kann mit Hilfe des Befehls **rpm** ermittelt werden, aus welchem Paket dieses Programm stammt.
 +   # rpm -qf /voller/Pfad/Datei
 +
 +Bsp.: 
 +   # rpm -qf /usr/bin/gpg2
 +
 +   gnupg2-2.0.19-8.fc19.x86_64
 +
 +Alternativ kann mit Hilfe des Befehls **yum** die RPM-Datenbank befragt werden.
 +   # yum  whatprovides /usr/bin/gpg2
 +<code>Geladene Plugins: langpacks, refresh-packagekit
 +gnupg2-2.0.19-8.fc19.x86_64 : Utility for secure communication and data storage
 +Quelle      : fedora
 +Übereinstimmung von:
 +Dateiname     : /usr/bin/gpg2
 +
 +
 +
 +gnupg2-2.0.19-8.fc19.x86_64 : Utility for secure communication and data storage
 +Quelle      : @anaconda
 +Übereinstimmung von:
 +Dateiname     : /usr/bin/gpg2
 +</code>
 +b.z.w.:
 +   # yum  whatprovides */gpg2
 +<code>Geladene Plugins: langpacks, refresh-packagekit
 +1:bash-completion-2.1-2.fc19.noarch : Programmable completion for Bash
 +Quelle      : fedora
 +Übereinstimmung von:
 +Dateiname     : /usr/share/bash-completion/completions/gpg2
 +
 +
 +
 +gnupg2-2.0.19-8.fc19.x86_64 : Utility for secure communication and data storage
 +Quelle      : fedora
 +Übereinstimmung von:
 +Dateiname     : /usr/bin/gpg2
 +
 +
 +
 +1:bash-completion-2.1-2.fc19.noarch : Programmable completion for Bash
 +Quelle      : @anaconda
 +Übereinstimmung von:
 +Dateiname     : /usr/share/bash-completion/completions/gpg2
 +
 +
 +
 +gnupg2-2.0.19-8.fc19.x86_64 : Utility for secure communication and data storage
 +Quelle      : @anaconda
 +Übereinstimmung von:
 +Dateiname     : /usr/bin/gpg2
 +</code>
 +==== Nur die Konfiguratinsdateien Paketes anzeigen lassen ====
 +   # rpm -qlc Paketname
 +==== Nur die Dokumentation eines Paketes anzeigen lassen ====
 +   # rpm -qld Paketname
 +
 +==== Abfrage wann ein Paket zuletzt installiert/upgedated wurde ====
 +   # rpm -q --last Paketname
 +
 +==== Paketnamen nach Einrichtungsdatum ====
 +Zur Anzeige aller installierten Pakete, sortiert nach aktualität der Installation/Updates verwenden wir:
 +   # rpm -qa -last
 +Möchten wir eine alphabetische Liste aller installierter Pakete mit dem Datum der Installation bzw. des letzten Updates, so sortieren wir einfach die Ausgabe:
 +   # rpm -qa -last | sort
 +Interessiert und die Gesamtanzahl aller installierten Paketem, dann nutzen wir:
 +   # rpm -qa | wc -l
 +
 +==== Paketnamen nach Repository ====
 +Wollen wir ermitteln, welche Pakete aus einem bestimmten Repository stammen verwenden wir:
 +   # yum list installed | grep -i epel
 +
 +   epel-release.noarch                  6-8                         installed      
 +   python-gdata.noarch                  2.0.11-1.el6                @epel          
 +   python-progressbar.noarch            2.3-2.el6                   @epel
 +
 +==== Alphabetische Liste aller Pakete ====
 +Möchte man eine Auflistung aller installierter Pakete benutzt man folgenden Aufruf:
 +   # rpm --qf "%{NAME}\n" -qa | sort > installerte_Paketliste
 +
 +So kann man mit Hilfe der so erzeugten Datei einen zweiten Server installieren, der dann die gleichen Pakete beinhaltet.
 +   # yum install $(cat installerte_Paketliste)
 +
 +
 +===== Löschen / Entfernen =====
 +==== Löschen eines Paketes inkl. aller Abhängigkeiten ====
 +   # yum remove <Paketname> -y
 +
 +==== Löschen von "n"- zu letzt installierten Pakete  ====
 +Will man z.B. die zuletzt installierten //23//-Pakete wieder löschen, so behilft man sich mit folgendem Aufruf:
 +   # yum remove `tail -n 23 /var/log/yum.log | cut -d \  -f 5`
 +
 +===== Update =====
 +==== Prüfen auf Aktualisierungen ====
 +Mit nachfolgenden Befehl fragen wir die Aktualisierungen ab.
 +   # yum check-update
 +
 +==== Update eines Pakets  ====
 +Wollen wir ein Paket aktualisieren, so verwenden wir folgenden Aufruf.
 +   # yum update postfix
 +
 +Mit der Option //-y// kann angegeben werden, dass dieses Paket auch ohne Nachfrage installiert werden soll.
 +==== Update eines oder mehreren Pakete  ====
 +Wollen wir alle aktuellen Paketänderungen installieren, verwenden wir folgenden Aufruf.
 +   # yum update
 +
 +Auch hier kann mit der Option //-y// angegeben werden, dass die fraglichen Pakete ohne weitere Nachfrage installiert werden sollen.
 +
 +==== Anzeige des Changelogs vor einem Update  ====
 +Wollen wir wissen, was genau sich an einem Paket geändert hat, verwenden wir die Option //--changelog//. Hierzu muss das Plugin **yum-plugin-changelog** installiert sein!
 +   # yum update --changelog
 +<code>Loaded plugins: changelog, fastestmirror, security
 +Repository base-LC is listed more than once in the configuration
 +Repository updates-LC is listed more than once in the configuration
 +Repository extras-LC is listed more than once in the configuration
 +Repository centosplus-LC is listed more than once in the configuration
 +Loading mirror speeds from cached hostfile
 +Setting up Update Process
 +Resolving Dependencies
 +--> Running transaction check
 +---> Package polkit.x86_64 0:0.96-2.el6_0.1 will be updated
 +---> Package polkit.x86_64 0:0.96-5.el6_4 will be an update
 +--> Finished Dependency Resolution
 +
 +Changes in packages about to be updated:
 +
 +ChangeLog for: polkit-0.96-5.el6_4.x86_64
 +* Tue Sep 17 14:00:00 2013 Miloslav Trmač <mitr@redhat.com> - 0.96-5
 +- Actually apply the patch, and modify it to apply to 0.96
 +- Resolves: #1006262
 +
 +* Fri Sep 13 14:00:00 2013 Jan Lieskovsky <jlieskov@redhat.com> - 0.96-4.el6_4
 +- Include fix for CVE-2013-4288
 +- Resolves: #1006262
 +
 +
 +Dependencies Resolved
 +
 +=============================================================================================================================================================================================================================================
 + Package                                                Arch                                                   Version                                                      Repository                                                  Size
 +=============================================================================================================================================================================================================================================
 +Updating:
 + polkit                                                 x86_64                                                 0.96-5.el6_4                                                 updates-LC                                                 158 k
 +
 +Transaction Summary
 +=============================================================================================================================================================================================================================================
 +Upgrade       1 Package(s)
 +
 +Total download size: 158 k
 +Is this ok [y/N]: y
 +Downloading Packages:
 +polkit-0.96-5.el6_4.x86_64.rpm                                                                                                                                                                                        | 158 kB     00:00     
 +Running rpm_check_debug
 +Running Transaction Test
 +Transaction Test Succeeded
 +Running Transaction
 +  Updating   : polkit-0.96-5.el6_4.x86_64                                                                                                                                                                                                1/2 
 +  Cleanup    : polkit-0.96-2.el6_0.1.x86_64                                                                                                                                                                                              2/2 
 +  Verifying  : polkit-0.96-5.el6_4.x86_64                                                                                                                                                                                                1/2 
 +  Verifying  : polkit-0.96-2.el6_0.1.x86_64                                                                                                                                                                                              2/2 
 +
 +Updated:
 +  polkit.x86_64 0:0.96-5.el6_4                                                                                                                                                                                                               
 +
 +Complete!
 +</code>
 +
 +====== Links ======
 +  * **[[centos:commands|Zurück zum Kapitel >>(An)sammlung nützlicher oft gebrauchte Befehle<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
 +