rpmコマンド備忘録
RedHat系のLinuxではよくお世話になるrpmコマンド。
今更ながら自分自身の備忘録です。
ある意味manが全てです。
インストールされているRPMパッケージの一覧を取得
よく「grep」と組み合わせて使います。
# rpm -qa | grep "openssl" openssl-0.9.8e-12.el5_4.6 openssl-devel-0.9.8e-12.el5_4.6
「--last」をつけると最近インストールしたものから順に表示するらしいのでやってみました。
最近インストールしたパッケージを上から順に5つ。
# rpm -qa --last | head -5 pcre-devel-6.6-2.el5_1.7 2010年06月21日 20時08分57秒 db4-devel-4.3.29-10.el5 2010年06月21日 20時02分24秒 sqlite-devel-3.3.6-5 2010年06月21日 19時58分45秒 expat-devel-1.95.8-8.3.el5_4.2 2010年06月21日 19時58分21秒 tcl-devel-8.4.13-4.el5 2010年06月21日 19時57分58秒
パッケージの詳細情報を表示
パッケージの説明ですね。
# rpm -qi openssl Name : openssl Relocations: (not relocatable) Version : 0.9.8e Vendor: CentOS Release : 12.el5_4.6 Build Date: 2010年03月27日 06時46分11秒 Install Date: 2010年05月01日 22時25分38秒 Build Host: builder16.centos.org Group : System Environment/Libraries Source RPM: openssl-0.9.8e-12.el5_4.6.src.rpm Size : 3495415 License: BSDish Signature : DSA/SHA1, 2010年03月28日 02時29分07秒, Key ID a8a447dce8562897 URL : http://www.openssl.org/ Summary : The OpenSSL toolkit Description : OpenSSL ツールキットはマシン間の安全な通信をサポートします。OpenSSL には、証明書管理ツールと、各種の暗号化アルゴリズムとプロトコルを提供する 共有ライブラリが含まれています。
パッケージに含まれるファイルリストを表示/ファイルが含まれるパッケージ名を表示
対で覚えとくと良いですよね。
まずはパッケージに含まれるファイルリストの表示。
# rpm -ql openssl /etc/pki/CA /etc/pki/CA/private /etc/pki/tls /etc/pki/tls/cert.pem /etc/pki/tls/certs /etc/pki/tls/certs/Makefile /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/make-dummy-cert /etc/pki/tls/misc /etc/pki/tls/misc/CA /etc/pki/tls/misc/c_hash /etc/pki/tls/misc/c_info /etc/pki/tls/misc/c_issuer /etc/pki/tls/misc/c_name /etc/pki/tls/openssl.cnf /etc/pki/tls/private /lib/.libcrypto.so.0.9.8e.hmac /lib/.libcrypto.so.6.hmac /lib/.libssl.so.0.9.8e.hmac /lib/.libssl.so.6.hmac /lib/libcrypto.so.0.9.8e /lib/libcrypto.so.6 /lib/libssl.so.0.9.8e /lib/libssl.so.6 /usr/bin/openssl /usr/lib/openssl /usr/lib/openssl/engines /usr/lib/openssl/engines/lib4758cca.so /usr/lib/openssl/engines/libaep.so /usr/lib/openssl/engines/libatalla.so /usr/lib/openssl/engines/libchil.so /usr/lib/openssl/engines/libcswift.so /usr/lib/openssl/engines/libgmp.so /usr/lib/openssl/engines/libnuron.so /usr/lib/openssl/engines/libsureware.so /usr/lib/openssl/engines/libubsec.so /usr/share/doc/openssl-0.9.8e /usr/share/doc/openssl-0.9.8e/CHANGES /usr/share/doc/openssl-0.9.8e/FAQ /usr/share/doc/openssl-0.9.8e/INSTALL /usr/share/doc/openssl-0.9.8e/LICENSE /usr/share/doc/openssl-0.9.8e/NEWS /usr/share/doc/openssl-0.9.8e/README /usr/share/doc/openssl-0.9.8e/README.FIPS /usr/share/doc/openssl-0.9.8e/c-indentation.el /usr/share/doc/openssl-0.9.8e/openssl.txt /usr/share/doc/openssl-0.9.8e/openssl_button.gif /usr/share/doc/openssl-0.9.8e/openssl_button.html /usr/share/doc/openssl-0.9.8e/ssleay.txt /usr/share/man/man1/asn1parse.1ssl.gz /usr/share/man/man1/ca.1ssl.gz /usr/share/man/man1/ciphers.1ssl.gz /usr/share/man/man1/crl.1ssl.gz /usr/share/man/man1/crl2pkcs7.1ssl.gz /usr/share/man/man1/dgst.1ssl.gz /usr/share/man/man1/dhparam.1ssl.gz /usr/share/man/man1/dsa.1ssl.gz /usr/share/man/man1/dsaparam.1ssl.gz /usr/share/man/man1/ec.1ssl.gz /usr/share/man/man1/ecparam.1ssl.gz /usr/share/man/man1/enc.1ssl.gz /usr/share/man/man1/errstr.1ssl.gz /usr/share/man/man1/gendsa.1ssl.gz /usr/share/man/man1/genrsa.1ssl.gz /usr/share/man/man1/md2.1ssl.gz /usr/share/man/man1/md4.1ssl.gz /usr/share/man/man1/md5.1ssl.gz /usr/share/man/man1/mdc2.1ssl.gz /usr/share/man/man1/nseq.1ssl.gz /usr/share/man/man1/ocsp.1ssl.gz /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/pkcs12.1ssl.gz /usr/share/man/man1/pkcs7.1ssl.gz /usr/share/man/man1/pkcs8.1ssl.gz /usr/share/man/man1/req.1ssl.gz /usr/share/man/man1/ripemd160.1ssl.gz /usr/share/man/man1/rsa.1ssl.gz /usr/share/man/man1/rsautl.1ssl.gz /usr/share/man/man1/s_client.1ssl.gz /usr/share/man/man1/s_server.1ssl.gz /usr/share/man/man1/s_time.1ssl.gz /usr/share/man/man1/sess_id.1ssl.gz /usr/share/man/man1/sha.1ssl.gz /usr/share/man/man1/sha1.1ssl.gz /usr/share/man/man1/smime.1ssl.gz /usr/share/man/man1/speed.1ssl.gz /usr/share/man/man1/spkac.1ssl.gz /usr/share/man/man1/sslpasswd.1ssl.gz /usr/share/man/man1/sslrand.1ssl.gz /usr/share/man/man1/verify.1ssl.gz /usr/share/man/man1/version.1ssl.gz /usr/share/man/man1/x509.1ssl.gz /usr/share/man/man5/config.5ssl.gz /usr/share/man/man5/x509v3_config.5ssl.gz /usr/share/man/man7/des_modes.7ssl.gz
今度は逆に特定のファイルが含まれるパッケージ。
# rpm -qf /usr/bin/openssl openssl-0.9.8e-12.el5_4.6
パッケージの更新履歴を表示する
パッケージ自身の更新履歴を見たい場合。
# rpm -q --changelog openssl * 土 3月 13 2010 Tomas Mraz <tmraz@redhat.com> 0.9.8e-12.6 - fix CVE-2009-3245 - add missing bn_wexpand return checks (#570924) (長いので略) * 水 10月 27 1999 Bernhard Rosenkrdnzer <bero@redhat.de> - inital packaging - changes from base: - Move /usr/local/ssl to /usr/share/ssl for FHS compliance - handle RPM_OPT_FLAGS
パッケージの設定ファイルリストを表示
意外に便利です。
# rpm -qc openssh-server /etc/pam.d/sshd /etc/ssh/sshd_config
パッケージのドキュメントファイルリストを表示
こっちはドキュメントの場所。
# rpm -qd openssh-server /usr/share/man/man5/sshd_config.5.gz /usr/share/man/man8/sftp-server.8.gz /usr/share/man/man8/sshd.8.gz
共有ライブラリ関連
「--provides」オプションでそのパッケージが提供するもの。
# rpm -q --provides openssl config(openssl) = 0.9.8e-12.el5_4.6 lib4758cca.so libaep.so libatalla.so libchil.so libcrypto.so.6 libcswift.so libgmp.so libnuron.so libssl.so.6 libsureware.so libubsec.so openssl = 0.9.8e-12.el5_4.6
「--requires」で必要とするもの。
# rpm -q --requires openssl /bin/sh /sbin/ldconfig /sbin/ldconfig config(openssl) = 0.9.8e-12.el5_4.6 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) libcom_err.so.2 libcrypto.so.6 libdl.so.2 libdl.so.2(GLIBC_2.0) libdl.so.2(GLIBC_2.1) libgssapi_krb5.so.2 libk5crypto.so.3 libk5crypto.so.3(k5crypto_3_MIT) libkrb5.so.3 libkrb5.so.3(krb5_3_MIT) libresolv.so.2 libssl.so.6 libz.so.1 mktemp rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rtld(GNU_HASH)
パッケージの依存関係
「--whatrequires」で指定したパッケージを使っているパッケージリストを表示。
# rpm -q --whatrequires openssl curl-7.15.5-2.1.el5_3.5 libpcap-0.9.4-14.el5 sendmail-8.13.8-2.el5 openssh-4.3p2-36.el5_4.4 openssl-devel-0.9.8e-12.el5_4.6 NetworkManager-0.7.0-9.el5_4 vsftpd-2.0.5-16.el5_4.1
パッケージのアンインストール
アンインストールは「-e」オプション
# rpm -e vsftpd
「--test」オプション付けると事前のチェックになります。
# rpm -e --test openssl エラー: 依存性の欠如: libcrypto.so.6 は (インストール済み)python-2.4.3-27.el5.i386 に必要とされています libcrypto.so.6 は (インストール済み)openldap-2.3.43-3.el5.i386 に必要とされています