Po zapoznaniu się ze sposobami wyboru listy pakietów we wpisie Zadawanie zapytań w aplikacji rpm: wybór pakietów czas na poznanie sposobów wyświetlenia informacji o nich.

Wybór informacji do wyświetlenie

  • brak kryteriów
    Jeżeli zostanie pominięty ten parametr, to po prosty polecenie rpm wyświetli nazwę i wersję pakietu:

    # rpm -q bash
    bash-3.2-24.el5
  • -iwyświetlenie informacji o pakiecie

    Polecenie to pozwala na wyświetlenie szczegółowych informacji o wybranym pakiecie:

    # rpm -q -i bash
    Name        : bash                         Relocations: (not relocatable)
    Version     : 3.2                               Vendor: Red Hat, Inc.
    Release     : 24.el5                        Build Date: Tue 21 Oct 2008 02:15:55 PM CEST
    Install Date: Tue 23 Feb 2010 08:06:34 PM CET      Build Host: hs20-bc1-7.build.redhat.com
    Group       : System Environment/Shells     Source RPM: bash-3.2-24.el5.src.rpm
    Size        : 5349546                          License: GPLv2+
    Signature   : DSA/SHA1, Mon 08 Dec 2008 01:25:44 PM CET, Key ID 5326810137017186
    Packager    : Red Hat, Inc. <http: //bugzilla.redhat.com/bugzilla>
    URL         : http://www.gnu.org/software/bash
    Summary     : The GNU Bourne Again shell (bash) version 3.1.
    Description :
    The GNU Bourne Again shell (Bash) is a shell or command language
    interpreter that is compatible with the Bourne shell (sh). Bash
    incorporates useful features from the Korn shell (ksh) and the C shell
    (csh). Most sh scripts can be run by bash without modification. This
    package (bash) contains bash version 3.1, which improves POSIX
    compliance over previous versions.

    Znaczenie powyższych pól jest następujące:

    • Name – nazwa pakietu, którego dotyczyło pytane. Najczęściej jest powiązane z nazwą aplikacji jaka jest instalowana przez podany pakiet, ale nie zawsze (np. pakiety httpd, coreutils).
    • Version – główna wersja aplikacji, taka na podstawie której został stworzony pakiet instalacyjny.
    • Release – wersja wydania danego pakietu. Jeżeli zmienia się pole Version to powinna mieć wartość 1. Jest zwiększana zawsze w momencie wprowadzenia zmian w stosunku do podstawowej wersji aplikacji.
    • Install date – data instalacji pakietu w systemie.
    • Group – grupa, do której należy pakiet.
    • Size – łączony rozmiar wszystkich plików jakie znajdują się w danym pakiecie.
    • Summary – krótki opis pakietu.
    • Description – dłuższy, dokładniejszy opis pakietu.
    • Packager – kto jest odpowiedzialny za stworzenie pakietu (pakietu, nie samej aplikacji).
    • Build Date – data utworzenia pakietu.
    • Build Host – nazwa komputera, na którym nastąpiło utworzenie pakietu.
    • Source RPM – nazwa źródłowego pliku RPM, na podstawie którego utworzono pakiet.
    • License – licencja na podstawie której jest rozprowadzana dana aplikacji.
    • URL – adres do strony danej aplikacji.

  • -llista plików
    Parametr ten powoduje wyświetlenie listy plików, jakie znajdują się w danym pakiecie:

    # rpm -ql bash                                                          
    /bin/bash                                                                                  
    /bin/sh                                                                                    
    /etc/skel/.bash_logout                                                                    
    /etc/skel/.bash_profile                                                                    
    /etc/skel/.bashrc                                                                          
    /usr/bin/bashbug-32                                                                        
    /usr/share/doc/bash-3.2                                                                    
    /usr/share/doc/bash-3.2/CHANGES                                                            
    /usr/share/doc/bash-3.2/COMPAT                                                            
    ....

    Można także dodatkowo dodać przełącznik -v, który spowoduje wyświetleni dodatkowych informacji o poszczególnych plikach:

    # rpm -qvl bash
    -rwxr-xr-x    1 root    root           729292 Oct 21  2008 /bin/bash
    lrwxrwxrwx    1 root    root                4 Oct 21  2008 /bin/sh -> bash
    -rw-r--r--    1 root    root               33 Oct 21  2008 /etc/skel/.bash_logout
    -rw-r--r--    1 root    root              176 Oct 21  2008 /etc/skel/.bash_profile
    -rw-r--r--    1 root    root              124 Oct 21  2008 /etc/skel/.bashrc
    -rwxr-xr-x    1 root    root             7044 Oct 21  2008 /usr/bin/bashbug-32
    drwxr-xr-x    2 root    root                0 Oct 21  2008 /usr/share/doc/bash-3.2
    -rw-r--r--    1 root    root           221125 Sep 26  2006 /usr/share/doc/bash-3.2/CHANGES
    -rw-r--r--    1 root    root            11659 Aug 29  2006 /usr/share/doc/bash-3.2/COMPAT
    -rw-r--r--    1 root    root            73644 Oct 10  2006 /usr/share/doc/bash-3.2/FAQ
    ....
  • -cwyświetlenie plików konfiguracyjnych
    W pliku RPM pliki z konfiguracją aplikacji są traktowane w specyficzny sposób, w związku z czym muszą być odpowiednio oznaczone. Z tego też powodu możemy w łatwy sposób sprawdzić, jakie pliki konfiguracyjne zwiera dany pakiet:

    # rpm -qc bash
    /etc/skel/.bash_logout
    /etc/skel/.bash_profile
    /etc/skel/.bashrc
  • -dwyświetlenie plików z dokumentacją
    Przełącznik ten pozwala na wyświetlenie wszystkich plików z dokumentacją, jakie znajdują się w danym pakiecie:

    # rpm -qd bash | head
    /usr/share/doc/bash-3.2/CHANGES
    /usr/share/doc/bash-3.2/COMPAT
    /usr/share/doc/bash-3.2/FAQ
    /usr/share/doc/bash-3.2/INTRO
    /usr/share/doc/bash-3.2/NEWS
    /usr/share/doc/bash-3.2/NOTES
    /usr/share/doc/bash-3.2/POSIX
    /usr/share/doc/bash-3.2/article.ms
    /usr/share/doc/bash-3.2/article.ps
    /usr/share/doc/bash-3.2/article.txt
    ....
  • --provideszależności dostarczane przez pakiet

    Można wyświetlić informacje, jakie dodatkowe zależności, możliwości udostępnia wybrany pakiet (są one potem używane przez inne pakiety do określenia co jest wymagane do instalacji danego pakietu):

    # rpm -q --provides -p libicu-3.6-5.11.4.i386.rpm
    libicudata.so.36
    libicui18n.so.36
    libicuio.so.36
    libicule.so.36
    libiculx.so.36
    libicutu.so.36
    libicuuc.so.36
    libicu = 3.6-5.11.4
  • --requiresczego wymaga dany pakiet do instalacji

    W każdym pakiecie może znajdować się informacja o zależnościach, które muszą zostać spełnione zanim zostanie on zainstalowany:

    # rpm -q --requires -p x3270-3.3.4p7-3.el5.4.i386.rpm
    config(x3270) = 3.3.4p7-3.el5.4
    libc.so.6
    libc.so.6(GLIBC_2.0)
    libc.so.6(GLIBC_2.1)
    libc.so.6(GLIBC_2.3)
    libc.so.6(GLIBC_2.3.4)
    libc.so.6(GLIBC_2.4)
    libcrypto.so.6
    libicui18n.so.36
    libicuuc.so.36
    libnsl.so.1
    libssl.so.6
    libutil.so.1
    rpmlib(CompressedFileNames) < = 3.0.4-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    rtld(GNU_HASH)
    xorg-x11-font-utils

    Jak widać, pakiet x3270-3.3.4p7-3.el5.4.i386.rpm wymaga spełnienia szeregu różnych zależności w celu jego instalacji. Można zauważyć, że na liście są wymieniane biblioteki ibicui18n.so.36 oraz libicuuc.so.36, które są udostępniane przez pakiet libicu-3.6-5.11.4.i386.rpm.

  • --scriptswyświetlenie skryptów instalacyjnych

    Polecenie to spowoduje wyświetlenie skryptów wykonywanych zarówno przed/po instalacji/odinstalowaniu aplikacji.

    # rpm -q --scripts initscripts
    preinstall scriptlet (using /bin/sh):
    /usr/sbin/groupadd -g 22 -r -f utmp
    postinstall scriptlet (using /bin/sh):
    touch /var/log/wtmp /var/run/utmp /var/log/btmp
    chown root:utmp /var/log/wtmp /var/run/utmp /var/log/btmp
    chmod 664 /var/log/wtmp /var/run/utmp
    chmod 600 /var/log/btmp

    /sbin/chkconfig --add netfs
    /sbin/chkconfig --add network
    /sbin/chkconfig --add netconsole
    /sbin/chkconfig --add rawdevices
    preuninstall scriptlet (using /bin/sh):
    if [ $1 = 0 ]; then
      /sbin/chkconfig --del netfs
      /sbin/chkconfig --del network
      /sbin/chkconfig --del netconsole
      /sbin/chkconfig --del rawdevices
    fi
  • queryformatsamodzielne utworzenie informacji o pakiecie

    Polecenie to pozwala na samodzielne zdefiniowanie listy informacji, jakie zostaną wyświetlone o danym pakiecie. Pełny opis polecenie znajduje się w dokumentacji oraz na stronach podanych na końcu wpisu.

    Wyświetlenie nazwy oraz wersji pakietu:

    # rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\n' bash
    bash-3.2-24.el5

    Wyświetlenie daty instalacji pakietu:

    # rpm -q --queryformat '%{NAME} was installed on %{INSTALLTIME:date}\n' bash
    bash was installed on Tue 23 Feb 2010 08:06:34 PM CET

    Wyświetlenie listy plików, które znajdują się w pakiecie łącznie z ich rozmiarami:

    # rpm -q --queryformat '%{NAME}: [%{FILENAMES} (%{FILESIZES} bytes)\n]' bash
    bash: /bin/bash (729292 bytes)
    /bin/sh (4 bytes)
    /etc/skel/.bash_logout (33 bytes)
    /etc/skel/.bash_profile (176 bytes)
    /etc/skel/.bashrc (124 bytes)
    /usr/bin/bashbug-32 (7044 bytes)
    /usr/share/doc/bash-3.2 (4096 bytes)
    /usr/share/doc/bash-3.2/CHANGES (221125 bytes)
    /usr/share/doc/bash-3.2/COMPAT (11659 bytes)
    /usr/share/doc/bash-3.2/FAQ (73644 bytes)
    ....

    Można także wyświetlić lisŧę wszystkich tagów, jakie mogą zostać użyte w opcji queryformat:

    # rpm --querytags
    HEADERIMAGE
    HEADERSIGNATURES
    HEADERIMMUTABLE
    HEADERREGIONS
    HEADERI18NTABLE
    SIGSIZE
    SIGPGP
    SIGMD5
    PKGID
    SIGGPG

    Opis częsci z poszczególnych tagów można znaleźć w artykule Available Tags For –queryformat

Źródła