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

インストール後の設定

ログインシステムの変更

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

X-Windowと通信の確認

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

ネットワークの詳細設定

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

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

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

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


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

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

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

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

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

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

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

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

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

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

"yum"の設定

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

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

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

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

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

[tanaka@web1 ~]$ su -Enter
Password: "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コマンドについて
合計 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 ~]# nano /etc/yum.repos.d/CentOS-Base.repoEnter


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

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

[root@web1 ~]# nano /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"をnanoエディタで開き、

をクリックして開き、内容をコピー&ペーストしてしまっても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% |=========================| 190 B  00:00
primary.xml.gz      100% |=========================| 611 kB  00:02
base   : ################################################## 1599/1599
 しばらくこういう表示が続きます(中略)。
yum-updateonboot.noarch         0.5-2.el4.centos    extras
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

4Suite.i386               1.0-3.el4_8.1     update
PyXML.i386                0.8.3-6.el4_8.2    update
acpid.i386                1.0.3-2.el4_7.1    update
apr.i386                 0.9.4-24.9.el4_8.2   update
 しばらくこういう表示が続きます(中略)。
wget.i386                1.10.2-1.el4_8.1    update
wireshark.i386              1.0.8-1.el4_8.1    update
xmlsec1.i386               1.2.6-3.1       update
xmlsec1-openssl.i386           1.2.6-3.1       update
[root@web1 ~]#

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

そして最後に、

yum update Enter

を実行します。

[root@web1 ~]# yum updateEnter
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 wireshark to pack into transaction set.
wireshark-1.0.8-1.el4_8.1 100% |=========================| 29 kB  00:00
---> Package wireshark.i386 0:1.0.8-1.el4_8.1 set to be updated
 しばらくこういう表示が続きます(中略)。
wireshark        i386    1.0.8-1.el4_8.1 update      8.9 M
xmlsec1         i386    1.2.6-3.1    update      147 k
xmlsec1-openssl     i386    1.2.6-3.1    update       58 k

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

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

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

.
.
.

(125/125): mysql-devel-4. 100% |=========================| 2.1 MB  00:04
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for wireshark-1.0.8-1.el4_8.1.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]:
CentOS5で
サーバー構築なら
これがベストかな?

つまり、 "/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. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System