RPM (Red Hat Package Manager)

パッケージマネージャーrpm

概要

 状態:確認中  閲覧数:592  投稿日:2016-12-08  更新日:2017-01-05
「rpm」は、「yum」 を使用できない環境で使用
・「yum」 を使用できる環境では 「yum」 を使用した方が便利
・但し、「rpm」 しか使えないという場面もある

yum ではなく rpm を使用する場合
・パッケージ内のファイルを表示
・リポジトリに含まれていないパッケージを扱う

rpm を検索する際、よく使うオプション

 閲覧数:161 投稿日:2016-12-08 更新日:2019-04-20 

1.-q オプション(query の略)


パッケージ検索の基本となるオプション
・rpm コマンドに「-q」オプション(query の略)を付けて実行すると、RPM データベースに対して検索できる
・インストールされていないパッケージを検索しようとすると、インストールされていない旨が表示される
$ rpm -q mysql
パッケージ mysql はインストールされていません。


$ rpm -q *        
                                                                                                                               
パッケージ MySQL-shared-compat-5.6.29-1.el6.x86_64.rpm はインストールされていません。
パッケージ backup はインストールされていません。
パッケージ backupmukaer_blog-20160913.sql.gz はインストールされていません。
パッケージ bower_configuration はインストールされていません。
パッケージ casperjs はインストールされていません。
パッケージ ls.txt はインストールされていません。
パッケージ mecab-0.996 はインストールされていません。
パッケージ mecab-0.996.tar.gz はインストールされていません。
パッケージ mecab-0.996.tar.gz.1 はインストールされていません。
パッケージ myapp はインストールされていません。
パッケージ nodebrew はインストールされていません。
パッケージ phantomjs はインストールされていません。
パッケージ php-mecab はインストールされていません。
パッケージ php-mecab-0.5.0 はインストールされていません。
パッケージ php-mecab-0.5.0.tgz はインストールされていません。
パッケージ phpMyAdmin-4.5.5.1-all-languages.zip はインストールされていません。
パッケージ remi-release-6.rpm はインストールされていません。
パッケージ remi-release-7.rpm はインストールされていません。
パッケージ remi-release-7.rpm.1 はインストールされていません。
パッケージ repos はインストールされていません。
パッケージ shell はインストールされていません。
パッケージ tmp はインストールされていません。



2.-a オプション(all の略)


該当するものをすべて表示
・あるパッケージが既にインストールされているか否かの確認や、インストールされているパッケージのバージョン確認に使用
・「yum list」コマンドと非常に似ている
・grep と一緒に使うと便利
$ rpm -qa | grep  mysql
mysql-community-server-5.6.34-2.el6.x86_64
php70-php-mysqlnd-7.0.14-1.el6.remi.x86_64
mysql-community-common-5.6.34-2.el6.x86_64
compat-mysql51-5.1.54-1.el6.remi.x86_64
mysql-community-client-5.6.34-2.el6.x86_64
mysql-community-release-el6-5.noarch
php-mysql-5.3.3-48.el6_8.x86_64
mysql-community-devel-5.6.34-2.el6.x86_64
mysql-community-libs-5.6.34-2.el6.x86_64



3. -l オプション(list の略)


パッケージ内のファイルを一覧表示
・パッケージからインストールされたファイルの一覧を表示する
・yum には、パッケージ内のファイルを表示する機能はない
$ rpm -ql mysql-community-server-5.6.34-2.el6.x86_64      
                                                                                         
/etc/init.d/mysqld
/etc/logrotate.d/mysql
/etc/my.cnf
/etc/my.cnf.d
/usr/bin/innochecksum
/usr/bin/my_print_defaults
/usr/bin/myisam_ftdump
/usr/bin/myisamchk
/usr/bin/myisamlog
/usr/bin/myisampack
/usr/bin/mysql_convert_table_format
/usr/bin/mysql_fix_extensions
/usr/bin/mysql_install_db
/usr/bin/mysql_plugin
/usr/bin/mysql_secure_installation
/usr/bin/mysql_tzinfo_to_sql
/usr/bin/mysql_upgrade
/usr/bin/mysql_zap
/usr/bin/mysqlbug
/usr/bin/mysqld_multi
/usr/bin/mysqld_safe
/usr/bin/mysqldumpslow
/usr/bin/mysqlhotcopy
/usr/bin/mysqltest
/usr/bin/perror
/usr/bin/replace
/usr/bin/resolve_stack_dump
/usr/bin/resolveip
/usr/lib/tmpfiles.d/mysql.conf
/usr/lib64/mysql/plugin
/usr/lib64/mysql/plugin/adt_null.so
/usr/lib64/mysql/plugin/auth.so
/usr/lib64/mysql/plugin/auth_socket.so
/usr/lib64/mysql/plugin/auth_test_plugin.so
/usr/lib64/mysql/plugin/daemon_example.ini
/usr/lib64/mysql/plugin/debug
/usr/lib64/mysql/plugin/debug/adt_null.so
/usr/lib64/mysql/plugin/debug/auth.so
/usr/lib64/mysql/plugin/debug/auth_socket.so
/usr/lib64/mysql/plugin/debug/auth_test_plugin.so
/usr/lib64/mysql/plugin/debug/innodb_engine.so
/usr/lib64/mysql/plugin/debug/libdaemon_example.so
/usr/lib64/mysql/plugin/debug/libmemcached.so
/usr/lib64/mysql/plugin/debug/mypluglib.so
/usr/lib64/mysql/plugin/debug/mysql_no_login.so
/usr/lib64/mysql/plugin/debug/qa_auth_client.so
/usr/lib64/mysql/plugin/debug/qa_auth_interface.so
/usr/lib64/mysql/plugin/debug/qa_auth_server.so
/usr/lib64/mysql/plugin/debug/semisync_master.so
/usr/lib64/mysql/plugin/debug/semisync_slave.so
/usr/lib64/mysql/plugin/debug/test_udf_services.so
/usr/lib64/mysql/plugin/debug/validate_password.so
/usr/lib64/mysql/plugin/innodb_engine.so
/usr/lib64/mysql/plugin/libdaemon_example.so
/usr/lib64/mysql/plugin/libmemcached.so
/usr/lib64/mysql/plugin/mypluglib.so
/usr/lib64/mysql/plugin/mysql_no_login.so
/usr/lib64/mysql/plugin/qa_auth_client.so
/usr/lib64/mysql/plugin/qa_auth_interface.so
/usr/lib64/mysql/plugin/qa_auth_server.so
/usr/lib64/mysql/plugin/semisync_master.so
/usr/lib64/mysql/plugin/semisync_slave.so
/usr/lib64/mysql/plugin/test_udf_services.so
/usr/lib64/mysql/plugin/validate_password.so
/usr/sbin/mysqld
/usr/sbin/mysqld-debug
/usr/share/doc/mysql-community-server-5.6.34
/usr/share/doc/mysql-community-server-5.6.34/COPYING
/usr/share/doc/mysql-community-server-5.6.34/ChangeLog
/usr/share/doc/mysql-community-server-5.6.34/INFO_BIN
/usr/share/doc/mysql-community-server-5.6.34/INFO_SRC
/usr/share/doc/mysql-community-server-5.6.34/README
/usr/share/doc/mysql-community-server-5.6.34/my-default.cnf
/usr/share/man/man1/innochecksum.1.gz
/usr/share/man/man1/my_print_defaults.1.gz
/usr/share/man/man1/myisam_ftdump.1.gz
/usr/share/man/man1/myisamchk.1.gz
/usr/share/man/man1/myisamlog.1.gz
/usr/share/man/man1/myisampack.1.gz
/usr/share/man/man1/mysql.server.1.gz
/usr/share/man/man1/mysql_convert_table_format.1.gz
/usr/share/man/man1/mysql_fix_extensions.1.gz
/usr/share/man/man1/mysql_install_db.1.gz
/usr/share/man/man1/mysql_plugin.1.gz
/usr/share/man/man1/mysql_secure_installation.1.gz
/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz
/usr/share/man/man1/mysql_upgrade.1.gz
/usr/share/man/man1/mysql_zap.1.gz
/usr/share/man/man1/mysqlbug.1.gz
/usr/share/man/man1/mysqld_multi.1.gz
/usr/share/man/man1/mysqld_safe.1.gz
/usr/share/man/man1/mysqldumpslow.1.gz
/usr/share/man/man1/mysqlhotcopy.1.gz
/usr/share/man/man1/mysqlman.1.gz
/usr/share/man/man1/mysqltest.1.gz
/usr/share/man/man1/perror.1.gz
/usr/share/man/man1/replace.1.gz
/usr/share/man/man1/resolve_stack_dump.1.gz
/usr/share/man/man1/resolveip.1.gz
/usr/share/man/man8/mysqld.8.gz
/usr/share/mysql/SELinux/RHEL4/mysql.fc
/usr/share/mysql/SELinux/RHEL4/mysql.te
/usr/share/mysql/dictionary.txt
/usr/share/mysql/fill_help_tables.sql
/usr/share/mysql/innodb_memcached_config.sql
/usr/share/mysql/magic
/usr/share/mysql/my-default.cnf
/usr/share/mysql/mysql-log-rotate
/usr/share/mysql/mysql_security_commands.sql
/usr/share/mysql/mysql_system_tables.sql
/usr/share/mysql/mysql_system_tables_data.sql
/usr/share/mysql/mysql_test_data_timezone.sql
/var/lib/mysql
/var/lib/mysql-files
/var/run/mysqld



4. -p オプション


引数に rpm パッケージファイル(拡張子が「.rpm」のファイル)を指定するときに必要
・インターネット上にある rpm パッケージファイルの URL を指定したり、ダウンロードした rpm ファイルを指定するときに使用
・yum にはない機能
・yum ではリポジトリに含まれないパッケージに対してコマンドを実行できないため、リポジトリに含まれないパッケージを検索する際このオプションが役に立つ
・Webtatic リポジトリ(正確にはリポジトリの場所を示した repo ファイル)は rpm 形式のパッケージとして提供している
$ rpm -qpl mysql-community-server-5.6.34-2.el6.x86_64
エラー: mysql-community-server-5.6.34-2.el6.x86_64 のオープンに失敗: そのようなファイルやディレクトリはありません



5. -i オプション(information の略)


パッケージの詳細情報を表示
・「yum info」と似ているが、表示情報は異なる
・このパッケージに依存関係があることは分かるが、依存関係を解決することは残念ながら出来ない
・そのため、依存パッケージを取得してからもう一度インストールし、他にもまだ依存関係があるかどうかを確認するという作業を、すべての依存関係が満たされるまで繰り返す必要がある

すべての依存関係が満たされている場合
・インストールするパッケージのリストを rpm コマンドで指定すると、すべてのパッケージが正しい順序でインストールされる
・従って、少なくともパッケージを手作業で 1 つひとつ正しい順序でインストールする必要はない
$ rpm -qi php70-php-mysqlnd-7.0.14-1.el6.remi.x86_64
                                                                                               
Name        : php70-php-mysqlnd            Relocations: (not relocatable)
Version     : 7.0.14                            Vendor: Remi Collet
Release     : 1.el6.remi                    Build Date: 2016年12月07日 17時33分37秒
Install Date: 2016年12月08日 22時55分39秒      Build Host: builder.remirepo.net
Group       : Development/Languages         Source RPM: php70-php-7.0.14-1.el6.remi.src.rpm
Size        : 421407                           License: PHP
Signature   : DSA/SHA1, 2016年12月07日 17時34分54秒, Key ID 004e6f4700f97f56
Packager    : https://blog.remirepo.net/
URL         : http://www.php.net/
Summary     : A module for PHP applications that use MySQL databases
Description :
The php70-php-mysqlnd package contains a dynamic shared object that will add
MySQL database support to PHP. MySQL is an object-relational database
management system. PHP is an HTML-embeddable scripting language. If
you need MySQL support for PHP applications, you will need to install
this package and the php package.

This package use the MySQL Native Driver


パッケージのインストール(またはアップデート)

 閲覧数:135 投稿日:2016-12-24 更新日:2016-12-30 

リポジトリに含まれていないパッケージをインストール


yum
・×

rpm
・◯


-i オプション(install の略)


パッケージをインストール


-v オプション(verbose の略)


詳細なログ表示


-h オプション(hash mark の略)


進捗状況を表示


使用例


# rpm -ivh http://repo.webtatic.com/yum/centos/5/latest.rpm


-U オプション


既に入っているパッケージをアップデート
・パッケージが既に入っている場合にはアップデート
・入っていない場合には新規インストール
※実際にはアップデートでも、新規インストールする際、使うことが多い

使用例


# rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm


パッケージのアンインストール

 閲覧数:143 投稿日:2016-12-31 更新日:2017-01-01 

-eオプション


# rpm -e パッケージ名
# rpm -e vim-common





週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新