yumコマンドでパッケージ管理

RedHat系のパッケージ管理コマンド「yum」の使い方を解説します。epel、remi、rpmforgeなど外部リポジトリを追加する方法についても取り上げます。( CentOS6 上で作業します。)

目次

リポジトリとパッケージ

CentOSで PHPMySQL を利用したいときには、リポジトリ から パッケージ を取得して行う方法が手軽です。

  • リポジトリ
    • ソフトウェアが保管されている場所
  • パッケージ
    • ソフトウェアの一連のファイルをまとめたもの

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の場合

CentOS6.7ですと標準リポジトリにEPELが存在しました。そのためCentOS6.7ですと「yum install epel-release」でもepelリポジトリを追加できます。

Remiを使うならEPELも必須

RemiリポジトリからソフトウェアをインストールするためにはEPELリポジトリも必要です。そのため、EPELを追加後にRemiを追加します。

外部リポジトリをデフォルト無効に

インストール後、もう一度有効となっているリポジトリを見てみましょう。

epel remi rpmforge が追加されており、epel rpmforge はデフォルトで有効(enabled)になっているようです。

外部リポジトリは標準リポジトリに利用したいソフトがないときにだけ利用したいので、デフォルトで epelrpmforge が無効(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
よかったらシェアしてね!
目次