このページではLinuxで動作する自宅サーバーアップデートを行うyum設定とアップデート方法について初心者/ビギナー向けに解説します。
CentOS5のセットアップ
CentOS5インストール後の設定

インストール後の設定

ログインシステムの変更

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

X-Windowと通信の確認

簡易テキストエディタの導入

ネットワークの詳細設定

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

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

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

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

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

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

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

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

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

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

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

ルミカショップへようこそ
管理人がお手伝いしたサイトです。 一度お越しくださいね!。

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

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

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

このページの先頭へ↑

"yum"の設定

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

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

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

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

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

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


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

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

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

では "/etc/yum.repos.d" 以下の内容を確認してみましょう。

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

[root@web1 ~]# ls -l /etc/yum.repos.d/Enter ディレクトリ以下を一覧します。 lsコマンドについて
合計 16
-rw-r--r-- 1 root root 2049 11月 23 10:32 CentOS-Base.repo
-rw-r--r-- 1 root root 622 11月 23 10:32 CentOS-Media.repo
[root@web1 ~]# pico /etc/yum.repos.d/CentOS-Base.repoEnter


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

もうひとつのファイルも開いてみましょう

[root@web1 ~]# pico /etc/yum.repos.d/CentOS-Media.repoEnter


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

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

一方の "/etc/yum.repos.d/CentOS-Media.repo" は、アップデートプログラムを予め 構築中のLinuxサーバー 上にダウンロードしておき、これを利用してアップデートを行うための設定です。

アップデートプログラムは個々に修正が行われるごとにサーバーにアップロードされますから、まとめてダウンロードしておいて後からアップデートを行うのは二度手間です。従って "/etc/yum.repos.d/CentOS-Media.repo" は今回は利用しませんのでそのままで構いません。

さて、海外のアップデートサーバーは込み合っていてアップデート作業に時間がかかってしまいますから、 "/etc/yum.repos.d/CentOS-Base.repo" の内容を修正して、国内の高速なサーバーである理化学研究所のFTPサーバー 理化学研究所のFTPサーバーについて に接続するように設定しましょう。

アップデートサーバーリストを示す "mirrorlist=" の前に "#" を付けて無効化し、 "baseurl=" の前の "#" をはずして有効化し、 "gpgkey=" とともに理化学研究所のURLを記述すればOKです。

以下に修正後の "/etc/yum.repos.d/CentOS-Base.repo" の内容を示します。


# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# 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]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
#[centosplus]
#name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
#gpgcheck=1
#enabled=0
#gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

いちいちタイプするのが面倒という方は、一度"CentOS-Base.repo"の内容を、

[root@web1 root]# echo > /etc/yum.repo/CentOS-Base.repoEnter

で全部消去し、まっさらになった"CentOS-Base.repo"をpicoエディタで開き、

をクリックして開き、内容をコピー&ペーストしてしまってもOKです。

修正が終わったら Ctrl + x とタイプし、 y とタイプしてそのまま Enter をタイプして保存してください。

さて、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
Loading "installonlyn" plugin
Setting up repositories
addons          100% |=========================| 951 B  00:00
updates          100% |=========================| 951 B  00:00
base           100% |=========================| 1.1 kB  00:00
extras          100% |=========================| 1.1 kB  00:00
Reading repository metadata in from local files
Installed Packages
Deployment_Guide-en-US.noarch      5.1.0-11.el5.centos.1 installed
Deployment_Guide-ja-JP.noarch      5.1.0-11.el5.centos.1 installed
GConf2.i386               2.14.0-9.el5      installed
 しばらくこういう表示が続きます(中略)。
yum-updateonboot.noarch         1.0.4-3.el5.centos.2  base
yum-utils.noarch             1.0.4-3.el5.centos.2  base
yum-versionlock.noarch          1.0.4-3.el5.centos.2  base
yumex.noarch               2.0.3-2.el5.centos   extras
zsh-html.i386              4.2.6-1        base
[root@web1 ~]#

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

続いて、

yum check-update Enter

と実行します。

[root@web1 ~]# yum check-updateEnter
Loading "installonlyn" plugin
Setting up repositories
Reading repository metadata in from local files

autofs.i386               1:5.0.1-0.rc2.55.el5.3 updates
cairo.i386                1.2.4-3.el5_1     updates
cups.i386                1:1.2.4-11.14.el5_1.6 updates
 しばらくこういう表示が続きます(中略)。
xorg-x11-drv-keyboard.i386        1.1.0-3        updates
xorg-x11-server-Xnest.i386        1.1.1-48.26.el5_1.5  updates
xorg-x11-server-Xorg.i386        1.1.1-48.26.el5_1.5  updates
xorg-x11-server-Xvfb.i386        1.1.1-48.26.el5_1.5  updates
[root@web1 ~]#

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

そして最後に、

yum update Enter

を実行します。

[root@web1 ~]# yum updateEnter
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for squid to pack into transaction set.
squid-2.6.STABLE6-5.el5_1 100% |=========================| 139 kB  00:00
---> Package squid.i386 7:2.6.STABLE6-5.el5_1.2 set to be updated
 しばらくこういう表示が続きます(中略)。
xorg-x11-server-Xorg  i386   1.1.1-48.26.el5_1.5 updates      3.2 M
xorg-x11-server-Xvfb  i386   1.1.1-48.26.el5_1.5 updates      1.6 M

Transaction Summary
=============================================================================
Install   2 Package(s)
Update   83 Package(s)
Remove    0 Package(s)

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

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

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

.
.
.

(84/85): libxml2-2.6.26-2 100% |=========================| 798 kB  00:05
(85/85): glibc-headers-2. 100% |=========================| 609 kB  00:02
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) " from http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]:

お便利サーバー構築に、
とても役に立った一冊です

つまり、 "/etc/yum.repos.d/CentOS-Base.repo" の中に記述されている URL から GPGキー をインポートしていいか?。という問いかけですからインポートしてアップデートを継続してよければ y Enter を、中止したければ n Enter とタイプします。パッケージ相互の依存性がチェックされたあとアップデートが実行されます。

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

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

yum update

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

このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
Powered by White Box Enterprise Linux