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

インストール後の設定

ログインシステムの変更

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

X-Windowと通信の確認

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

ネットワークの詳細設定

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

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

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

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

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

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

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

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

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

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

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

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

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

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

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

このページの先頭へ↑

"yum"の設定

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

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

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

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

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

[tanaka@web1 ~]$ su -Enter
Password: "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 2490 11月 20 00:08 CentOS-Base.repo
-rw-r--r-- 1 root root 610 11月 20 00:08 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-centos4
priority=1
protect=1

#released updates
[update]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasev
er&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-centos4
priority=1
protect=1

#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-centos4
priority=1
protect=1

#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-centos4
priority=1
protect=1

#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-centos4
#priority=2
#protect=1

#contrib - packages by Centos Users
#[contrib]
#name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/contrib/$basearch/
#gpgcheck=1
#enabled=0
#gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-centos4
#priority=2
#protect=1

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

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

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

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

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

さて、yumによるアップデートには、CentOS4の中核ともいえる カーネル のアップデートも含まれています。

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

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

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

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

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

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

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

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

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

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

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

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

exclude=kernel*

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

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

このページの先頭へ↑

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

yum デーモン として動作させておけば、デーモンが自動的にアップデートの可否をチェックして、アップデート作業まで自動的に行います。

yumデーモンを起動するには、"root" アカウント から、起動スクリプト "/etc/init.d/yum" "start" オプションで起動します。

[root@web1 ~]# /etc/init.d/yum startEnter

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

[root@web1 ~]# ntsysvEnter


ntsysvによる設定画面

先に説明しておいて「何を今更!」と思われるかもしれませんが、できれば yumデーモンは動作させないこと をお勧めします。

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

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

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

お母さんに部屋の掃除を任せているとか、元気の余っている子供たちが家の中のあちこちに出没するとか、そういう環境は危険ですね。

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

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

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

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

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

このページの先頭へ↑

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

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

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

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

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

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

yum list Enter

と実行します。

[root@web1 ~]# yum listEnter
Setting up repositories
addons          100% |=========================| 951 B  00:00
base           100% |=========================| 1.1 kB  00:00
update          100% |=========================| 951 B  00:00
extras          100% |=========================| 1.1 kB  00:00
Reading repository metadata in from local files
primary.xml.gz      100% |=========================| 157 B  00:00
primary.xml.gz      100% |=========================| 593 kB  00:00
base   : ################################################## 1552/1552
 しばらくこういう表示が続きます(中略)。
yum-utils.noarch             0.5-2.el4.centos    extras
yumex.noarch               1.0.2-1.0.c4      extras
zisofs-tools.i386            1.0.6-1        base
zsh-html.i386              4.2.0-4.EL.4.5     base
[root@web1 ~]#

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

続いて、

yum check-update Enter

と実行します。

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

audit.i386                1.0.15-3.el4_6.1    update
audit-libs.i386             1.0.15-3.el4_6.1    update
compat-openldap.i386           2.1.30-8.el4_6.2    update
e2fsprogs.i386              1.35-12.11.el4_6.1   update
 しばらくこういう表示が続きます(中略)。
xorg-x11-tools.i386           6.8.2-1.EL.33.0.2   update
xorg-x11-twm.i386            6.8.2-1.EL.33.0.2   update
xorg-x11-xauth.i386           6.8.2-1.EL.33.0.2   update
xorg-x11-xfs.i386            6.8.2-1.EL.33.0.2   update
[root@web1 ~]#

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

そして最後に、

yum update Enter

を実行します。

[root@web1 ~]# yum updateEnter
Setting up Update Process
Setting up repositories
addons          100% |=========================| 951 B  00:00
base           100% |=========================| 1.1 kB  00:00
update          100% |=========================| 951 B  00:00
extras          100% |=========================| 1.1 kB  00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for openldap-clients to pack into transaction set.
openldap-clients-2.2.13-8 100% |=========================| 27 kB  00:00
---> Package openldap-clients.i386 0:2.2.13-8.el4_6.2 set to be updated
 しばらくこういう表示が続きます(中略)。
xorg-x11-xfs      i386    6.8.2-1.EL.33.0.2 update      323 k
Installing for dependencies:
libsmi         i386    0.4.5-2     update      2.3 M

Transaction Summary
=============================================================================
Install   5 Package(s)
Update   55 Package(s)
Remove    0 Package(s)
Total download size: 137 M
Is this ok [y/N]:

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

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

.
.
.

(60/60): xorg-x11-xfs-6.8 100% |=========================| 323 kB  00:00
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for openldap-clients-2.2.13-8.el4_6.2.i386.rpm is not installed
Retrieving GPG key from http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key <centos-4key@centos.org>"
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