カメニッキ

カメとインコと釣りの人です

rpmコマンドの覚え書き

今日もコマンドを忘れてしまい、詰められたのでmanを眺めてメモにする

  • rpmインストール・アンインストール時に実行されるスクリプトを表示
[root@v8148 ~]# rpm -q --scripts nss-3.16.1-4.el6_5.x86_64
postinstall scriptlet (using /bin/sh):
# If we upgrade, and the shared filename is a regular file, then we must
# remove it, before we can install the alternatives symbolic link.
if [ $1 -gt 1 ] ; then
  # when upgrading or downgrading
  if ! test -L /usr/lib64/libnssckbi.so; then
    rm -f /usr/lib64/libnssckbi.so
  fi
fi
# Install the symbolic link
# FYI: Certain other packages use alternatives --set to enforce that the first
# installed package is preferred. We don't do that. Highest priority wins.
/usr/sbin/update-alternatives --install /usr/lib64/libnssckbi.so \
  libnssckbi.so.x86_64 /usr/lib64/nss/libnssckbi.so 10
/sbin/ldconfig
postuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ] ; then
  # package removal
  /usr/sbin/update-alternatives --remove libnssckbi.so.x86_64 /usr/lib64/nss/libnssckbi.so
else
  # upgrade or downgrade
  # If the new installed package uses a regular file (not a symblic link),
  # then cleanup the alternatives link.
  if ! test -L /usr/lib64/libnssckbi.so; then
    /usr/sbin/update-alternatives --remove libnssckbi.so.x86_64 /usr/lib64/nss/libnssckbi.so
  fi
fi
/sbin/ldconfig
  • インストール済みパッケージを表示
[root@v8148 ~]# rpm -qa
setup-2.8.14-20.el6_4.1.noarch
basesystem-10.0-4.el6.noarch
ncurses-base-5.7-3.20090208.el6.x86_64
ncurses-libs-5.7-3.20090208.el6.x86_64
libattr-2.4.44-7.el6.x86_64
zlib-1.2.3-29.el6.x86_64
...
  • 指定したパッケージによってインストールされたファイル・ディレクトリを表示
[root@v8148 ~]# rpm -ql wget-1.12-1.11.el6_5.x86_64
/etc/wgetrc
/usr/bin/wget
/usr/share/doc/wget-1.12
/usr/share/doc/wget-1.12/AUTHORS
/usr/share/doc/wget-1.12/COPYING
/usr/share/doc/wget-1.12/MAILING-LIST
/usr/share/doc/wget-1.12/NEWS
/usr/share/doc/wget-1.12/README
...
  • あるファイルがどのパッケージによって作成されたか表示
[root@v8148 ~]# rpm -qf /usr/bin/ssltap
nss-tools-3.16.1-4.el6_5.x86_64
  • パッケージのインストール
[root@v8148 ~]# rpm -ivh postgresql-8.4.20-2.el6_6.i686.rpm
  • パッケージのアンインストール
[root@v8148 ~]# rpm -e curl-7.19.7-37.el6_5.3.x86_64
  • パッケージのアップデート
[root@v8148 ~]# rpm -Uvh postgresql-8.4.20-2.el6_6.i686.rpm
  • パッケージのinfo表示
[root@v8148 ~]# rpm -qi openssl-1.0.1e-16.el6_5.15.x86_64
Name        : openssl                      Relocations: (not relocatable)
Version     : 1.0.1e                            Vendor: CentOS
Release     : 16.el6_5.15                   Build Date: 20140814041700秒
Install Date: 20140916134306秒      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Libraries   Source RPM: openssl-1.0.1e-16.el6_5.15.src.rpm
Size        : 4209650                          License: OpenSSL
Signature   : RSA/SHA1, 20140814050950秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.openssl.org/
Summary     : A general purpose cryptography library with TLS implementation
Description :
The OpenSSL toolkit provides support for secure communications between
machines. OpenSSL includes a certificate management tool and shared
libraries which provide various cryptographic algorithms and
protocols.
  • -v以上の詳細表示
# -vを指定
[root@v8148 ~]# rpm -ihv postgresql-8.4.20-2.el6_6.i686.rpm
エラー: 依存性の欠如:
    libc.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.0) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.11) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libpq.so.5 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libreadline.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libssl.so.10 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libssl.so.10(libssl.so.10) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libz.so.1 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    postgresql-libs(x86-32) = 8.4.20-2.el6_6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています

# -vvを指定
[root@v8148 ~]# rpm -ihvv postgresql-8.4.20-2.el6_6.i686.rpm
D: ============== postgresql-8.4.20-2.el6_6.i686.rpm
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key
D: loading keyring from rpmdb
D: opening  db environment /var/lib/rpm cdb:mpool:joinenv
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Name rdonly mode=0x0
D:  read h#     153 Header sanity check: OK
D: added key gpg-pubkey-c105b9de-4e0fd3a3 to keyring
D: Using legacy gpg-pubkey(s) from rpmdb
D: Expected size:      2706348 = lead(96)+sigs(1284)+pad(4)+data(2704964)
D:   Actual size:      2706348
D: postgresql-8.4.20-2.el6_6.i686.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: OK
D: ========== relocations
D:    added binary package [0]
D: found 0 source and 1 binary packages
D: ========== +++ postgresql-8.4.20-2.el6_6 i686/linux 0x1
D: opening  db index       /var/lib/rpm/Providename rdonly mode=0x0
D:  read h#     155 ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: OK
D:  Requires: glibc                                         YES (provides データベース
D:  Requires: glibc                                         YES (キャッシュ済み)
D:  read h#     166 ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: OK
D:  Requires: initscripts                                   YES (provides データベース
D:  Requires: initscripts                                   YES (キャッシュ済み)
D:  Requires: libc.so.6                                     NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6
D:  Requires: libc.so.6(GLIBC_2.0)                          NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.0)
D:  Requires: libc.so.6(GLIBC_2.1)                          NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.1)
D:  Requires: libc.so.6(GLIBC_2.1.2)                        NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.1.2)
D:  Requires: libc.so.6(GLIBC_2.1.3)                        NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.1.3)
D:  Requires: libc.so.6(GLIBC_2.11)                         NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.11)
D:  Requires: libc.so.6(GLIBC_2.2)                          NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.2)
D:  Requires: libc.so.6(GLIBC_2.3)                          NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.3)
D:  Requires: libc.so.6(GLIBC_2.3.3)                        NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.3.3)
D:  Requires: libc.so.6(GLIBC_2.3.4)                        NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.3.4)
D:  Requires: libc.so.6(GLIBC_2.4)                          NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libc.so.6(GLIBC_2.4)
D:  Requires: libpq.so.5                                    NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libpq.so.5
D:  Requires: libreadline.so.6                              NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libreadline.so.6
D:  Requires: libssl.so.10                                  NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libssl.so.10
D:  Requires: libssl.so.10(libssl.so.10)                    NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libssl.so.10(libssl.so.10)
D:  Requires: libz.so.1                                     NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: libz.so.1
D:  Requires: postgresql-libs(x86-32) = 8.4.20-2.el6_6      NO
D: package postgresql-8.4.20-2.el6_6.i686 has unsatisfied Requires: postgresql-libs(x86-32) = 8.4.20-2.el6_6
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (rpmlib 提供)
D:  Requires: rpmlib(FileDigests) <= 4.6.0-1                YES (rpmlib 提供)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (rpmlib 提供)
D:  Requires: rtld(GNU_HASH)                                YES (provides データベース
D:  Requires: rpmlib(PayloadIsXz) <= 5.2-1                  YES (rpmlib 提供)
D: opening  db index       /var/lib/rpm/Conflictname rdonly mode=0x0
エラー: 依存性の欠如:
  libc.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.0) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.1) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.1.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.1.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.11) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.3.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.3.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libc.so.6(GLIBC_2.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libpq.so.5 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libreadline.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libssl.so.10 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libssl.so.10(libssl.so.10) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  libz.so.1 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
  postgresql-libs(x86-32) = 8.4.20-2.el6_6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
D: closed   db index       /var/lib/rpm/Conflictname
D: closed   db index       /var/lib/rpm/Providename
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm
  • 実際には実行せず-iや-eした際のチェックを行う(--test)
# install
[root@v8148 ~]# rpm -i --test postgresql-8.4.20-2.el6_6.i686.rpm
エラー: 依存性の欠如:
    libc.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.0) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.1.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.11) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.2) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3.3) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.3.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libc.so.6(GLIBC_2.4) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libpq.so.5 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libreadline.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libssl.so.10 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libssl.so.10(libssl.so.10) は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    libz.so.1 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
    postgresql-libs(x86-32) = 8.4.20-2.el6_6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています
# erase
[root@v8148 ~]# rpm -e --test libblkid-2.17.2-12.14.el6_5.x86_64
エラー: 依存性の欠如:
    libblkid.so.1()(64bit)(インストール済み)util-linux-ng-2.17.2-12.14.el6_5.x86_64 に必要とされています
    libblkid.so.1()(64bit)(インストール済み)e2fsprogs-1.41.12-18.el6_5.1.x86_64 に必要とされています
    libblkid.so.1(BLKID_1.0)(64bit)(インストール済み)util-linux-ng-2.17.2-12.14.el6_5.x86_64 に必要とされています
    libblkid.so.1(BLKID_1.0)(64bit)(インストール済み)e2fsprogs-1.41.12-18.el6_5.1.x86_64 に必要とされています
    libblkid.so.1(BLKID_2.15)(64bit)(インストール済み)util-linux-ng-2.17.2-12.14.el6_5.x86_64 に必要とされています
    libblkid.so.1(BLKID_2.15)(64bit)(インストール済み)e2fsprogs-1.41.12-18.el6_5.1.x86_64 に必要とされています
    libblkid.so.1(BLKID_2.17)(64bit)(インストール済み)util-linux-ng-2.17.2-12.14.el6_5.x86_64 に必要とされています
    libblkid.so.1(BLKID_2.17)(64bit)(インストール済み)e2fsprogs-1.41.12-18.el6_5.1.x86_64 に必要とされています
    libblkid = 2.17.2-12.14.el6_5 は (インストール済み)util-linux-ng-2.17.2-12.14.el6_5.x86_64 に必要とされています
  • パッケージの更新履歴を見る
[root@v8148 ~]# rpm -q --changelog libblkid-2.17.2-12.14.el6_5.x86_64
* 水  409 2014 Karel Zak <kzak@redhat.com> 2.17.2-12.14.el6_5
- fix #1085818 - hwclock --systohc can hang on busy or virtual machine

* 火  806 2013 Karel Zak <kzak@redhat.com> 2.17.2-12.14
- improve agetty patches for #816342 and #870854

* 火  730 2013 Karel Zak <kzak@redhat.com> 2.17.2-12.13
- fix #816342 - agetty: improve CLOCAL flag management
- fix #846790 - missing information about threads in kill(2) man page
  • 依存するパッケージを確認
[root@v8148 ~]# rpm -qR libblkid-2.17.2-12.14.el6_5.x86_64
/bin/sh
/sbin/ldconfig
libblkid.so.1()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libuuid = 2.17.2-12.14.el6_5
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(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
  • 指定したパッケージに依存しているパッケージを確認
[root@v8148 ~]# rpm -q --whatrequires glibc
libstdc++-4.4.7-4.el6.x86_64
pam-1.1.1-17.el6.x86_64
glibc-common-2.12-1.132.el6_5.4.x86_64