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

インストール後の設定

ログインとアカウント作成

X-Windowと通信の確認

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

ネットワークの詳細設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

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

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

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


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

※CentOS3は、 2010年10月 をもってサポートが終了しました。今後このページは参考としてのみご覧ください。

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

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

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

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

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

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

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

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

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

"yum"の設定

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

CentOS3 のyumは、動作するときに、 "/etc/yum.conf" という設定ファイルを参照します。

デフォルト でも問題なく動作しますから、通常はこの設定ファイルを編集する必要はありません。

ただ、アップデートプログラムを参照するとき、デフォルトのままでは込み合ったCentOSのオフィシャル サーバー に接続されてしまいますので、国内の高速なサーバーである、理化学研究所のFTPサーバー 理化学研究所のFTPサーバーについて が指定されるように、"yum.conf"を編集するとよいでしょう。

"yum.conf"の編集は nano エディタで行いますが、内容を大幅に変更するかもしれませんので、 cp コマンドで設定ファイルのバックアップを作成してから、nanoエディタ nanoエディタの使い方へ で"/etc/yum.conf"を開きます。

[tanaka@web1 tanaka]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 root]# cp /etc/yum.conf /etc/yum.conf.orgEnter
[root@web1 root]# ls -dl /etc/yum.*Enter バックアップを確認します。 lsコマンドの説明
-rw-r--r--  1 root  root   1422  8月  4  2006 /etc/yum.conf
-rw-r--r--  1 root  root   1422  2月 16 18:05 /etc/yum.conf.org
 "yum.conf"と同じ容量の"yum.conf.orgが複製されました。↑
[root@web1 root]# nano /etc/yum.confEnter 設定ファイルを"nano"で開きます。

↓

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

[main]の部分は、yumの基本的な動作設定なので変更する必要はありません。[base]以下の接続先の情報だけを次のように書き換えてしまいましょう。

今回の目的はサーバーの構築ですから、基本的なパッケージグループである [base] 、 [update] 、 [addons] 、 [extras] のアップデートを有効にします。

それ以外のパッケージについては デフォルト で無効化されていますのでそのままでも構いませんが、後々利用するかもしれませんのでURLの書き換えだけは行っておきましょう。

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1

[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1

#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
gpgcheck=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/$basearch/
gpgcheck=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
gpgcheck=1

#additional packages that extend functionality of existing packages
#[centosplus]
#name=CentOS-$releasever - Plus
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
#gpgcheck=1

#packages in testing
#[testing]
#name=CentOS-$releasever - Testing
#baseurl=http://mirror.centos.org/centos/$releasever/testing/$basearch/
#gpgcheck=1

#between point release supported updates
#[fasttrack]
#name=CentOS-$releasever - Fasttrack
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/fasttrack/$basearch/
#gpgcheck=1

いちいちタイプするのが面倒という方は、一度"yum.conf"の内容を、

[root@web1 root]# echo > /etc/yum.confEnter

で全部消去し、まっさらになった"yum.conf"をnanoエディタで開き、

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

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

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

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

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

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

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

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

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

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

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

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

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

という慎重な方は、[main]のセクション以下に、

exclude=kernel*

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

また、yumによるアップデートを行うためには、アップデートするプログラムが改ざんされていないことを確認するための GPGキー をCentOS3のシステムにインポートしておく必要があります。

[root@web1 root]# rpm --import http://ftp.riken.jp/Linux/centos/RPM
-GPG-KEY-CentOS-3
Enter
[root@web1 root]#

これでyumによるアップデートの準備は終わりました。

このページの先頭へ↑

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

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

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

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

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

[root@web1 root]# ntsysvEnter

↓

ntsysvによる設定画面

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

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

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

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

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

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

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

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

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

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

このページの先頭へ↑

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

CentOS3 は、既に旧バージョンの ディストリビューション です。

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

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

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

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

yum list Enter

と実行します。

[root@web1 root]# yum listEnter
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
php-pgsql-0-4.3.2-43.ent. 100% |=========================| 6.7 kB  00:00
XFree86-xauth-0-4.3.0-126 100% |=========================| 65 kB  00:00
seamonkey-0-1.0.9-0.9.el3 100% |=========================| 19 kB  00:00
samba-common-0-3.0.9-1.3E 100% |=========================| 12 kB  00:00
 しばらくこういう表示が続きます(中略)。
xpdf                i386  1:2.02-11.el3      update
xsane                i386  0.89-3          base
xsane-gimp             i386  0.89-3          base
ypserv               i386  2.8-22          base

[root@web1 root]#

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

続いて、

yum check-update Enter

と実行します。

[root@web1 root]# yum check-updateEnter
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
Name                Arch  Version         Repo
--------------------------------------------------------------------------------
XFree86               i386  4.3.0-126.EL       update
XFree86-100dpi-fonts        i386  4.3.0-126.EL       update
XFree86-75dpi-fonts         i386  4.3.0-126.EL       update
XFree86-Mesa-libGL         i386  4.3.0-126.EL       update
 しばらくこういう表示が続きます(中略)。
util-linux             i386  2.11y-31.24       update
vixie-cron             i386  4.1-20.EL3        update
vsftpd               i386  1.2.1-3E.15       update

[root@web1 root]#

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

そして最後に、

yum update Enter

を実行します。

[root@web1 root]# yum updateEnter
Gathering header information file(s) from server(s)
Server: CentOS-3 - Addons
Server: CentOS-3 - Base
Server: CentOS-3 - Extras
Server: CentOS-3 - Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: kernel 2.4.21-53.EL.i686]
[update: php-mysql 4.3.2-43.ent.i386]
[update: cups 1:1.1.17-13.3.46.i386]
[update: XFree86-xauth 4.3.0-126.EL.i386]
[update: cyrus-sasl-gssapi 2.1.15-15.i386]
[update: samba-client 3.0.9-1.3E.14.3.i386]
[update: seamonkey-mail 1.0.9-0.9.el3.centos3.i386]
 しばらくこういう表示が続きます(中略)。
[update: cyrus-sasl-devel 2.1.15-15.i386]
[update: XFree86-font-utils 4.3.0-126.EL.i386]
[update: krb5-devel 1.2.7-67.i386]
[update: cyrus-sasl 2.1.15-15.i386]
Is this ok [y/N]:

するとパッケージ相互の依存性がチェックされたあと、最終確認の プロンプト が表示されますので、アップデートを実行してよければ y → Enter を、中止したければ n → Enter とタイプします。

初めてアップデートを行うときは、アップデートパッケージがたくさんありますので、結構時間がかかります(数十分〜1時間程度)。お茶でも飲みながら気長に待ちましょう。プロンプトが表示されたらアップデートは終了です。

CentOS5で
サーバー構築なら
これがベストかな?
↓

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

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