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

インストール後の設定

ログインシステムの変更

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

X-Windowと通信の確認

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

ネットワークの詳細設定

SELinuxの無効化

ファイヤーウォールの無効化

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

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

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

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


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

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

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

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

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

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

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

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

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

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

"yum"の設定

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

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

CentOS6 の 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コマンドについて
合計 12
-rw-r--r--. 1 root root 1926 12月 3 23:58 2011 CentOS-Base.repo
-rw-r--r--. 1 root root 637 12月 3 23:58 2011 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 626 12月 3 23:58 2011 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"の内容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

exclude=kernel*

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

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

このページの先頭へ↑

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

CentOS6 は、企業ユースで実績のある RedHatEnterpriseLinux クローン ディストリビューション です。

従って、リリース段階からかなり バグ 修正も進んでいますので、「一刻を争うようなアップデート」はほとんどあり得ないと思われますから、 yum による手動アップデートは、一月に一回程度行えば良いでしょう。

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

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

yum list Enter

と実行します。

[root@web1 ~]# yum listEnter
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: mirror01.idc.hinet.net
base                           | 3.7 kB   00:00
base/primary_db                     | 3.5 MB   00:00
extras                          | 3.5 kB   00:00
extras/primary_db                    | 5.4 kB   00:00
updates                         | 3.5 kB   00:00
updates/primary_db                    | 610 kB   00:00
Installed Packages
ConsoleKit.i686             0.4.1-3.el6           @anacon
da-CentOS-201112130233.i386/6.2
ConsoleKit-libs.i686          0.4.1-3.el6           @anacon
da-CentOS-201112130233.i386/6.2
 しばらくこういう表示が続きます(中略)。
zlib-static.i686            1.2.3-27.el6           base
zsh.i686                4.3.10-4.1.el6          base
zsh-html.i686              4.3.10-4.1.el6          base
[root@web1 ~]#

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

続いて、

yum check-update Enter

と実行します。

[root@web1 ~]# yum check-updateEnter
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: mirror01.idc.hinet.net

bind.i686               32:9.7.3-8.P3.el6_2.1       updates
bind-chroot.i686           32:9.7.3-8.P3.el6_2.1       updates
bind-libs.i686            32:9.7.3-8.P3.el6_2.1       updates
bind-utils.i686            32:9.7.3-8.P3.el6_2.1       updates
 しばらくこういう表示が続きます(中略)。
tomcat6-lib.noarch          6.0.24-35.el6           updates
tomcat6-servlet-2.5-api.noarch    6.0.24-35.el6           updates
xorg-x11-server-Xorg.i686       1.10.4-6.el6_2.1          updates
xorg-x11-server-common.i686      1.10.4-6.el6_2.1          updates
[root@web1 ~]#

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

そして最後に、

yum update Enter

を実行します。

[root@web1 ~]# yum updateEnter
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: mirror01.idc.hinet.net
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package bind.i686 32:9.7.3-8.P3.el6 will be updated
---> Package bind.i686 32:9.7.3-8.P3.el6_2.1 will be an update
---> Package bind-chroot.i686 32:9.7.3-8.P3.el6 will be updated
 しばらくこういう表示が続きます(中略)。
tomcat6-servlet-2.5-api noarch 6.0.24-35.el6         updates  93 k
xorg-x11-server-Xorg   i686  1.10.4-6.el6_2.1        updates 1.3 M
xorg-x11-server-common  i686  1.10.4-6.el6_2.1        updates  32 k

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

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

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

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

.
.
.

(37/39): tomcat6-servlet-2.5-api-6.0.24-35.el6.noarch.rp | 93 kB   00:00
(38/39): xorg-x11-server-Xorg-1.10.4-6.el6_2.1.i686.rpm | 1.3 MB   00:00
(39/39): xorg-x11-server-common-1.10.4-6.el6_2.1.i686.rp | 32 kB   00:00
--------------------------------------------------------------------------------
Total                      3.7 MB/s | 91 MB   00:24
警告: rpmts_HdrFromFdno: ヘッダ V4 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Package: centos-release-6-2.el6.centos.7.i686 (@anaconda-CentOS-201112130233.i386/6.2)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]:

つまり、 "/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" の中に記述されている 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