RedHat系のパッケージ管理コマンド「yum」の使い方を解説します。epel、remi、rpmforgeなど外部リポジトリを追加する方法についても取り上げます。( CentOS6
上で作業します。)
リポジトリとパッケージ
CentOSで PHP
や MySQL
を利用したいときには、リポジトリ
から パッケージ
を取得して行う方法が手軽です。
- リポジトリ
- ソフトウェアが保管されている場所
- パッケージ
- ソフトウェアの一連のファイルをまとめたもの
yumコマンド
を使うと事前に登録した リポジトリ
にアクセスして、パッケージ
を取得します。
その際、他のソフトウェアとの依存関係も調整してくれます。
リポジトリの追加方法
yumコマンドでアクセスするリポジトリを追加する方法を紹介します。
リポジトリを追加する理由
CentoOS6にデフォルトで登録されているリポジトリでは、PHP5.3
しか利用できないなど制限があります。PHP5.5
などの上位バージョンを利用したいときは、外部リポジトリから取得する必要があります。
現在有効なリポジトリ
リポジトリを追加する前に、下記コマンドで現在有効となっているリポジトリを見てみましょう。
yum repolist all
次の3つのリポジトリがデフォルトで有効となっているのがわかります。
- CentOS-6 – Base
- CentOS-6 – Extras
- CentOS-6 – Updates
これら3つのリポジトリは /etc/yum.repos.d/CentOS-Base.repo
で設定されています。
外部リポジトリの追加
では、外部リポジトリを追加します。
良く利用される外部リポジトリとして epel
remi
rpmforge
を追加します。
CentOS6の場合、下記コマンドを実行すると、リポジトリファイルのダウンロード、インストールが行われます。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm --upgrade --verbose --hash epel-release-6-8.noarch.rpm remi-release-6.rpm rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
CentOS6.7ですと標準リポジトリにEPELが存在しました。そのためCentOS6.7ですと「yum install epel-release」でもepelリポジトリを追加できます。
RemiリポジトリからソフトウェアをインストールするためにはEPELリポジトリも必要です。そのため、EPELを追加後にRemiを追加します。
外部リポジトリをデフォルト無効に
インストール後、もう一度有効となっているリポジトリを見てみましょう。
epel
remi
rpmforge
が追加されており、epel
rpmforge
はデフォルトで有効(enabled)になっているようです。
外部リポジトリは標準リポジトリに利用したいソフトがないときにだけ利用したいので、デフォルトで epel
と rpmforge
が無効(disabled)になるように設定します。
下記設定ファイルの enabled=1
となっている箇所を enabled=0
に書き換えると無効にすることができます。
- /etc/yum.repos.d/epel.repo
- /etc/yum.repos.d/rpmforge.repo
ダウンロードするリポジトリのURL
「有効/無効の設定」以外に「リポジトリのURLの設定」も活用する機会があるかもしれません。リポジトリ個別の設定ファイル上で、ダウンロードするリポジトリのURLを変更できます。ダウンロードでErrorがでるときなどURLの変更を試してみるのも良いです。
- baseurl:ダウンロードするリポジトリのURL
- mirrorlist:baseurlが応答しないときに使われるリポジトリのURL
設定ファイルでは変数( $releasever
$arch
$basearch
など)も利用できます。
yumコマンドの使い方
yumコマンドの使い方をまとめました。
インストール
( install )
yum install [package]
外部リポジトリを利用したいときには、以下のように --enablerepoオプション
に外部リポジトリを指定して下さい。
yum --enablerepo=epel,remi,rpmforge install パッケージ名
アンインストール
( remove )
yum remove [package]
パッケージ検索
( search or provides )
関連用語などからパッケージを検索したい場合、yum search
を利用します。
$ yum search nginx
Loaded plugins: priorities, update-motd, upgrade-helper
======================================================================================================================== N/S matched: nginx =========================================================================================================================
collectd-nginx.x86_64 : Nginx plugin for collectd
munin-nginx.noarch : Network-wide graphing framework (cgi files for nginx)
nginx-all-modules.x86_64 : A meta package that installs all available Nginx modules
nginx-mod-http-geoip.x86_64 : Nginx HTTP geoip module
nginx-mod-http-image-filter.x86_64 : Nginx HTTP image filter module
nginx-mod-http-perl.x86_64 : Nginx HTTP perl module
nginx-mod-http-xslt-filter.x86_64 : Nginx XSLT module
nginx-mod-mail.x86_64 : Nginx mail modules
nginx-mod-stream.x86_64 : Nginx stream modules
nginx.x86_64 : A high performance web server and reverse proxy server
Name and summary matches only, use "search all" for everything.
ファイル名から、そのファイルを提供しているパッケージを検索したい場合、 yum provides
を利用します。
$ yum provides */libXcursor.so.1
Loaded plugins: priorities, update-motd, upgrade-helper
libXcursor-1.1.14-2.1.9.amzn1.i686 : Cursor management library
Repo : amzn-main
Matched from:
Filename : /usr/lib/libXcursor.so.1
libXcursor-1.1.14-2.1.9.amzn1.x86_64 : Cursor management library
Repo : amzn-main
Matched from:
Filename : /usr/lib64/libXcursor.so.1
パッケージ情報表示
( info )
yum info [package]
パッケージ情報(バージョン、取得したリポジトリ名など)について表示します。インストールされてないものも表示します。
例として、nginx
のインストール状況について調べてみます。
次のようなことが読み取れます。
- バージョンが
1.10.2
であること。 - すでにインストール済みであること。
epelリポジトリ
からインストールしたこと。
全パッケージ情報を表示
( list )
yum list
リポジトリにある全てのパッケージ情報を表示します。
出力形式は以下のようになります。
name.arch [epoch:]version-release repo or @installed-from-repo
name.arch
- パッケージ名.アーキテクチャー
version-release
- リリース番号
repo
or@installed-from-repo
- パッケージをインストールするリポジトリ
- インストール済みだと@がつく。
インストール済みパッケージ表示
( list installed )
yum list installed
アップデート可能なパッケージを表示
( check-update )
yum check-update
システム全体のアップデート
( update )
yum -y update