このページではLinuxで動作する自宅サーバーのアップデートを行うyumの設定とアップデート方法について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
CentOS5.7インストール後の設定

インストール後の設定

ログインシステムの変更

ユーザーアカウントの作成

X-Windowと通信の確認

簡易テキストエディタ"nano"

ネットワークの詳細設定

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

公開のためのルーター設定

ダイナミックDNSの登録と設定

ダイナミックDNSの自動更新


アップデートプログラム"yum"について

最近の WindowsOS や MacintoshOS などの クライアント機 は、インターネットに常時接続して使用するのが一般的になっています。

そして OS だけではなく、 インストール 済みの アプリケーション に対して、それらのメーカーや ディストリビューター からインターネット経由でプログラムを アップデート するサービスが一般的になっています。

CentOS5 にも同様のサービスがいくつか準備されていますが、標準でOSのインストールを行うと yum というプログラムのアップデートをサポートするアプリケーションがインストールされていますから、これをそのまま利用しましょう。

yumは、プログラムのアップデートに際して、

1.インターネット上の サーバー に置かれているCentOS5関連の最新プログラムのバージョンと、現在の稼働中のプログラムのバージョンを比較する。

2.バージョンアップ可能なプログラムを ダウンロード する。

3.プログラムをインストールしてアップデートを行う。

という作業を支援します。

その他にも、稼働中のシステムにインストールされていないアプリケーションを新規にインストールしたり、逆に アンインストール したりと、様々な作業をこなすことができる便利なアプリケーションです。

"yum"の設定

yum は コマンド 入力で手動操作することもできますし、 デーモン として動作させて自動 アップデート を行わせることも可能です。

以下の内容は最新(最終)バージョンである CentOS5.7 に基づいています。バージョンによっては内容が異なることがありますので注意してください。

CentOS5 の yumは デフォルト で、 "/etc/yum.conf" を基本設定ファイルとして参照します。

では、とりあえずその内容を確認してみましょう。

nanoエディタ nanoエディタについて で"/etc/yum.conf"を開いてみてください nanoエディタの使い方へ 。

[tanaka@web1 ~]$ su -Enter
パスワード: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/yum.confEnter 設定ファイルを"nano"で開きます。

↓

デフォルトのyum.conf
デフォルトの"yum.conf"

このように、 "/etc/yum.conf" にはyumの基本的な振る舞いに関する一般的な設定が記述されているわけですが、内容は特に変更する必要はありません。

そして、 赤線 の部分に示しているとおり、yumは "/etc/yum.repos.d" というディレクトリ以下の "*.repo" というファイルを参照して動作します。

では "/etc/yum.repos.d" 以下の内容と、試みに一つファイルの内容を確認してみましょう。

Ctrl + x でnanoエディタを閉じ、以下のように操作してみてください。

[root@web1 ~]# ls -l /etc/yum.repos.d/Enter ディレクトリ以下を一覧します。 lsコマンドについて
合計 36
-rw-r--r-- 1 root root 1926 8月 29 20:00 CentOS-Base.repo
-rw-r--r-- 1 root root 631 8月 29 20:00 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 626 8月 29 20:00 CentOS-Media.repo
-rw-r--r-- 1 root root 5390 8月 29 20:00 CentOS-Vault.repo
[root@web1 ~]# nano /etc/yum.repos.d/CentOS-Base.repoEnter

↓

/etc/yum.repos.d/CentOS-Base.repoの内容
"/etc/yum.repos.d/CentOS-Base.repo"の内容

このように、 "/etc/yum.repos.d/CentOS-Base.repo" にはCentOSのオフィシャルサーバー上にある URL のリストが記述されていて、アップデートに利用できるようになっています。

その他の設定ファイルについてはそれぞれ、 "/etc/yum.repos.d/CentOS-Debuginfo.repo" はデバッグ情報、 "/etc/yum.repos.d/CentOS-Media.repo" は、アップデートプログラムを予め 構築中のLinuxサーバー 上にダウンロードしておき、これを利用してアップデートを行うための設定、 "/etc/yum.repos.d/CentOS-Vault.repo" は、旧バージョンのプログラムを参照するための記述、となります。

以前、CentOSのリポジトリは数が少なく、非常に込み合っていましたので、CentOS5.5の解説のころまでは 理化学研究所のリポジトリ を指定した設定ファイルの記述を紹介していましたが、近年はリポジトリの数も増え、デフォルト設定のままでも大丈夫になりました。

CentOSの リポジトリ は非常に数が多く、yumはアップデートの要求先を適当に分散してアクセスするようになっていますから、個々の "/etc/yum.repos.d/CentOS-????.repo" を書き換えたり、修正したりする必要はありません。

ただし、yumによるアップデートには、CentOS5の中核ともいえる カーネル のアップデートも含まれていて、安易にアップデートを行うのは好ましくありません。

このように後からくっついてしまったバグを、揶揄的に 「エンバグ」 と呼ぶことがあります。

また、アップデートは本来、 バグ を修正するのが主な目的なのですが、そのバグを修正したが故に別のバグが発生することがあります。

個々の アプリケーション ならばともかく、カーネルのアップデートプログラムにバグがあったら、システムそのものの セキュリティ や安定性に問題が出るかもしれません。

そのため、解説書などで、

「充分に検証されるまでカーネルのアップデートは控えることが望ましい。」

という記述を良く見かけます。

ただ、CentOS5は開発やテストを目的とした ディストリビューション ではありません。

CentOS5とはどういうOSか でも説明しているとおり、実用 OS としてリリースされている RHEL の クローン です。

従って、 RHL や FedoraCore のように、 「多少問題はあるかもしれませんが、最先端の技術に触れてみてください。」 というスタンスでアップデートされるものではありませんから、カーネルのアップデートについても必要以上に神経質になることはないと思います。

それよりもむしろ、現在の目的がサーバーであることを考えれば、やはりセキュリティを重視してカーネルのアップデートは積極的に行うべきでしょう。

「でもやっぱり心配...。」

という慎重な方は、 "/etc/yum.conf" の[main]のセクション以下に、

exclude=kernel*

と記述しておいてください。"kernel"で始まるプログラムのアップデートは行われなくなります。もちろんこの場合、カーネルのアップデートが必要な別のアプリケーションのアップデートも行われなくなります。

また、yumによるアップデートを行うためには、アップデートするプログラムが改ざんされていないことを確認するための GPGキー をCentOS5のシステムにインポートしておく必要がありますが、 "/etc/yum.repos.d/CentOS-Base.repo" の中にインポートするGPGキーのURLが記述してありますので、最初にアップデートを行うときに自動的にインポートされます。

このページの先頭へ↑

"yum-updatesd"デーモンは「動作させない」が安全

CentOS5 の yum には、自動アップデートのための yum-updatesd デーモン が予め準備されています。

yum-updatesd は設定ファイル "/etc/yum/yum-updatesd.conf" の記述に従って動作しますが、 デフォルト ではアップデート情報のみを取得するようになっています。

これを適切に設定することで、アップデートプログラムのダウンロードからアップデート作業までを完全に自動で行うこともできます。

このようなプログラムの自動アップデートは、 WindowsOS や MacintoshOS などではお馴染みの機能ですが、CentOS5を サーバー として使用する場合は 自動アップデートは避けるようにします 。

yum-updatesdデーモンをフルに動作させていれば、 アップデート プログラムがリリースされればいち早くアップデートを行ってくれますから、 セキュリティ の改善や バグ の解消だけを考えれば安心です。

しかし、そのアップデート中に 停電 という事態に見舞われると、修復できない不具合が起こってしまう可能性が非常に高くなります。

最近は電力事情が良くなって滅多に停電などしなくなりましたが、例えば真夏日の需要過多による電圧低下や、台風、豪雨、積雪などが原因の停電はなくなった訳ではありません。

またご家庭によっては、電気を使いすぎてブレーカーが落ちるとか、設置場所によっては、誤ってホスト機のプラグを抜かれてしまったりすることもあるでしょう。

あたりまえの話ですが、yum-updatesdデーモンはそういった諸々の事情は一切考慮しませんから、暑かろうが寒かろうが、外が吹雪いていようが、子供たちが走り回っていようが、アップデートプログラムが見つかれば忠実にアップデート作業を行ってしまいます。

というわけですから、yumによるアップデート作業は、

「停電やブレーカーダウン、電源切断の恐れのない時間帯を選んで、手動で行う。」

のが安全だといえるでしょう。

yum-updatesdはデフォルトで稼動していますから、これを停止するには、"root" アカウント から、起動 スクリプト "/etc/init.d/yum-updatesd" を "stop" オプションで停止します。

[root@web1 ~]# /etc/init.d/yum-updatesd stopEnter

ただし、これだけでは ホスト機 を再起動するたびに同じ作業をしなければなりませんから、 ntsysv でデーモンの起動設定画面を開いて"yum-updatesd"のチェックをはずしておきます。これでシステム起動時にyum-updatesdが起動しないようになります。

[root@web1 ~]# ntsysvEnter

↓

ntsysvによる設定画面

もちろんCentOS5を クライアント 用途で利用する場合には、自動アップデートが望ましいことはいうまでもありません。

このページの先頭へ↑

"yum"による手動アップデート

CentOS5 は、リリースから既に一年以上経過している ディストリビューション です。

従って、もうかなり バグ 修正も進んでいますので、リリース直後のように頻繁に アップデート プログラムが準備されることはなくなっています。

というわけで、もはや「一刻を争うようなアップデート」はほとんどあり得ないと思われますから、 yum による手動アップデートは、一月に一回程度行えば良いでしょう。

yumを使う場合には、"root" アカウント から、まず、

yum list を初めて実行するときは、最初にすべてのパッケージのヘッダ情報をダウンロードしますから少し時間がかかります。

yum list Enter

と実行します。

[root@web1 ~]# yum listEnter
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: data.nicehosting.co.kr
* extras: data.nicehosting.co.kr
* updates: data.nicehosting.co.kr
Installed Packages
Deployment_Guide-ja-JP.noarch      5.2-11.el5.centos       installed
GConf2.i386               2.14.0-9.el5         installed
GConf2-devel.i386            2.14.0-9.el5         installed
 しばらくこういう表示が続きます(中略)。
yum-versionlock.noarch          1.1.16-16.el5.centos     base
yumex.noarch               2.0.3-2.el5.centos      extras
zsh-html.i386              4.2.6-5.el5          base
[root@web1 ~]#

すると、yumで利用可能な ソフトウェア パッケージの一覧を取得することができます。

続いて、

yum check-update Enter

と実行します。

[root@web1 ~]# yum check-updateEnter
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: data.nicehosting.co.kr
* extras: data.nicehosting.co.kr
* updates: data.nicehosting.co.kr

OpenIPMI.i386             2.0.16-11.el5_7.2         updates
OpenIPMI-libs.i386           2.0.16-11.el5_7.2         updates
autofs.i386              1:5.0.1-0.rc2.156.el5_7.4     updates
 しばらくこういう表示が続きます(中略)。
xorg-x11-server-Xvfb.i386       1.1.1-48.76.el5_7.5        updates
xulrunner.i386             1.9.2.24-2.el5_7         updates
xulrunner-devel.i386          1.9.2.24-2.el5_7         updates
[root@web1 ~]#

すると、既に インストール されているパッケージのバージョンと、サーバー上のパッケージのバージョンが比較され、アップデート可能なパッケージのみが表示されます。

そして最後に、

yum update Enter

を実行します。

[root@web1 ~]# yum updateEnter
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: data.nicehosting.co.kr
* extras: data.nicehosting.co.kr
* updates: data.nicehosting.co.kr
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package OpenIPMI.i386 0:2.0.16-11.el5_7.2 set to be updated
---> Package OpenIPMI-libs.i386 0:2.0.16-11.el5_7.2 set to be updated
---> Package autofs.i386 1:5.0.1-0.rc2.156.el5_7.4 set to be updated
 しばらくこういう表示が続きます(中略)。
xulrunner          i386  1.9.2.24-2.el5_7      updates  12 M
xulrunner-devel       i386  1.9.2.24-2.el5_7      updates 4.1 M

Transaction Summary ================================================================================
Install    2 Package(s)
Upgrade   115 Package(s)

Total download size: 251 M
Is this ok [y/N]:

すると確認の プロンプト が表示されますので、アップデートを実行してよければ y → Enter を、中止したければ n → Enter とタイプします。

y → Enter を実行するとパッケージのダウンロードが行われた後、以下のようなプロンプトが表示されます。

.
.
.

(116/117): glibc-common-2.5-65.el5_7.1.i386.rpm     | 16 MB   02:38
(117/117): kernel-2.6.18-274.12.1.el5.i686.rpm      | 18 MB   03:02
--------------------------------------------------------------------------------
Total                      105 kB/s | 251 MB   40:36
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID e8562897
updates/gpgkey                      | 1.5 kB   00:00
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]:
CentOS5で
サーバー構築なら
これがベストかな?
↓

つまり、 "/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5" の中に記述されている GPGキー から認証のためのキーをインポートしていいか?。という問いかけですからインポートしてアップデートを継続してよければ y → Enter を、中止したければ n → Enter とタイプします。パッケージ相互の依存性がチェックされたあとアップデートが実行されます。

初めてアップデートを行うときは、アップデートパッケージがたくさんありますので、結構時間がかかるかもしれません。プロンプトが表示されたらアップデートは終了です。

次回からは、アップデートするパッケージは非常に少なくなるはずですので、リスト取得やチェックを省略して、いきなり、

yum update

を実行しても大丈夫でしょう。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System