yum(Yellow dog Updater, Modified)は、RPMパッケージを操作する為のソフトウェア。 yumでは、依存関係があるパッケージも自動的にインストールされる。また、yumを利用する事によって、セキュリティーホールのアップデートや、バグフィックスパッケージも、より簡単に行う事が可能。さらには、システム全体のアップデートも、より簡単に行う事が可能。
■ レポジトリについて
RedHatのサポートするEPELとCentOSで提供されていないパッケージが多く提供されているRepoForgeを追加する事にする。
Extra Packages for Enterprise Linux (EPEL) とは従来 Fedora だけに提供されていた Fedora Extras のパッケージを Red Hat Enterprise Linux (RHEL) に提供することで、 Fedora から RHEL への移行や、 Fedora から CentOS や Scientific Linux 等の RHEL クローンへの移行を容易にするためのプロジェクト。Repoforgeとは、以前のRPMforgeの新しいプロジェクト名で、CentOSで提供されていないパッケージが多く提供されている。なお、標準リポジトリとEPELリポジトリ、Repoforgeの両方で提供されるパッケージについては、標準リポジトリのパッケージが優先されるようにyum-prioritiesプラグインを導入する。
■ yum-prioritiesのインストール
yum-plugin-prioritiesとは、サードパーティ製のリポジトリを追加した際にどちらを優先するか優先順位をつけるプラグイン。
[root@server1 ~]# yum -y install yum-plugin-priorities
設定ファイル/etc/yum/pluginconf.d/priorities.confを変更
[root@server1 ~]# vi /etc/yum/pluginconf.d/priorities.conf [main] enabled = 1 check_obsoletes = 1 ← 追加
■ CentOS-Base.repoの編集
CentOS-Base.repoは優先度を高く(priority=1)しておく。
[root@server1 ~]# vi /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] priority=1 ← 追加 priorityとは優先度で、1の方が優先度は高くなる。(未設定の場合は99) name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates [updates] priority=1 ← 追加 name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful [extras] priority=1 ← 追加 name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] priority=1 ← 追加 name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=1 ← 0から1に変更 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
■ EPELリポジトリのインストール
※このサイトのphpMyAdmin、Clam AntiVirusはEPELリポジトリのものを使っている。
[root@server1 ~]# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 [root@server1 ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm [root@server1 ~]# rm -f epel-release-* ← ダウンロードしたファイルを削除
※64Bit版はhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmこちら
■ epel.repoを確認
EPELは優先度を低く(priority未設定)して有効(enabled=1)に設定。
[root@server1 ~]# vi /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 ← 1になってることを確認 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 6 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1
■ Repoforgeリポジトリのインストール
※このサイトのAwstatsは Repoforgリポジトリのものを使っている
[root@server1 ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt [root@server1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm [root@server1 ~]# rm -f rpmforge-release-* ← ダウンロードしたファイルを削除
※64Bit版はhttp://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmこちら
■ Repoforgeを確認
Rpmforgeは必要なときだけ使うので優先度を高く(priority=1)して無効(enabled=0)に設定。
[root@server1 ~]# vi /etc/yum.repos.d/rpmforge.repo ### Name: RPMforge RPM Repository for RHEL 6 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 0 ← 0 必要なときだけに 1 に設定 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 priority = 1 ← 追加 1の方が優先度は高くなる。(未設定の場合は99) [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-testing] name = RHEL $releasever - RPMforge.net - testing baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-testing #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1
■ yumのデータベース情報更新
ローカルに保存されているrpmヘッダ情報を最新の情報に更新。
yumのデータベース情報更新 [root@server1 ~]# yum list インストールパッケージの確認 [root@server1 ~]# yum list installed
■ アップデート情報の確認
アップデート情報の確認 [root@server1 ~]# yum check-update
■ 一括アップデート
インストールされているパッケージを全てアップデート。
パッケージの一括アップデート [root@server1 ~]# yum update アップデートしてよいかの問い合わせに全て" y "で回答するためには -y オプションを指定。 パッケージの一括アップデート [root@server1 ~]# yum -y update
■ yumによるパッケージ更新時にエラーが表示される場合
yumコマンドでパッケージの更新を行った際に、エラーが表示されることがある。これはyumのデータベースが壊れていることが考えられるので、以下のコマンドを実行してyumのデータベースをクリアしてみる。
[root@server1 ~]# yum clean all [root@server1 ~]# yum update
■ その他のコマンド
パッケージのインストール [root@server1 ~]# yum install パッケージ名 パッケージのアップデート [root@server1 ~]# yum update パッケージ名 パッケージの検索 [root@server1 ~]# yum search パッケージ名 パッケージの詳細表示 [root@server1 ~]# yum info パッケージ名 パッケージのアンインストール [root@server1 ~]# yum remove パッケージ名
■ yumのパッケージ自動更新設定
CentOS 5 は yum-updatesd だったが CentOS 6 では yum-cron に変わったので yum-cron をインストール。
yum-cron のインストール [root@server1 ~]# yum -y install yum-cron パッケージ自動更新 yum-cron の起動 [root@server1 ~]# /etc/rc.d/init.d/yum-cron start 夜間 yum 更新の有効化中: [ OK ] パッケージ自動更新 yum-cron の自動起動設定 [root@server1 ~]# chkconfig yum-cron on [root@server1 ~]# chkconfig --list yum-cron yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off サーバ管理に必要なベースパッケージ群と開発ツールパッケージ群をインストール [root@server1 ~]# yum -y groupinstall "Base" "Development tools"