Qiitaとか各種色々なところにもっと分かりやすい形でちゃんとまとまってるんですが、自分のブログに書くことで記憶定着を図りたいのでまとめます。
なお、以下に提示する例はCentOS6を使っているので、色々古いソフトが表示されてますが、気にしないでください。
インストールされたrpmを一覧表示する
rpm -qa
「インストールしたんだけど正確なパッケージ名が思い出せない」といった時にはgrepと組み合わせると効果を発揮。
rpm -qa | grep ruby ruby-devel-1.8.7.374-4.el6_6.x86_64 ruby-1.8.7.374-4.el6_6.x86_64 ruby-irb-1.8.7.374-4.el6_6.x86_64 ruby-libs-1.8.7.374-4.el6_6.x86_64 ruby-augeas-0.4.1-3.el6.x86_64 ruby-shadow-2.2.0-2.el6.x86_64 ruby-rdoc-1.8.7.374-4.el6_6.x86_64 rubygem-json-1.5.5-3.el6.x86_64 libselinux-ruby-2.0.94-7.el6.x86_64 rubygems-1.3.7-5.el6.noarch
逆にパッケージ名を正確に覚えているときは -q
オプションだけでいいです。
rpm -q ruby-devel ruby-devel-1.8.7.374-4.el6_6.x86_64
RPMパッケージ経由でインストールされたファイルを一覧表示する
rpm -ql <package name>
rpm -ql ruby-devel /usr/lib64/libruby.so /usr/lib64/ruby/1.8/x86_64-linux/config.h /usr/lib64/ruby/1.8/x86_64-linux/defines.h /usr/lib64/ruby/1.8/x86_64-linux/digest.h /usr/lib64/ruby/1.8/x86_64-linux/dl.h /usr/lib64/ruby/1.8/x86_64-linux/dlconfig.h /usr/lib64/ruby/1.8/x86_64-linux/dln.h /usr/lib64/ruby/1.8/x86_64-linux/dtrace.h /usr/lib64/ruby/1.8/x86_64-linux/env.h /usr/lib64/ruby/1.8/x86_64-linux/intern.h /usr/lib64/ruby/1.8/x86_64-linux/missing.h /usr/lib64/ruby/1.8/x86_64-linux/node.h /usr/lib64/ruby/1.8/x86_64-linux/re.h /usr/lib64/ruby/1.8/x86_64-linux/regex.h /usr/lib64/ruby/1.8/x86_64-linux/ruby.h /usr/lib64/ruby/1.8/x86_64-linux/rubyio.h /usr/lib64/ruby/1.8/x86_64-linux/rubysig.h /usr/lib64/ruby/1.8/x86_64-linux/st.h /usr/lib64/ruby/1.8/x86_64-linux/util.h /usr/lib64/ruby/1.8/x86_64-linux/version.h /usr/share/doc/ruby-devel-1.8.7.374 /usr/share/doc/ruby-devel-1.8.7.374/COPYING /usr/share/doc/ruby-devel-1.8.7.374/COPYING.ja /usr/share/doc/ruby-devel-1.8.7.374/ChangeLog /usr/share/doc/ruby-devel-1.8.7.374/GPL /usr/share/doc/ruby-devel-1.8.7.374/LEGAL /usr/share/doc/ruby-devel-1.8.7.374/LGPL /usr/share/doc/ruby-devel-1.8.7.374/README.EXT /usr/share/doc/ruby-devel-1.8.7.374/README.EXT.ja
インストールしているパッケージの情報を表示する
rpm -qi <package name>
rpm -qi ruby-devel Name : ruby-devel Relocations: (not relocatable) Version : 1.8.7.374 Vendor: CentOS Release : 4.el6_6 Build Date: Mon 02 Mar 2015 09:12:37 AM UTC Install Date: Thu 10 Nov 2016 10:08:51 AM UTC Build Host: c6b8.bsys.dev.centos.org Group : Development/Languages Source RPM: ruby-1.8.7.374-4.el6_6.src.rpm Size : 1103028 License: Ruby or GPLv2 Signature : RSA/SHA1, Mon 02 Mar 2015 12:21:02 PM UTC, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://www.ruby-lang.org/ Summary : A Ruby development environment Description : Header files and libraries for building a extension library for the Ruby or an application embedded Ruby.
RPMパッケージの情報を表示する
インストールしているときは rpm -qi <package name>
ですが、まだインストールしてないRPMパッケージの場合は rpm -qpi <package name>
で表示できます。
ls | grep ruby-devel ruby-devel-1.8.7.374-5.el6.x86_64.rpm rpm -qpi ruby-devel-1.8.7.374-5.el6.x86_64.rpm Name : ruby-devel Relocations: (not relocatable) Version : 1.8.7.374 Vendor: CentOS Release : 5.el6 Build Date: Wed 22 Mar 2017 05:52:23 AM UTC Install Date: (not installed) Build Host: c1bm.rdu2.centos.org Group : Development/Languages Source RPM: ruby-1.8.7.374-5.el6.src.rpm Size : 1103263 License: Ruby or GPLv2 Signature : RSA/SHA1, Thu 23 Mar 2017 03:00:13 PM UTC, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://www.ruby-lang.org/ Summary : A Ruby development environment Description : Header files and libraries for building a extension library for the Ruby or an application embedded Ruby.
RPMパッケージに含まれているファイルを一覧表示する
rpm2cpio <package name> | cpio -t
rpm -ql
はインストールしているRPMパッケージの時に使えるが、これはインストールしてなくてwgetなどでダウンロードしてきたRPMパッケージなどについて使える
rpm2cpio ruby-devel-1.8.7.374-5.el6.x86_64.rpm | cpio -t ./usr/lib64/libruby.so ./usr/lib64/ruby/1.8/x86_64-linux/config.h ./usr/lib64/ruby/1.8/x86_64-linux/defines.h ./usr/lib64/ruby/1.8/x86_64-linux/digest.h ./usr/lib64/ruby/1.8/x86_64-linux/dl.h ./usr/lib64/ruby/1.8/x86_64-linux/dlconfig.h ./usr/lib64/ruby/1.8/x86_64-linux/dln.h ./usr/lib64/ruby/1.8/x86_64-linux/dtrace.h ./usr/lib64/ruby/1.8/x86_64-linux/env.h ./usr/lib64/ruby/1.8/x86_64-linux/intern.h ./usr/lib64/ruby/1.8/x86_64-linux/missing.h ./usr/lib64/ruby/1.8/x86_64-linux/node.h ./usr/lib64/ruby/1.8/x86_64-linux/re.h ./usr/lib64/ruby/1.8/x86_64-linux/regex.h ./usr/lib64/ruby/1.8/x86_64-linux/ruby.h ./usr/lib64/ruby/1.8/x86_64-linux/rubyio.h ./usr/lib64/ruby/1.8/x86_64-linux/rubysig.h ./usr/lib64/ruby/1.8/x86_64-linux/st.h ./usr/lib64/ruby/1.8/x86_64-linux/util.h ./usr/lib64/ruby/1.8/x86_64-linux/version.h ./usr/share/doc/ruby-devel-1.8.7.374 ./usr/share/doc/ruby-devel-1.8.7.374/COPYING ./usr/share/doc/ruby-devel-1.8.7.374/COPYING.ja ./usr/share/doc/ruby-devel-1.8.7.374/ChangeLog ./usr/share/doc/ruby-devel-1.8.7.374/GPL ./usr/share/doc/ruby-devel-1.8.7.374/LEGAL ./usr/share/doc/ruby-devel-1.8.7.374/LGPL ./usr/share/doc/ruby-devel-1.8.7.374/README.EXT ./usr/share/doc/ruby-devel-1.8.7.374/README.EXT.ja 2164 blocks
RPMパッケージからファイルを取り出す
rpm2cpio <package name> | cpio -id
ls ruby-devel-1.8.7.374-5.el6.x86_64.rpm rpm2cpio ruby-devel-1.8.7.374-5.el6.x86_64.rpm | cpio -id 2164 blocks ls ruby-devel-1.8.7.374-5.el6.x86_64.rpm usr
正直な話、「今の仕事を始める前にこれらのことをちゃんと知っておけば無駄な時間を使わなかったのにな」と思いながら書きました。