Scientific Linux 6.3 環境へ 6.2 環境からアップグレードする方法

標準

概要

この記事は 6.1, 6.2 環境へのアップグレードに続いた 6.3 版です。6.2, 6.2 の時と比べてバージョン指定以外、基本的にこれまでと一緒の手順です。6.0 や 6.1 から 6.2 をスキップして 6.3 に更新する時は、以前の記事の注意点を参考にしてください。

Scientific Linux 6.3 (SL 6.3) が Beta 1 -> Beta 2 -> Release Candidate 1 -> Release Candidate 2 を経て本日リリースされました。

  • Scientific Linux – Scientific Linux 6.3
    • 今日(2012-08-09)時点ではまだ Release Notes や Differences between SL6.2 and SL6.3、Changed RPM’s specific などが用意されていませんでした。そのうち掲載されるはずなので、掲載されたら目を通しておきましょう。また、上流の RHEL 6.3 のドキュメントも参考になります。

以下、重要なのでおさらいです。

Scientific Linux では /etc/yum.repos.d/sl.repo などで参照されている変数 $releasever の中身が 6 ではなく 6.2 とマイナーバージョンまで含めて定義されています。そのため、最新マイナーバージョンの yum リポジトリが参照されず、そのままでは自動的に 6.3 に更新することはできません。

これは商用製品などで特定マイナーバージョンでないと動作保証が得られない環境がある方には嬉しい仕様です。以前仕事で携わったところで、環境構築をしている方々が RHEL 5.x では自動的にマイナーバージョンが上げることを把握しておらず、タイミング良く新しいマイナーバージョンがリリースされ、その夜の自動更新でバージョンが上がってしまい問題が発生したことがあったので、そういったマイナーバージョンを固定したい環境では役立つでしょう。

一方で、ずっと古いマイナーバージョンのままにするのも良くないので、アップグレードして良いタイミングになったら次のようにしてアップグレードします。

現在バージョンの確認

現在のバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.2 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.2

変数 $release の中身が 6.2 になっています。

sl-release の更新

一気にすべてのパッケージを 6.3 のものに更新しても良いと思いますが、まずは sl-release だけを更新します。

# yum --releasever=6.3 update sl-release
Loaded plugins: fastestmirror, priorities, security
Determining fastest mirrors
 * sl: ftp.jaist.ac.jp
 * sl-fastbugs: ftp.jaist.ac.jp
 * sl-security: ftp.jaist.ac.jp
sl                                                                                               | 3.2 kB     00:00
sl/primary_db                                                                                    | 4.2 MB     00:02
sl-fastbugs                                                                                      | 2.7 kB     00:00
sl-fastbugs/primary_db                                                                           | 621 kB     00:00
sl-security                                                                                      | 2.7 kB     00:00
sl-security/primary_db                                                                           | 723 kB     00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package sl-release.x86_64 0:6.2-1.1 will be updated
---> Package sl-release.x86_64 0:6.3-1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                         Arch                        Version                      Repository               Size
========================================================================================================================
Updating:
 sl-release                      x86_64                      6.3-1                        sl                       35 k

Transaction Summary
========================================================================================================================
Upgrade       1 Package(s)

Total download size: 35 k
Is this ok [y/N]: y
Downloading Packages:
sl-release-6.3-1.x86_64.rpm                                                                      |  35 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : sl-release-6.3-1.x86_64                                                                              1/2
  Cleanup    : sl-release-6.2-1.1.x86_64                                                                            2/2

Updated:
  sl-release.x86_64 0:6.3-1

Complete!

更新されたバージョンの確認

更新されたバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.3 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.3

6.3 になりました。

すべてのパッケージを更新

最後に、残りのすべてのパッケージを更新します。

# yum update
... 省略 ...
Transaction Summary
========================================================================================================================
Install       5 Package(s)
Upgrade     150 Package(s)
Remove        2 Package(s)

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

更新時に下記のように最新の設定ファイルを別名で保存されることがあります。

  Updating   : initscripts-9.03.31-2.el6.x86_64                                                                  36/307
warning: /etc/sysctl.conf created as /etc/sysctl.conf.rpmnew

これは OS インストール後に設定を変更した設定ファイルを、RPM 更新時に上書きしてしまわないように保存されたファイルで、これが表示されるときは、RPM に含まれるデフォルトの設定ファイルに変更が加えられた時です。したがって、こういった際には rpmnew ファイルの中身を現在のものと比較して変更点を把握しておくのが好ましいです。比較しやすいように、OS インストール後に設定ファイルを編集する際は、必ず、別名でデフォルトの設定ファイルを保存しておくと変更点の把握が簡単になります。私はファイル名の末尾に .default を付与することにしているので、上記の例であれば、下記のように確認します。

# diff /etc/sysctl.conf.default /etc/sysctl.conf.rpmnew
30c30
< # Controls the maximum size of a message, in bytes
---
> # Controls the default maxmimum size of a mesage queue
33c33
< # Controls the default maxmimum size of a mesage queue
---
> # Controls the maximum size of a message, in bytes

この例ではコメントの位置が変わっただけなので動作に影響はなさそうです。

これで無事 Scientific Linux 6.3 環境へのアップグレードが完了しました。

今日(2012-08-09)時点では、Scientific Linux 6.3 環境へアップグレードすると、Scientific Linux 6.2 のリポジトリより新しい Kernel がインストールされます。最新 Kernel の使用や、アップグレードを機会に環境をすっきりしたい方は一度 OS ごと再起動しておくと良いでしょう。

Sublime Text 2 で開いているファイルを選択した状態でエクスプローラを開く

標準

概要

前回の Sublime Text 2 で開いているプロジェクトをエクスプローラで開く の改良版です。SideBarEnhancements パッケージを入れることで、開いているファイルを選択した状態でエクスプローラを開くことができました。

準備: SideBarEnhancements のインストール

サイドバーの右クリック機能を拡張する SideBarEnhancements をインストールします。SideBarEnhancements は、Sublime Package Control からインストールできます。

SideBarEnhancements は、いろいろな内部コマンドを提供します。今回使うのは、side_bar_reveal という内部コマンドです。

  • side_bar_reveal
    • サイドバーのプロジェクト内のファイルやフォルダを右クリックし、Reveral を選択すると、右クリックしたファイルやフォルダを選択した状態でエクスプローラを開く機能です。

他の機能やデフォルトのショートカットキーについては説明を省略します。気になる方は、SideBarEnhancements のパッケージフォルダにある SideBar.py と Default (OS 別).sublime-keymap を見るといいです。

Key Bindings 設定

side_bar_reveal を使用して、現在編集しているファイルが所属するプロジェクトをエクスプローラで開く Key Bindings を設定します。

  • Menu > [Preferences] > [Key Bindings – User] を開きます。
  • 次の設定を追加します。
    • 例として、次のようにします。
      • Ctrl + Shift + E: 開いているファイルを選択した状態でエクスプローラを起動します。
      • Ctrl + Alt + E: 開いているプロジェクトディレクトリを表示した状態でエクスプローラを起動します。(前回の Shell Turtlestein の機能を使用)

[
... 省略 ...
    {
        "keys": ["ctrl+shift+e"],
            "command": "side_bar_reveal"
    },
    {
        "keys": ["ctrl+alt+e"],
        "command": "subprocess_in_cwd",
        "args": {
            "cmd": ["explorer.exe", "."]
        }
    }
... 省略 ...
]

まとめ

前回の Shell Turtlestein と今回の SideBarEnhancements の機能を使うことでお目当ての快適なエディタ環境にカスタマイズできました。Sublime Text 2 は、パッケージが提供する内部コマンド名さえ判れば、今回のように簡単にその機能をショートカットキーに割り当てられるのでいろいろカスタマイズして使いやすいエディタ環境を作ると良いと思います。。

Sublime Text 2 で開いているプロジェクトをエクスプローラで開く

標準

概要

最近、Java 以外のいろいろな開発用エディタを Sublime Text 2 に乗り換えるべく、Sublime Text 2 のライセンスを勢いで購入し、カスタマイズを進めています。

カスタマイズしていて、現在編集しているファイルが所属するプロジェクトを、ショートカットキーを使ってエクスプローラで開きたくなりました。Sublime Text 2 では、Key Bindings を設定することでショートカットをカスタマイズできます。いろいろ試した結果、Shell Turtlestein の subprocess_in_cwd コマンドを使うことで実現できたので、その方法を紹介します。

準備: Shell Turtlestein のインストール

まず、シェルを呼び出し実行できる Shell Turtlestein をインストールします。Shell Turtlestein は、Sublime Package Control からインストールできます。

Shell Turtlestein は、下記の内部コマンドを提供します。

  • shell_prompt
    • ウィンドウ内でシェルプロンプトを提供します。
  • subprocess_in_cwd
    • サブプロセスで指定したコマンドを実行します。

また、デフォルトで下記のショートカットを提供します。

  • Ctrl + Shift + C: ウィンドウ内にシェルプロンプトを起動します。
    • shell_prompt を使用しています。
  • Ctrl + Alt + Shift + C: コマンドプロントを起動します。
    • subprocess_in_cwd を使用し、Windows の場合、cmd.exe を呼び出しています。

Key Bindings 設定

subprocess_in_cwd を使用して、現在編集しているファイルが所属するプロジェクトをエクスプローラで開く Key Bindings を設定します。

  • Menu > [Preferences] > [Key Bindings – User] を開きます。
  • 次の設定を追加します。
    • 例として、Ctrl + Shift + E でお目当てのディレクトリを表示したエクスプローラを起動するようにします。このショートカットにはデフォルトで slurp_replace_string が割り当てられているので、この機能を使いたい場合は違うキーアサインをすると良いです。

  • 2012-07-04 修正: "cmd": ["cmd.exe", "/C", "explorer", "."] としていたのを explorer のみにしました。
[
... 省略 ...
    {
        "keys": ["ctrl+shift+e"],
        "command": "subprocess_in_cwd",
        "args": {
            "cmd": ["explorer.exe", "."]
        }
    }
... 省略 ...
]

これで、Ctrl + Shift + E でエクスプローラが起動します。

まとめ

ポイントは、cmd を一度起動してからエクスプローラを起動するところです。

本当は単純に Sublime Text 2 が持つ変数を使って "cmd": ["explorer", "${project_path:${folder}}"] で起動したかったのですが、Key Bindings では変数展開ができないようでした。そのため、一度コマンドプロンプトを起動し、そこから "." で現在のディレクトリ指定で explorer を起動しています。

実行すると一瞬コマンドプロンプトが表示されますがそこは気にしないことにしています。

別解として、変数展開されるビルドを使って起動することも考えました。エクスプローラを起動するビルド定義を追加し、それを Key Bindings で呼び出す方法です。しかし、Key Bindings は現在選択されている Build System のビルドは実行できますが、任意のビルド名を指定しての実行ができなさそうだったので Shell Turtlestein の subprocess_in_cwd を使うことにしました。

なんとなくもっと簡単にできる気がしていますが、思い浮かばなかったので思いついた方は是非教えてください。

RHEL 6 系で HP 製品のファームウェア更新時に file not found が出たら 別解

標準

RHEL 6 系で HP ProLiant ML110 G6 の Lights-Out 100 Remote Management のファームウェアを更新しようとすると次のようなエラーが出る問題。

# chmod 700 CP017117.scexe
# ./CP017117.scexe
./hpsetup: line 2: .: lo100.sh: file not found
Parameters are: --source /usr/local/src/hardware/lightsout
./hpsetup: line 7: lo100main: command not found

以前書いた RHEL 6 系で HP 製品のファームウェア更新時に file not found が出たら では、ファームウェアの更新インストーラを展開して実行していましたが、@satoh_fumiyasu さんからアドバイスをいただきました。

[oEmbedTweet 193144788059557888]

というわけで次のようにして試してみました。

# PATH=${PATH}:. ./CP017117.scexe
Parameters are: --source /usr/local/src/hardware/lightsout
HP Lights Out 100 Offline Firmware Update Engine
     Copyright (c) 2009 - Hewlett Packard
-----------------------------------------------
Running with --source /usr/local/src/hardware/lightsout
Parsing --source /usr/local/src/hardware/lightsout
CHECKING: --source
CHECKING: /usr/local/src/hardware/lightsout
Found IPMI - checking results
Package 4.23 - currently at 4.22
Firmware binary payload is LdrImage.bin
Firmware package is version 4.23
Not forced - checking version
           -Update needed
Flashing firmware
HP Proliant Lights-Out 100 Flash Utility v1.2-00
Copyright (c) 2003, 2010 Hewlett-Packard Development Company, L.P.
[10:43:03] Validating Input File Run-time Image.
Validating Input File Image...................
[10:43:03] Run-time Image Checksum Validated
[10:43:03] Run-time Image Size (Bytes to Flash): 2071280
[10:43:03] Current BMC FW Revision: 4.22
*WARNING: FLASH PROCESS MAY TAKE A FEW MINUTES TO COMPLETE.
*WARNING: DO NOT CYCLE POWER OR IN ANY WAY INTERRUPT THE FLASH PROCESS.
Erasing Sectors...............................................................
Writing Sectors.............................................
Performing BMC Warm Reset...
Restoring BMC Sensors...
[10:45:49] Flash Process Complete.
[10:45:49] Current BMC FW Revision: 4.23
[10:45:49] Total elapsed time                                166.00 sec(s)

上手く動きました。いちいちインストーラを展開する必要が無くなり、とても楽になりました。@satoh_fumiyasu さんありがとうございます!

RHEL 6 系で HP 製品のファームウェア更新時に file not found が出たら

標準

RHEL 6 系で HP ProLiant ML110 G6 の Lights-Out 100 Remote Management のファームウェアを更新しようとすると次のようなエラーが出ました。試した環境は、Scientific Linux 6.2 x86_64 です。

# chmod 700 CP017117.scexe
# ./CP017117.scexe
./hpsetup: line 2: .: lo100.sh: file not found
Parameters are: --source /usr/local/src/hardware/lightsout
./hpsetup: line 7: lo100main: command not found

最初、これが起きる原因が良く判らず、毎回 USB メモリを作ってブートして更新していました。でも、USB メモリで更新するのはマシンをそこそこの時間止めないといけないし、現地作業も面倒なので、原因を調べてみたら解決できたのでまとめます。

まず原因は、RHEL 6 系になって、/bin/sh でシェルを起動した時に、「. ファイル名」で指定したファイル名を見つけられなくなっていることでした。RHEL 5 系では見つけられるので、bash のバージョンが 3 系から 4 系になって挙動が変わったのだと思います。/bin/bash でシェルを起動すれば動作するので、ファームウェアの更新インストーラを展開し、シェルの指定を書き換えて実行します。

まずは展開します。特にヘルプなどないのですが、CP017117.scexe ファイルを less で見ると –unpack オプションが用意されていました。下記の例では、setup フォルダが作成され、そこに展開されます。

# ./CP017117.scexe --unpack=setup

実行シェルスクリプトである、hpsetup に書かれたシェルの指定を /bin/sh から /bin/bash に書き換えます。

# cd setup
# perl -pi -e 's|#!/bin/sh|#!/bin/bash|' hpsetup

そして、hpsetup を実行すれば無事更新されます。

# ./hpsetup
Parameters are:
HP Lights Out 100 Offline Firmware Update Engine
     Copyright (c) 2009 - Hewlett Packard
-----------------------------------------------
Running with
Parsing
Found IPMI - checking results
Package 4.23 - currently at 4.22
Firmware binary payload is LdrImage.bin
Firmware package is version 4.23
Not forced - checking version
           -Update needed
Flashing firmware
HP Proliant Lights-Out 100 Flash Utility v1.2-00
Copyright (c) 2003, 2010 Hewlett-Packard Development Company, L.P.
[03:07:51] Validating Input File Run-time Image.
Validating Input File Image...................
[03:07:51] Run-time Image Checksum Validated
[03:07:51] Run-time Image Size (Bytes to Flash): 2071280
[03:07:51] Current BMC FW Revision: 4.22
*WARNING: FLASH PROCESS MAY TAKE A FEW MINUTES TO COMPLETE.
*WARNING: DO NOT CYCLE POWER OR IN ANY WAY INTERRUPT THE FLASH PROCESS.
Erasing Sectors...............................................................
Writing Sectors.............................................
Performing BMC Warm Reset...
Restoring BMC Sensors...
[03:10:15] Flash Process Complete.
[03:10:15] Current BMC FW Revision: 4.23
[03:10:15] Total elapsed time                                144.00 sec(s)

これでアップデートが簡単にできるようになりました。

Scientific Linux 6.2 環境へ 6.1 環境からアップグレードする方法

標準

概要

Scientific Linux 6.2 (SL 6.2) が Beta 1 -> Beta 2 -> Release Candidate 1 -> Release Candidate 2 を経て本日リリースされました。

  • Scientific Linux – Scientific Linux 6.2
    • Release Notes や Differences between SL6.1 and SL6.2、Changed RPM’s specific など、変更点がまとまっているので目を通しておきましょう。

前回の Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 に続いて、6.1 環境から 6.2 環境へアップグレードする方法をまとめます。基本的に前回と一緒です。

前回も書きましたが、以下、重要なのでおさらいです。

Scientific Linux では /etc/yum.repos.d/sl.repo などで参照されている変数 $releasever の中身が 6 ではなく 6.1 とマイナーバージョンまで含めて定義されています。そのため、最新マイナーバージョンの yum リポジトリが参照されず、そのままでは自動的に 6.2 に更新することはできません。

これは商用製品などで特定マイナーバージョンでないと動作保証が得られない環境がある方には嬉しい仕様です。以前仕事で携わったところで、環境構築をしている方々が RHEL 5.x では自動的にマイナーバージョンが上げることを把握しておらず、タイミング良く新しいマイナーバージョンがリリースされ、その夜の自動更新でバージョンが上がってしまい問題が発生したことがあったので、そういったマイナーバージョンを固定したい環境では役立つでしょう。

一方で、ずっと古いマイナーバージョンのままにするのも良くないので、アップグレードして良いタイミングになったら次のようにしてアップグレードします。

現在バージョンの確認

現在のバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.1 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.1

変数 $release の中身が 6.1 になっています。

sl-release の更新

一気にすべてのパッケージを 6.2 のものに更新しても良いと思いますが、まずは sl-release だけを更新します。

# yum --releasever=6.2 update sl-release
... 省略 ...
Dependencies Resolved

========================================================================================================================
 Package                         Arch                        Version                      Repository               Size
========================================================================================================================
Updating:
 sl-release                      x86_64                      6.2-1.1                      sl                       35 k

Transaction Summary
========================================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Is this ok [y/N]: y
Downloading Packages:
sl-release-6.2-1.1.x86_64.rpm                                                                    |  35 kB     00:00
... 省略 ...
Running Transaction
  Updating       : sl-release-6.2-1.1.x86_64                                                                        1/2
warning: /etc/yum.repos.d/sl.repo saved as /etc/yum.repos.d/sl.repo.rpmsave

Updated:
  sl-release.x86_64 0:6.2-1.1

Complete!

更新されたバージョンの確認

更新されたバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.2 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.2

6.2 になりました。

sl.repo の置き換え注意

今回のアップデートでは、sl-release を更新すると /etc/yum.repos.d/sl.repo が自動的に置き換わります。これにより、リポジトリ優先度設定や参照するリポジトリミラーの変更など、カスタマイズしていた内容がすべてリセットされるので要注意です。なお、古い sl.repo は、/etc/yum.repos.d/sl.repo.rpmsave として保存されています。

具体的な変更点は、gpgkey の指定から RPM-GPG-KEY-dawson を削除し、RPM-GPG-KEY-sl6 と RPM-GPG-KEY-cern が追加されています。RPM-GPG-KEY-dawson は、Troy Dawson 氏の gpgkey だったようですが、同氏は Scientific Linux プロジェクトから離れたことで gpgkey も変更になったようです。ちなみに sl-other.repo にも RPM-GPG-KEY-dawson が使われていますが、そちらはまだ更新されていませんが、RPM-GPG-KEY-sl が一緒に定義されているので動作には問題ないようです。

# diff sl.repo.sl6.1 sl.repo.sl6.2
10c10
< gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
---
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl6 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cern
21c21
< gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
---
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl6 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cern
32,34c32
< gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
<
<
---
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl6 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cern

必要に応じて、保存された旧設定である sl.repo.rpmsave を参考に再度カスタマイズしましょう。

すべてのパッケージを更新

最後に、残りのすべてのパッケージを更新します。

# yum update
... 省略 ...
Transaction Summary
========================================================================================================================
Install       2 Package(s)
Upgrade     144 Package(s)

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

これで無事 Scientific Linux 6.2 環境へのアップグレードが完了しました。

今日(2012-02-16)時点では、Scientific Linux 6.1 のリポジトリで既に RHEL 6.2 の更新を先取りした最新 Kernel まで更新されていたので、既にその最新 Kernel を使用していたのであれば OS ごと再起動しなくても良いですが、更新前に最新 Kernel を使っていなかった場合や、いろいろ更新されたのですっきりしたい方は一度 OS ごと再起動しておくと良いです。

Scientific Linux 6.1 での yum リポジトリ設定

標準

今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。どうやら SL 6.1 で yum のリポジトリ設定ファイルの構成が変わったようです。

具体的には次のようになりました。

  • /etc/yum.repos.d/sl.repo が上書きされた。
    • 古い設定は /etc/yum.repos.d/sl-other.repo.rpmsave に保存されています。
    • 中身が sl, sl-security(元々 sl-updates.repo にあった設定), sl-source になった
  • /etc/yum.repos.d/sl-updates.repo が無くなった。
    • 古い設定は /etc/yum.repos.d/sl-updates.repo.rpmsave に保存されています。
    • 旧 sl, sl-updates に含まれていた sl-fastbugs を含む他のリポジトリは yum-conf-sl-other パッケージを別途入れなければならなくなった。

というわけで、SL 6.1 になったら次のようにインストール・設定するようにしました。普段設定しているやり方で紹介します。6.0 から更新された方も設定が上書きされているので同じように設定すれば良いです。

yum に関連したパッケージのインストール

yum に関連したパッケージをインストールします。

  • yum-conf-sl-other: sl-fastbugs を使うためにインストールします。
  • yum-plugin-fastestmirror: ミラーリポジトリリストのうち最もレスポンスの早いミラーリポジトリを使うためにインストールします。
  • yum-plugin-priorities: 外部リポジトリと混ぜて使用する際に標準リポジトリのバージョンを優先するためにインストールします。
    • 2011-08-28修正: torakitty さんにコメントでご指摘いただいたように yum-plugin-priorities が yum-conf-sl-other と誤って記述していたのを修正しました。

# yum -y install yum-conf-sl-other yum-plugin-fastestmirror yum-plugin-priorities

オリジナルの設定ファイルのバックアップ

オリジナルの設定ファイルをバックアップします。

yes no | cp -ai /etc/yum.repos.d/sl.repo /etc/yum.repos.d/sl.repo.default
yes no | cp -ai /etc/yum.repos.d/sl-other.repo /etc/yum.repos.d/sl-other.repo.default

sl.repo の設定

リポジトリミラーとして国内ミラーを優先して使うように設定します。

  • sl: 標準で有効化し、priority を最優先の 1 にします。
  • sl-security: 標準で有効化し、priority を最優先の 1 にします。
  • sl-source: 標準で無効化し、priority を最優先の 1 にします。
cat << '_EOF_' > /etc/yum.repos.d/sl.repo
[sl]
name=Scientific Linux $releasever - $basearch
mirrorlist = file:///etc/yum.repos.d/mirrors-sl
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1

[sl-security]
name=Scientific Linux $releasever - $basearch - security updates
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-security
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1

[sl-source]
name=Scientific Linux $releasever - Source
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-source
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/os/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/os/
http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/os/
http://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/os/
http://ftp1.scientificlinux.org/linux/scientific/$releasever/$basearch/os/
http://ftp2.scientificlinux.org/linux/scientific/$releasever/$basearch/os/
ftp://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/os/
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-security
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/updates/security/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/updates/security/
http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/updates/security/
http://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/security/
http://ftp1.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/security/
http://ftp2.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/security/
ftp://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/security/
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-source
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/SRPMS/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/SRPMS/
http://ftp.riken.jp/Linux/scientific/$releasever/SRPMS/
http://ftp.scientificlinux.org/linux/scientific/$releasever/SRPMS/
http://ftp1.scientificlinux.org/linux/scientific/$releasever/SRPMS/
http://ftp2.scientificlinux.org/linux/scientific/$releasever/SRPMS/
ftp://ftp.scientificlinux.org/linux/scientific/$releasever/SRPMS/
_EOF_

sl-other.repo の設定

リポジトリミラーとして国内ミラーを優先して使うように設定します。

  • sl-fastbugs: 標準で有効化し、priority を最優先の 1 にします。
  • sl-debuginfo: 標準で無効化し、priority を最優先の 1 にします。
  • sl-testing: 標準で無効化し、priority を最優先の 1 にします。
  • sl-testing-source: 標準で無効化し、priority を最優先の 1 にします。
cat << '_EOF_' > /etc/yum.repos.d/sl-other.repo
[sl-fastbugs]
name=Scientific Linux $releasever - $basearch - fastbug updates
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-fastbugs
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1

[sl-debuginfo]
name=Scientific Linux Debuginfo
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-debuginfo
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1

[sl-testing]
name=Scientific Linux Testing - $basearch
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-testing
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1

[sl-testing-source]
name=Scientific Linux Testing - Source
mirrorlist = file:///etc/yum.repos.d/mirrors-sl-testing-source
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
priority=1
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-fastbugs
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/updates/fastbugs/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/updates/fastbugs/
http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/updates/fastbugs/
http://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/fastbugs/
http://ftp1.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/fastbugs/
http://ftp2.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/fastbugs/
ftp://ftp.scientificlinux.org/linux/scientific/$releasever/$basearch/updates/fastbugs/
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-debuginfo
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/archive/debuginfo/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/archive/debuginfo/
http://ftp.riken.jp/Linux/scientific/$releasever/archive/debuginfo/
http://ftp.scientificlinux.org/linux/scientific/$releasever/archive/debuginfo/
http://ftp1.scientificlinux.org/linux/scientific/$releasever/archive/debuginfo/
http://ftp2.scientificlinux.org/linux/scientific/$releasever/archive/debuginfo/
ftp://ftp.scientificlinux.org/linux/scientific/$releasever/archive/debuginfo/
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-testing
http://ftp.ne.jp/Linux/packages/scientificlinux/6rolling/testing/$basearch/
http://ftp.jaist.ac.jp/pub/Linux/scientific/6rolling/testing/$basearch/
http://ftp.riken.jp/Linux/scientific/6rolling/testing/$basearch/
http://ftp.scientificlinux.org/linux/scientific/6rolling/testing/$basearch/
http://ftp1.scientificlinux.org/linux/scientific/6rolling/testing/$basearch/
http://ftp2.scientificlinux.org/linux/scientific/6rolling/testing/$basearch/
ftp://ftp.scientificlinux.org/linux/scientific/6rolling/testing/$basearch/
_EOF_
cat << '_EOF_' > /etc/yum.repos.d/mirrors-sl-testing-source
http://ftp.ne.jp/Linux/packages/scientificlinux/6rolling/testing/SRPMS/
http://ftp.jaist.ac.jp/pub/Linux/scientific/6rolling/testing/SRPMS/
http://ftp.riken.jp/Linux/scientific/6rolling/testing/SRPMS/
http://ftp.scientificlinux.org/linux/scientific/6rolling/testing/SRPMS/
http://ftp1.scientificlinux.org/linux/scientific/6rolling/testing/SRPMS/
http://ftp2.scientificlinux.org/linux/scientific/6rolling/testing/SRPMS/
ftp://ftp.scientificlinux.org/linux/scientific/6rolling/testing/SRPMS/
_EOF_

設定の確認

yum コマンドを実行して設定を確認します。

# yum update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * sl: ftp.ne.jp
 * sl-fastbugs: ftp.ne.jp
 * sl-security: ftp.ne.jp
Setting up Update Process
... 省略 ...

上記のように Loading mirror の後、sl, sl-fastbugs, sl-security が表示されれば設定が出来ています。

まとめ

SL 6.1 用の yum リポジトリの設定方法を紹介しました。SL 6.0 からリポジトリ設定ファイルの構成が変わっていますので、SL 6.1 環境では設定をし直した方が良いです。

設定中の priority は、RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ で触れた yum-conf-* を入れたら、1 より大きい数字を設定しておかないと優先度が反映されないので注意が必要です。

Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法

標準

概要

Scientific Linux 6.1 (SL 6.1) がリリースされました。

早速 SL 6.0 環境を yum update で 6.1 にアップグレードしようとしてみましたが、RHEL/CentOS と違ってそのままでは 6.1 にアップグレードされませんでした。

Scientific Linux では /etc/yum.repos.d/sl.repo などで定義されている $releasever の変数の中身が 6 ではなく 6.0 とマイナーバージョンまで含めて入っているようで、最新マイナーバージョンの yum リポジトリが参照されず更新されないようです。

これは商用製品などで特定マイナーバージョンでないと動作保証が得られない環境がある方には嬉しい仕様です。以前仕事で携わったところで、環境構築をしている方々が RHEL 5.x では自動的にマイナーバージョンが上げることを把握しておらず、タイミング良く新しいマイナーバージョンがリリースされ、その夜の自動更新でバージョンが上がってしまい問題が発生したことがあったので、そういったマイナーバージョンを固定したい環境では役立つでしょう。

一方で、ずっと古いマイナーバージョンのままにするのも良くないので、アップグレードして良いタイミングになったら次のようにしてアップグレードします。

現在バージョンの確認

現在のバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.0 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.0

$release 変数の中身が 6.0 になっています。

sl-release の更新

一気にすべてのパッケージを 6.1 のものに更新しても良いと思いますが、まずは sl-release だけを更新します。

# yum --releasever=6.1 update sl-release
... 省略 ...
Dependencies Resolved

========================================================================================================================
 Package                         Arch                        Version                      Repository               Size
========================================================================================================================
Updating:
 sl-release                      x86_64                      6.1-2                        sl                       32 k

Transaction Summary
========================================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Is this ok [y/N]: y
Downloading Packages:
sl-release-6.1-2.x86_64.rpm                                                                      |  32 kB     00:00

更新されたバージョンの確認

更新されたバージョンを確認します。

# cat /etc/redhat-release
Scientific Linux release 6.1 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.1

6.1 になりました。

すべてのパッケージを更新

すべてのパッケージを更新します。

# yum update
... 省略 ...
Transaction Summary
========================================================================================================================
Install       1 Package(s)
Upgrade     147 Package(s)

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

これで無事 Scientific Linux 6.1 環境へのアップグレードが完了しました。

今日(2011-07-29)時点では、Scientific Linux 6.0 のリポジトリで既に RHEL 6.1 の更新を先取りした最新 Kernel まで更新されていたので、既にその最新 Kernel を使用していたのであれば OS ごと再起動しなくても良いですが、更新前に最新 Kernel を使っていなかった場合や、いろいろ更新されたのですっきりしたい方は一度 OS ごと再起動しておくと良いです。

RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ

標準

概要

  • [2011-07-17追記]: sl-fastbugs の国内リポジトリミラーを追加しました。

CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux 6.0 (RHEL 6.0) 系 に更新するのに Scientific Linux 6.0 (SL 6.0) と CentOS 6.0 のどちらに更新しようか迷っている方が多いと思います。

そんな方向けに 5.x から 6.0 になって何が変わったのか、そして、SL と CentOS で何が違うのか気付いた点をまとめておきます。前者は有償サポートのある RHEL 6.0 へ移行する際にも参考になると思います。

RHEL 6.0、SL 6.0、CentOS 6.0 の収録パッケージの違い

まずは、一番気になるであろう RHEL 6.0、SL 6.0、CentOS 6.0 の収録パッケージの違いをまとめます。6.0 では、収録パッケージの違いは SL も CentOS も下記にあげるように最小限に留まっており、基本的にオリジナルの RHEL 6.0 リリース時点と同じバージョンが収録されています。

RHEL 6.0 と SL 6.0 の違い

SL 5.x では、RHEL 5.x に R や graphviz などのパッケージも加えていましたが、6.0 では最低限の追加しかされていません。

下記は SL 6.0 に追加・修正されているパッケージの一覧です。それぞれのパッケージの詳細は、Scientific Linux 6.0 Release Notes に書かれています。

追加されたパッケージ

  • SL_desktop_tweaks-6-3.src.rpm
  • SL_enable_serialconsole-4.0-1.src.rpm
  • SL_no_colorls-1.0-3.src.rpm
  • SL_password_for_singleuser-3.0-1.src.rpm
  • glib-1.2.10-33.el6.src.rpm
  • gtk+-1.2.10-70.el6.src.rpm
  • icewm-1.2.37-1.2.src.rpm
  • imlib-1.9.15-14.el6.src.rpm
  • livecd-tools-0.3.6-3.el6.src.rpm
  • liveusb-creator-3.9.2-sl6.0.7.rolling.src.rpm
  • openafs-firstboot-1.6-1.sl6.src.rpm
  • openafs.SLx-1.6.0-91.pre2.src.rpm
  • revisor-2.2-2.sl6.4.src.rpm
  • sl-release-6.0-6.0.0.37.sl6.0.92rolling.src.rpm
  • sl-revisor-configs-1-6.0.src.rpm
  • yum-autoupdate-2-1.src.rpm
  • yum-conf-adobe-6-1.src.rpm
  • yum-conf-atrpms-6-1.src.rpm
  • yum-conf-elrepo-6-1.src.rpm
  • yum-conf-epel-6-1.src.rpm
  • yum-conf-rpmforge-6-1.src.rpm
  • yum-conf-sl6x-1-1.src.rpm

最小構成で自動的にインストールされるのは、sl-release と yum-autoupdate のみです。

修正されたパッケージ

  • anaconda-13.21.82-1.sl6.2.src.rpm
  • epydoc-3.0.1-5.1.el6.0.sl6.src.rpm
  • guile-1.8.7-4.el6.0.sl6.src.rpm
  • httpd-2.2.15-5.sl6.src.rpm
  • kdepim-runtime-4.3.4-4.el6.0.sl6.src.rpm
  • linuxdoc-tools-0.9.65-3.el6.0.sl.src.rpm
  • mod_auth_kerb-5.4-6.el6.0.sl6.src.rpm
  • nss-3.12.7-2.el6.0.sl6.src.rpm
  • opal-3.6.6-4.el6.0.sl6.src.rpm
  • pilot-link-0.12.4-6.el6.0.sl6.src.rpm
  • plymouth-0.8.3-17.sl6.2.src.rpm
  • redhat-logos-60.0.14-1.sl6.1.src.rpm
  • report-0.18-7.sl6.src.rpm
  • rome-0.9-4.2.el6.0.sl6.src.rpm
  • ruby-1.8.7.299-4.el6.0.sl6.1.src.rpm
  • sl-bookmarks-6-1.sl6.src.rpm
  • sl-indexhtml-6-1.sl6.src.rpm
  • sl-release-6.0-6.0.1.src.rpm
  • sl-release-notes-6.0-0.1.rolling.src.rpm

追加パッケージのうち運用時に便利なのは、yum-autoupdate と yum-conf-* です。yum-autoupdate は後述しますが、yum による自動更新を実行するツールです。yum-conf-* は、外部リポジトリを使用するリポジトリファイルです。メジャーな外部リポジトリは収録されていて、すぐに外部リポジトリを使用できるのは使い勝手が良いです。

RHEL 6.0 と CentOS 6.0 の違い

CentOS のインストールメディアはなるべく RHEL と同じになるように追加パッケージは基本的にありません。ただし、extras リポジトリで独自のパッケージを追加していくので、一概に SL と比較できません。なお、執筆時点では、6.0 の extras リポジトリはまだ空です。したがって、CentOS 5.x で extras リポジトリにあるものを期待して使用していた方は、今すぐ 6.0 に乗り換えると困るかもしれません。

下記は CentOS 6.0 に追加・修正されているパッケージの一覧です。CentOS 6.0 リリースノート には、削除したパッケージも書かれています。

追加されたパッケージ

  • centos-indexhtml-6-1.el6.centos.src.rpm
  • centos-release-6-0.el6.centos.5.src.rpm

修正されたパッケージ

  • anaconda-13.21.82-1.el6.centos.1.src.rpm
  • firefox-3.6.9-2.el6.centos.src.rpm
  • httpd-2.2.15-5.el6.centos.src.rpm
  • kabi-whitelists-20100820-1.el6.centos.src.rpm
  • kabi-yum-plugins-1.0-2.el6.centos.src.rpm
  • kde-settings-4.3.1-1.el6.centos.src.rpm
  • luci-0.22.2-14.el6.centos.src.rpm
  • openssl098e-0.9.8e-17.el6.centos.src.rpm
  • plymouth-0.8.3-17.el6.centos.src.rpm
  • redhat-bookmarks-6-1.el6.centos.src.rpm
  • report-0.18-7.el6.centos.src.rpm
  • yum-3.2.27-14.el6.centos.src.rpm

CentOS 6.0 では、リリース時点で自動更新のためのツールが含まれていません。従来あった yum-updated や yum-cron も無くなっているため、自動更新をするには何らかの仕組みを自分で用意する必要があります。

5.x と 6.0 の違い

5.x から 6.0 になってメジャーバージョンが変わったこともあって、いろいろと大きく変わっています。主に下記の点が変わっています。

インストールモード

インストールモードにはこれまで同様、Text mode と Graphical mode がありますが、Text mode では次のことができなくなっています。

  • ストレージの構成とパーティションレイアウトの修正
  • インストールパッケージの選択

5.x の時にも Text mode では、Linux MD や LVM の VG を一部編集することができない制限がありましたが、6.0 からはストレージの構成とパーティションレイアウトの修正も出来なくなったので、多くの場合、Graphical mode でインストールする必要があります。

なお、搭載メモリが 652MB 以下の場合、自動的に Text mode でインストーラが起動します。それ以外で Text mode でインストールしたい場合は、インストーラメディアブート時の grub メニューで Tab を押して、ブートパラメータの末尾に text を付けて起動すれば良いです。

Graphical mode では、Shift + Print Screen を押すと、画面のスクリーンキャプチャが下記のディレクトリに保存されるので記録を残したい方はこれを利用すると良いです。

  • /root/anaconda-screenshot/screenshot-NNNN.png

インストールパッケージ

インストールパッケージはサーバとして使用するなら インストールタイプを Minimal にし、Customize now をチェックして、次のパッケージグループを足すのが良いでしょう。他の必要なサーバソフトウェアは後から yum で入れれば良いです。

  • Base System
    • Base
  • Development
    • Additional Development
    • Development tools

CentOS 6.0 の場合、デフォルトで Minimal が選択されています。一方、Scientific Linux 6.0 の場合、デフォルトで Desktop が選択されているので一番下にある Minimal を選択する必要があります。さらに、Scientific Linux 6.0 の場合、Minimal にしても次のパッケージグループがインストールするようにチェックされています。

  • SL Addons
    • Misc Scientific Linux Packages
  • Scalable Filesystem Support
    • Scalable Filesystems

これらが不要な場合はチェックを外してしまって問題ありません。参考までにチェックしたままだと、それぞれ下記のパッケージがインストールされます。内容から判るとおり xfs を使わない限り必要ないです。

Misc Scientific Linux Packages

このパッケージグループには下記のパッケージが所属していますが、optional 指定になっているため、実際にはインストールされません。

  • SL_desktop_tweaks
  • SL_enable_serialconsole
  • SL_enable_serialconsole-192
  • SL_enable_serialconsole-384
  • SL_enable_serialconsole-1152
  • SL_no_colorls
  • SL_password_for_singleuser
  • revisor

Scalable Filesystems

  • xfsprogs
  • xfsdump

また、CentOS では yum-plugin-fastestmirror が自動的にインストールされますが、SL ではインストールされません。

NIC の識別

6.0 から NIC の識別には /etc/udev/rules.d/70-persistent-net.rules が使用されています。このファイルには、ethX と NIC の MAC アドレスを紐づける設定が書かれていて、NIC を増減しても常に同じ NIC に同じ ethX が割り当てられることが保証されます。しかし、VM などでイメージをコピーして使いまわす時にはこの仕組みが邪魔となり、VM コピーに伴い NIC の MAC アドレスが変わると NIC を認識できなくなります。

したがてって、VM イメージをコピーする時には、次のどちらかの方法で対処する必要があります。

  1. /etc/udev/rules.d/70-persistent-net.rules を削除して再起動します。
    • 再起動後、自動的にファイルが生成されます。
  2. /etc/udev/rules.d/70-persistent-net.rules を修正して再起動します。
    • MAC アドレスを正しいものに書き換えるか、不要な NIC の情報を削除します。
    • 再起動後、自動的にファイルが修正されます。

国内リポジトリミラー

SL も CentOS も国内リポジトリミラーは充実しています。必要に応じて mirrorlist を修正すると良いです。

SL 6.0

  • sl (/etc/yum.repos.d/sl.repo)
http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/os/
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/os/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/os/
  • sl-security (/etc/yum.repos.d/sl-updates.repo)
http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/updates/security/
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/updates/security/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/updates/security/
  • sl-fastbugs (/etc/yum.repos.d/sl-updates.repo)
    • CentOS 6 では updates に含まれている バグ fix

http://ftp.riken.jp/Linux/scientific/$releasever/$basearch/updates/fastbugs/
http://ftp.ne.jp/Linux/packages/scientificlinux/$releasever/$basearch/updates/fastbugs/
http://ftp.jaist.ac.jp/pub/Linux/scientific/$releasever/$basearch/updates/fastbugs/

CentOS 6.0

  • base (/etc/yum.repos.d/CentOS-Base.repo)
http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
http://ftp.ne.jp/Linux/packages/CentOS/$releasever/os/$basearch/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/$releasever/os/$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/$releasever/os/$basearch/
  • updates (/etc/yum.repos.d/CentOS-Base.repo)
http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
http://ftp.ne.jp/Linux/packages/CentOS/$releasever/updates/$basearch/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/$releasever/updates/$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/$releasever/updates/$basearch/

自動更新

SL 6.0 と CentOS 6.0 の自動更新について説明します。

SL 6.0

SL 6.0 では yum-autoupdate が自動的にインストールされます。このパッケージは、SL 独自に追加されているパッケージであるため CentOS ではインストールされません。

yum-autoupdate の設定ファイルは、/etc/sysconfig/yum-autoupdate にあります。デフォルトでは下記のパッケージが自動更新から除外されています。

  • kernel*
  • openafs*
  • *-kmdl-*
  • kmod-*
  • *firmware*

これらも自動更新したい場合は設定ファイルの EXCLUDE を空にするか、コメントアウトすれば良いです。

$ diff -u /etc/sysconfig/yum-autoupdate.default /etc/sysconfig/yum-autoupdate
--- /etc/sysconfig/yum-autoupdate.default       2011-02-17 07:19:32.000000000 +0900
+++ /etc/sysconfig/yum-autoupdate       2011-06-06 14:01:48.736885290 +0900
@@ -24,7 +24,7 @@
 # EXCLUDE
 #   This is a space deliminated list
 #   Example:  EXCLUDE="kernel* openafs* *-kmdl-* kmod-* *firmware*"
-EXCLUDE="kernel* openafs* *-kmdl-* kmod-* *firmware*"
+#EXCLUDE="kernel* openafs* *-kmdl-* kmod-* *firmware*"

 # DEBUG
 #     true - turn on debug mode (be more verbose)

yum-autoupdate は /etc/cron.daily/yum-autoupdate から毎朝実行されます。また、更新パッケージがある時は root 宛に更新したパッケージ一覧が記載されたメールが送信されます。この宛先は設定ファイルで変更できます。

CentOS 6.0

前述したように CentOS 6.0 では自動更新の仕組みが提供されていません。今後、何らかの公式のパッケージが提供されるかもしれませんが、実運用に困る方は下記のような /etc/cron.daily/yum.cron などを作っておくのが良いと思います。

cat << '_EOF_' > /etc/cron.daily/yum.cron
#!/bin/sh

/usr/bin/yum -R 120 -e 0 -d 0 -y update yum
_EOF_
chmod 755 /etc/cron.daily/yum.cron

その他の 5.x から 6.0 になって変わったこと

その他、SL と CentOS に限らず、RHEL 5.x から 6.0 になって個人的に影響があった変更点を箇条書きします。

その他の違いや詳細は、Red Hat 社の Red Hat Enterprise Linux 6 移行計画ガイド を見ると良いです。

  • デフォルトのファイルシステムが ext3 から ext4 に変更されました
  • Xen が無くなり、KVM のみになりました
    • KVM: -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 がない時、-balloon virtio をオプション指定しないとバルーンメモリが有効になりませんでした
  • iptables で ! を使う時はオプションの前にしないとエラーになるようになりました
    • NG: -s ! 10.0.0.0/24
    • OK: ! -s 10.0.0.0/24
  • BIND の caching-nameserver は bind パッケージに統合されました
  • Dovecot の設定書式が変わりました
  • OpenLDAP の設定書式が変わりました
    • 設定も DB で持てるようになりました
  • LDAP クライアント化するのに nscd に加えて nslcd デーモンが必要になりました

まとめ

メジャーバージョンが 5.x から 6.0 になったことで多くのパッケージにもメジャーバージョンが更新されました。パッケージによっては設定書式が変わっていて一から調べなおす必要があることもあります。

6.0 では SL 6.0 と CentOS 6.0 で大きな違いはありません。個人的には yum-autoupdate と yum-conf-* が気に入ったのと、SL の方がリリースサイクルが早そうだという理由でこれから作るサーバで OS を決めて良い時はすべて SL にしようと考えています。

SL を使用する難点としては、まだ VPS サーバなどでは CentOS の方がサポートされていることが多いことですが、これも最近の状況からすると徐々に SL のシェアが増えるんじゃないかなと思います。

Munin Plugin: ipmitool_sensor_ 1.5 & 1.6

標準

Munin Plugin である ipmitool_sensor_ plugin の新しいバージョン 1.5 をリリースしました。

[2011-02-07追記]: コメントにて kikumoto さんよりご指摘いただいたとおり、temp_upper_warning と temp_upper_critical が逆になっていたので修正したバージョン 1.6 をアップロードしました。

このバージョンの変更点は下記のとおりです。

  • temp_upper_warning と temp_upper_critical の設定が有効に動作していなかったのを修正

設定値を取得するところで指定する設定名を typo していて正常に動作していませんでした。なお、今回の修正は、メールでご指摘いただきました(メールでお名前載せてよいか確認し忘れたのでとりあえず未記載で)。ご指摘ありがとうございました。

久しぶりに Munin Exchange を除いてみたところ、IPMI 関係の Plugin は現在 7 個あるようです。

各ページに飛ぶとダウンロード数が出ます。ipmitool_sensor_ plugin は、今のところ 431 回ダウンロードされていて、ipmi plugin の中では一番使っていただけているようでした。IPMI という超マイナー需要向けの Plugin なので、他カテゴリの Plugin に比べたら全然少ない回数ですが嬉しいです。