俺とyumとさくらVPS
参考にしたサイト
上記サイトはCentOSによる自宅サーバーを運営している方のサイトです。
このサイトがなかったら私はプログラマになれずにいたと思います。
で、私からプログラムをとったら、人間としての価値が半分以下になるわけです。
そういう訳でこの人のおかげで一人の人間が道を踏み外さずに済んだという、偉大な方なのです。
この場を借りてお礼申し上げます。
パッケージの数を増やす
まず現在のパッケージ数を確認します。
この時点では数が少ないです。
$ date Sat Feb 26 23:21:03 JST 2011 $ cat /etc/redhat-release CentOS release 5.5 (Final) $ yum list | wc -l 3696
アーキテクチャを確認します。
$ uname -i x86_64 $ arch x86_64 $ getconf LONG_BIT 64
Plugins:yum-priorities
リポジトリに優先度を付加するためのパッケージを導入します。
$ sudo yum -y install yum-priorities
以下の項目を追加します。
$ sudo vi /etc/yum.repos.d/CentOS-Base.repo [base] ... priority=1 [updates] ... priority=1 [addons] ... priority=1 [extras] ... priority=1 [centosplus] ... enabled=1 priority=2 [contrib] ... enabled=1 priority=3
リポジトリの優先度に関する設定は、1 〜 99 の範囲でレベルを設定します。 これらはCentOS の公式リポジトリ(base, updates, addons, extras) は優先度を最高の1にしておきます。
centosplusとcontribはデフォルトがenabled=0となっているのでこれを有効にします。優先度を少しだけ下げておきます。まあ好みの問題です。
Repositoriesを追加
rpmforge
下記ULRを参考にrpmforgeで管理しているパッケージもyumで扱えるようにします。
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
以下手順
$ cd /usr/local/src $ sudo wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm $ sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt $ sudo rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK $ sudo rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm
設定ファイル編集
$ sudo vi /etc/yum.repos.d/rpmforge.repo
以下の項目を修正します。優先順位はひとまず標準レポジトリより下げています。また、明示的にこのレポジトリを使用すると宣言しない場合はenabled(無効)にしています。
[rpmforge] enabled = 0 priority= 10 [rpmforge-extras] enabled = 0 priority= 11
epel
次のURLを参考にします。
https://fedoraproject.org/wiki/EPEL/FAQ#howtouse
以下インストール手順
$ cd /usr/local/src $ sudo wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm $ sudo rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL $ sudo rpm -K epel-release-5-4.noarch.rpm epel-release-5-4.noarch.rpm: (sha1) dsa sha1 md5 gpg OK $ sudo rpm -i epel-release-5-4.noarch.rpm
設定ファイル編集
$ sudo vi /etc/yum.repos.d/epel.repo
[epel] enabled=0 priority=20
remi
php, mysqlに強いのでremiもくわえます。公式サイトは以下
http://rpms.famillecollet.com/
インストール手順
$ cd /usr/local/src $ sudo wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-8.el5.remi.noarch.rpm $ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi $ sudo rpm -K remi-release-5-8.el5.remi.noarch.rpm remi-release-5-8.el5.remi.noarch.rpm: (sha1) dsa sha1 md5 gpg OK $ sudo rpm -i remi-release-5-8.el5.remi.noarch.rpm
設定
$ sudo vi /etc/yum.repos.d/remi.repo
[remi] enabled=0 priority=30
パッケージ数の増加を確認
標準レポジトリのみの場合と、rpmforge, epel, remiを追加した場合のパッケージ数を確認します。
$ yum list | wc -l 3699 $ yum list --enablerepo=rpmforge | wc -l 8373 $ yum list --enablerepo=epel | wc -l 9843 $ yum list --enablerepo=remi | wc -l 4003
というわけで増えました。
Plugins:fastestmirror
yum-fastestmirrorの概要を読みます。
yum searchでパッケージ名を探すと概要(Summary)が表示されます。
$ yum search yum-fastestmirror ... yum-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
installedの状態である事を確認します。
$ sudo yum list | grep yum-fastestmirror yum-fastestmirror.noarch 1.1.16-14.el5.centos.1 installed
installedと表示されていない場合はinstall
$ sudo yum -y install yum-fastestmirror |||< ** Plugins:yum-versionlock yum-updateの対象に含めたくないパッケージを指定できるようにします。 今度はyum infoで概要(Summary)だけでなく説明文(Description)も見てみます。 >|| $ yum info yum-versionlock Name : yum-versionlock Arch : noarch Version : 1.1.16 Release : 14.el5.centos.1 Size : 15 k Repo : base Summary : Yum plugin to lock specified packages from being updated URL : http://linux.duke.edu/yum/download/yum-utils/ License : GPLv2+ Description: This plugin takes a set of name/versions for packages and excludes all other : versions of those packages (including optionally following obsoletes). This : allows you to protect packages from being updated by newer versions, : for example.
インストールされているかを確認
$ sudo yum list | grep yum-versionlock yum-versionlock.noarch 1.1.16-14.el5.centos.1 base
インストール
$ sudo yum -y install yum-versionlock ... Installed: yum-versionlock.noarch 0:1.1.16-14.el5.centos.1 Complete!
versionlockしたいパッケージは以下のファイルを編集します。
$ cat /etc/yum/pluginconf.d/versionlock.conf | grep locklist locklist = /etc/yum/pluginconf.d/versionlock.list
yumをversionlockしたい場合は次のようにします。
$ sudo su # rpm -qa yum >> /etc/yum/pluginconf.d/versionlock.list # exit
Plugins:yum-changelog
show info
$ yum info yum-changelog Name : yum-changelog Arch : noarch Version : 1.1.16 Release : 14.el5.centos.1 Size : 18 k Repo : base Summary : Yum plugin for viewing package changelogs before/after updating URL : http://linux.duke.edu/yum/download/yum-utils/ License : GPLv2+ Description: This plugin adds a command line option to allow viewing package changelog : deltas before or after updating packages.
installed?
$ yum list installed yum-changelog ... Error: No matching Packages to list
install
$ sudo yum -y install yum-changelog ... Complete!
use like this
$ sudo yum --changelog update
Plugins:downloadonly
rpmパッケージをバックアップしたい場合にはこのPluginを追加します。
$ yum info yum-downloadonly Name : yum-downloadonly Arch : noarch Version : 1.1.16 Release : 14.el5.centos.1 Size : 11 k Repo : base Summary : Yum plugin to add downloadonly command option URL : http://linux.duke.edu/yum/download/yum-utils/ License : GPLv2+ Description: This plugin adds a --downloadonly flag to yum so that yum will only download : the packages and not install/update them. $ sudo yum -y install yum-downloadonly ... Complete! $ sudo yum -y install --downloadonly perl-XML-Simple --downloaddir=/tmp ... exiting because --downloadonly specified $ ls /tmp ...
Pluings:yum-cron
常駐型のyum-updatesdはメモリを消費するのでcron型のyum-cronを使用します。
またクライアントPCではなく、サーバー用途であるという前提なのでupdate対象となるパッケージをダウンロードしておきます。
$ yum info yum-cron ... $ yum list installed yum-cron ... Error: No matching Packages to list $ sudo yum -y install yum-cron ... Complete! $ sudo vi /etc/sysconfig/yum-cron CHECK_ONLY=yes DOWNLOAD_ONLY=yes
yum cron開始
$ /sbin/service yum-cron status Nightly yum update is disabled. $ sudo /sbin/service yum-cron start Enabling nightly yum update: [ OK ] $ /sbin/service yum-cron status Nightly yum update is enabled.
再起動後にもyum-cronを開始する
$ sudo /sbin/chkconfig yum-cron on $ /sbin/chkconfig --list yum-cron yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Plugins:yum-security
脆弱性の発見されたパッケージだけは仕方ないから更新するが、それ以外に余計な事をしたくない、という場合にはこちら
$ yum info yum-security ... $ yum list installed yum-security ... Error: No matching Packages to list $ sudo yum -y install yum-security ... Complete!
実行方法
$ yum --security check-update $ yum --security update
yum update
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
一通りの設定が終わったらupdateをしておきます。
$ sudo yum update
もし「You mightconsider running yum-complete-transaction first to finish them 」 と表示された場合は yum-complete-transactionを実行します。
$ sudo /usr/sbin/yum-complete-transaction
yum-updatesdをアンインストール
少ないメモリで動かすVPS環境なのでメモリをよけいに消費するyum-updatesdを削除します。
$ sudo yum -y remove yum-updatesd
以上、かけあし。
気になった事
epelを追加する際に他の方のサイトを参考にしたんですが、多数の方に以下のwarningsが見受けられました。
警告: epel-release-5-4.noarch.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
これは単純に以下の操作をしておけば良いです。
$ sudo rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL
で、installするまえに確認
$ sudo rpm -K epel-release-5-4.noarch.rpm epel-release-5-4.noarch.rpm: (sha1) dsa sha1 md5 gpg OK
まあ自分も最近までそうやってたんですが、今回警告文が表示されているのに気づいたので次から気をつけよう。