<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ふたつの川うるおう日記</title>
	<atom:link href="http://jfut.integ.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://jfut.integ.jp</link>
	<description></description>
	<lastBuildDate>Sat, 27 Aug 2011 15:18:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Scientific Linux 6.1 での yum リポジトリ設定</title>
		<link>http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/</link>
		<comments>http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 04:17:56 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=1097</guid>
		<description><![CDATA[今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。どうやら SL 6.1 で [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/' rel='bookmark' title='RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ'>RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</a> <small>概要 [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。 CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/' rel='bookmark' title='Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法'>Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</a> <small>概要 2011-07-29追記: アップデートすると 6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。詳細は Scientific Linux 6.1...</small></li>
<li><a href='http://jfut.integ.jp/2008/10/18/%E3%81%95%E3%82%8A%E3%81%92%E3%81%AA%E3%81%8F%E5%AE%89%E5%85%A8%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84maven%E3%81%B8%E3%81%AE%E5%AF%BE%E7%AD%96/' rel='bookmark' title='さりげなく安全ではないMavenへの対策'>さりげなく安全ではないMavenへの対策</a> <small> ...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content5" class="fswiki_content">
				<p>今朝 <a href="http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/">Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</a> を書きましたが、<strong>6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました</strong>。どうやら SL 6.1 で yum のリポジトリ設定ファイルの構成が変わったようです。</p>
				<ul>
				<li> <a href="http://www.scientificlinux.org/distributions/6x/61/differences">Differences between SL6.0 and SL6.1</a></ll>
				</ul>
				<p>具体的には次のようになりました。</p>
				<ul>
				<li> /etc/yum.repos.d/sl.repo が上書きされた。
				<ul>
				<li> 古い設定は /etc/yum.repos.d/sl-other.repo.rpmsave に保存されています。</li>
				<li> 中身が sl, sl-security(元々 sl-updates.repo にあった設定), sl-source になった</li>
				</ul>
				</li>
				<li> /etc/yum.repos.d/sl-updates.repo が無くなった。
				<ul>
				<li> 古い設定は /etc/yum.repos.d/sl-updates.repo.rpmsave に保存されています。</li>
				<li> 旧 sl, sl-updates に含まれていた sl-fastbugs を含む他のリポジトリは yum-conf-sl-other パッケージを別途入れなければならなくなった。</ll>
				</ul>
				<p></ll>
				</ul>
				<p>というわけで、SL 6.1 になったら次のようにインストール・設定するようにしました。普段設定しているやり方で紹介します。6.0 から更新された方も設定が上書きされているので同じように設定すれば良いです。</p>
				<h3> yum に関連したパッケージのインストール</h3>
				<p>yum に関連したパッケージをインストールします。</p>
				<ul>
				<li> yum-conf-sl-other: sl-fastbugs を使うためにインストールします。</li>
				<li> yum-plugin-fastestmirror: ミラーリポジトリリストのうち最もレスポンスの早いミラーリポジトリを使うためにインストールします。</li>
				<li> yum-plugin-priorities: 外部リポジトリと混ぜて使用する際に標準リポジトリのバージョンを優先するためにインストールします。
				<ul>
				<li> <strong>2011-08-28修正: torakitty さんにコメントでご指摘いただいたように yum-plugin-priorities が yum-conf-sl-other と誤って記述していたのを修正しました。</strong></ll>
				</ul>
				<p></ll>
				</ul>
				<pre># yum -y install yum-conf-sl-other yum-plugin-fastestmirror yum-plugin-priorities
</pre>
				<h3> オリジナルの設定ファイルのバックアップ</h3>
				<p>オリジナルの設定ファイルをバックアップします。</p>
				<pre>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
</pre>
				<h3> sl.repo の設定</h3>
				<p>リポジトリミラーとして国内ミラーを優先して使うように設定します。</p>
				<ul>
				<li> sl: 標準で有効化し、priority を最優先の 1 にします。</li>
				<li> sl-security: 標準で有効化し、priority を最優先の 1 にします。</li>
				<li> sl-source: 標準で無効化し、priority を最優先の 1 にします。</ll>
				</ul>
				<pre>cat &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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_
</pre>
				<h3> sl-other.repo の設定</h3>
				<p>リポジトリミラーとして国内ミラーを優先して使うように設定します。</p>
				<ul>
				<li> sl-fastbugs: 標準で有効化し、priority を最優先の 1 にします。</li>
				<li> sl-debuginfo: 標準で無効化し、priority を最優先の 1 にします。</li>
				<li> sl-testing: 標準で無効化し、priority を最優先の 1 にします。</li>
				<li> sl-testing-source: 標準で無効化し、priority を最優先の 1 にします。</ll>
				</ul>
				<pre>cat &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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 &lt;&lt; '_EOF_' &gt; /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_
</pre>
				<h3> 設定の確認</h3>
				<p>yum コマンドを実行して設定を確認します。</p>
				<pre># 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
... 省略 ...
</pre>
				<p>上記のように Loading mirror の後、sl, sl-fastbugs, sl-security が表示されれば設定が出来ています。</p>
				<h3> まとめ</h3>
				<p>SL 6.1 用の yum リポジトリの設定方法を紹介しました。SL 6.0 からリポジトリ設定ファイルの構成が変わっていますので、SL 6.1 環境では設定をし直した方が良いです。</p>
				<p>設定中の priority は、<a href="http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/">RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</a> で触れた yum-conf-* を入れたら、1 より大きい数字を設定しておかないと優先度が反映されないので注意が必要です。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/' rel='bookmark' title='RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ'>RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</a> <small>概要 [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。 CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/' rel='bookmark' title='Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法'>Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</a> <small>概要 2011-07-29追記: アップデートすると 6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。詳細は Scientific Linux 6.1...</small></li>
<li><a href='http://jfut.integ.jp/2008/10/18/%E3%81%95%E3%82%8A%E3%81%92%E3%81%AA%E3%81%8F%E5%AE%89%E5%85%A8%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84maven%E3%81%B8%E3%81%AE%E5%AF%BE%E7%AD%96/' rel='bookmark' title='さりげなく安全ではないMavenへの対策'>さりげなく安全ではないMavenへの対策</a> <small> ...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</title>
		<link>http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/</link>
		<comments>http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 21:24:39 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=1061</guid>
		<description><![CDATA[概要 2011-07-29追記: アップデートすると 6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。詳細は Scientific Linux 6.1 での yum リポジトリ設定 に [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/' rel='bookmark' title='RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ'>RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</a> <small>概要 [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。 CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux...</small></li>
<li><a href='http://jfut.integ.jp/2009/01/22/red-hat-enterprise-linux-5-3-rhel-5-3-%E3%81%AE%E6%B0%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%93%E3%81%BE%E3%81%A8%E3%82%81/' rel='bookmark' title='Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ'>Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/' rel='bookmark' title='Scientific Linux 6.1 での yum リポジトリ設定'>Scientific Linux 6.1 での yum リポジトリ設定</a> <small>今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content13" class="fswiki_content">
				<h3> 概要</h3>
				<ul>
				<li> 2011-07-29追記: アップデートすると <strong>6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました</strong>。詳細は <a href="http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/">Scientific Linux 6.1 での yum リポジトリ設定</a> に書きました。</ll>
				</ul>
				<p>Scientific Linux 6.1 (SL 6.1) がリリースされました。</p>
				<ul>
				<li> <a href="http://www.scientificlinux.org/news/sl61">Scientific Linux &#8211; Scientific Linux 6.1</a></ll>
				</ul>
				<p>早速 SL 6.0 環境を yum update で 6.1 にアップグレードしようとしてみましたが、RHEL/CentOS と違ってそのままでは 6.1 にアップグレードされませんでした。</p>
				<p>Scientific Linux では /etc/yum.repos.d/sl.repo などで定義されている $releasever の変数の中身が 6 ではなく 6.0 とマイナーバージョンまで含めて入っているようで、最新マイナーバージョンの yum リポジトリが参照されず更新されないようです。</p>
				<p>これは商用製品などで特定マイナーバージョンでないと動作保証が得られない環境がある方には嬉しい仕様です。以前仕事で携わったところで、環境構築をしている方々が RHEL 5.x では自動的にマイナーバージョンが上げることを把握しておらず、タイミング良く新しいマイナーバージョンがリリースされ、その夜の自動更新でバージョンが上がってしまい問題が発生したことがあったので、そういったマイナーバージョンを固定したい環境では役立つでしょう。</p>
				<p>一方で、ずっと古いマイナーバージョンのままにするのも良くないので、アップグレードして良いタイミングになったら次のようにしてアップグレードします。</p>
				<h3> 現在バージョンの確認</h3>
				<p>現在のバージョンを確認します。</p>
				<pre># cat /etc/redhat-release
Scientific Linux release 6.0 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.0
</pre>
				<p>$release 変数の中身が 6.0 になっています。</p>
				<h3> sl-release の更新</h3>
				<p>一気にすべてのパッケージを 6.1 のものに更新しても良いと思いますが、まずは sl-release だけを更新します。</p>
				<pre># 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
</pre>
				<h3> 更新されたバージョンの確認</h3>
				<p>更新されたバージョンを確認します。</p>
				<pre># cat /etc/redhat-release
Scientific Linux release 6.1 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.1
</pre>
				<p>6.1 になりました。</p>
				<h3> すべてのパッケージを更新</h3>
				<p>すべてのパッケージを更新します。</p>
				<pre># yum update
... 省略 ...
Transaction Summary
========================================================================================================================
Install       1 Package(s)
Upgrade     147 Package(s)

Total download size: 132 M
Is this ok [y/N]: y
</pre>
				<p>これで無事 Scientific Linux 6.1 環境へのアップグレードが完了しました。</p>
				<p>今日(2011-07-29)時点では、Scientific Linux 6.0 のリポジトリで既に RHEL 6.1 の更新を先取りした最新 Kernel まで更新されていたので、既にその最新 Kernel を使用していたのであれば OS ごと再起動しなくても良いですが、更新前に最新 Kernel を使っていなかった場合や、いろいろ更新されたのですっきりしたい方は一度 OS ごと再起動しておくと良いです。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/' rel='bookmark' title='RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ'>RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</a> <small>概要 [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。 CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux...</small></li>
<li><a href='http://jfut.integ.jp/2009/01/22/red-hat-enterprise-linux-5-3-rhel-5-3-%E3%81%AE%E6%B0%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%93%E3%81%BE%E3%81%A8%E3%82%81/' rel='bookmark' title='Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ'>Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/' rel='bookmark' title='Scientific Linux 6.1 での yum リポジトリ設定'>Scientific Linux 6.1 での yum リポジトリ設定</a> <small>今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>RHEL/Scientific Linux/CentOS 5 から RHEL/Scientific Linux/CentOS 6 へ</title>
		<link>http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/</link>
		<comments>http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 03:28:57 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=977</guid>
		<description><![CDATA[概要 [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。 CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux 6.0 (RHEL  [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/' rel='bookmark' title='Scientific Linux 6.1 での yum リポジトリ設定'>Scientific Linux 6.1 での yum リポジトリ設定</a> <small>今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/' rel='bookmark' title='Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法'>Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</a> <small>概要 2011-07-29追記: アップデートすると 6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。詳細は Scientific Linux 6.1...</small></li>
<li><a href='http://jfut.integ.jp/2009/01/22/red-hat-enterprise-linux-5-3-rhel-5-3-%E3%81%AE%E6%B0%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%93%E3%81%BE%E3%81%A8%E3%82%81/' rel='bookmark' title='Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ'>Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ</a> <small> ...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content21" class="fswiki_content">
				<h2> 概要</h2>
				<ul>
				<li> [2011-07-17追記]: sl-fastbugs　の国内リポジトリミラーを追加しました。</ll>
				</ul>
				<p>CentOS 6.0 がリリースされ、これから Red Hat Enterprise Linux 6.0 (RHEL 6.0) 系 に更新するのに Scientific Linux 6.0 (SL 6.0) と CentOS 6.0 のどちらに更新しようか迷っている方が多いと思います。</p>
				<p>そんな方向けに 5.x から 6.0 になって何が変わったのか、そして、SL と CentOS で何が違うのか気付いた点をまとめておきます。前者は有償サポートのある RHEL 6.0 へ移行する際にも参考になると思います。</p>
				<h2> RHEL 6.0、SL 6.0、CentOS 6.0 の収録パッケージの違い</h2>
				<p>まずは、一番気になるであろう RHEL 6.0、SL 6.0、CentOS 6.0 の収録パッケージの違いをまとめます。6.0 では、収録パッケージの違いは SL も CentOS も下記にあげるように最小限に留まっており、基本的にオリジナルの RHEL 6.0 リリース時点と同じバージョンが収録されています。</p>
				<h3> RHEL 6.0 と SL 6.0 の違い</h3>
				<p>SL 5.x では、RHEL 5.x に R や graphviz などのパッケージも加えていましたが、6.0 では最低限の追加しかされていません。</p>
				<p>下記は SL 6.0 に追加・修正されているパッケージの一覧です。それぞれのパッケージの詳細は、<a href="http://www.scientificlinux.org/distributions/6x/rnotes/sl-release-notes-6.0.html">Scientific Linux 6.0 Release Notes</a> に書かれています。</p>
				<h4> 追加されたパッケージ</h4>
				<ul>
				<li> SL_desktop_tweaks-6-3.src.rpm</li>
				<li> SL_enable_serialconsole-4.0-1.src.rpm</li>
				<li> SL_no_colorls-1.0-3.src.rpm</li>
				<li> SL_password_for_singleuser-3.0-1.src.rpm</li>
				<li> glib-1.2.10-33.el6.src.rpm</li>
				<li> gtk+-1.2.10-70.el6.src.rpm</li>
				<li> icewm-1.2.37-1.2.src.rpm</li>
				<li> imlib-1.9.15-14.el6.src.rpm</li>
				<li> livecd-tools-0.3.6-3.el6.src.rpm</li>
				<li> liveusb-creator-3.9.2-sl6.0.7.rolling.src.rpm</li>
				<li> openafs-firstboot-1.6-1.sl6.src.rpm</li>
				<li> openafs.SLx-1.6.0-91.pre2.src.rpm</li>
				<li> revisor-2.2-2.sl6.4.src.rpm</li>
				<li> sl-release-6.0-6.0.0.37.sl6.0.92rolling.src.rpm</li>
				<li> sl-revisor-configs-1-6.0.src.rpm</li>
				<li> yum-autoupdate-2-1.src.rpm</li>
				<li> yum-conf-adobe-6-1.src.rpm</li>
				<li> yum-conf-atrpms-6-1.src.rpm</li>
				<li> yum-conf-elrepo-6-1.src.rpm</li>
				<li> yum-conf-epel-6-1.src.rpm</li>
				<li> yum-conf-rpmforge-6-1.src.rpm</li>
				<li> yum-conf-sl6x-1-1.src.rpm</ll>
				</ul>
				<p>最小構成で自動的にインストールされるのは、sl-release と yum-autoupdate のみです。</p>
				<h4> 修正されたパッケージ</h4>
				<ul>
				<li> anaconda-13.21.82-1.sl6.2.src.rpm</li>
				<li> epydoc-3.0.1-5.1.el6.0.sl6.src.rpm</li>
				<li> guile-1.8.7-4.el6.0.sl6.src.rpm</li>
				<li> httpd-2.2.15-5.sl6.src.rpm</li>
				<li> kdepim-runtime-4.3.4-4.el6.0.sl6.src.rpm</li>
				<li> linuxdoc-tools-0.9.65-3.el6.0.sl.src.rpm</li>
				<li> mod_auth_kerb-5.4-6.el6.0.sl6.src.rpm</li>
				<li> nss-3.12.7-2.el6.0.sl6.src.rpm</li>
				<li> opal-3.6.6-4.el6.0.sl6.src.rpm</li>
				<li> pilot-link-0.12.4-6.el6.0.sl6.src.rpm</li>
				<li> plymouth-0.8.3-17.sl6.2.src.rpm</li>
				<li> redhat-logos-60.0.14-1.sl6.1.src.rpm</li>
				<li> report-0.18-7.sl6.src.rpm</li>
				<li> rome-0.9-4.2.el6.0.sl6.src.rpm</li>
				<li> ruby-1.8.7.299-4.el6.0.sl6.1.src.rpm</li>
				<li> sl-bookmarks-6-1.sl6.src.rpm</li>
				<li> sl-indexhtml-6-1.sl6.src.rpm</li>
				<li> sl-release-6.0-6.0.1.src.rpm</li>
				<li> sl-release-notes-6.0-0.1.rolling.src.rpm</ll>
				</ul>
				<p>追加パッケージのうち運用時に便利なのは、yum-autoupdate と yum-conf-* です。yum-autoupdate は後述しますが、yum による自動更新を実行するツールです。yum-conf-* は、外部リポジトリを使用するリポジトリファイルです。メジャーな外部リポジトリは収録されていて、すぐに外部リポジトリを使用できるのは使い勝手が良いです。</p>
				<h3> RHEL 6.0 と CentOS 6.0 の違い</h3>
				<p>CentOS のインストールメディアはなるべく RHEL と同じになるように追加パッケージは基本的にありません。ただし、extras リポジトリで独自のパッケージを追加していくので、一概に SL と比較できません。なお、執筆時点では、6.0 の extras リポジトリはまだ空です。したがって、CentOS 5.x で extras リポジトリにあるものを期待して使用していた方は、今すぐ 6.0 に乗り換えると困るかもしれません。</p>
				<p>下記は CentOS 6.0 に追加・修正されているパッケージの一覧です。<a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.0/Japanese">CentOS 6.0 リリースノート</a> には、削除したパッケージも書かれています。</p>
				<h4> 追加されたパッケージ</h4>
				<ul>
				<li> centos-indexhtml-6-1.el6.centos.src.rpm</li>
				<li> centos-release-6-0.el6.centos.5.src.rpm</ll>
				</ul>
				<h4> 修正されたパッケージ</h4>
				<ul>
				<li> anaconda-13.21.82-1.el6.centos.1.src.rpm</li>
				<li> firefox-3.6.9-2.el6.centos.src.rpm</li>
				<li> httpd-2.2.15-5.el6.centos.src.rpm</li>
				<li> kabi-whitelists-20100820-1.el6.centos.src.rpm</li>
				<li> kabi-yum-plugins-1.0-2.el6.centos.src.rpm</li>
				<li> kde-settings-4.3.1-1.el6.centos.src.rpm</li>
				<li> luci-0.22.2-14.el6.centos.src.rpm</li>
				<li> openssl098e-0.9.8e-17.el6.centos.src.rpm</li>
				<li> plymouth-0.8.3-17.el6.centos.src.rpm</li>
				<li> redhat-bookmarks-6-1.el6.centos.src.rpm</li>
				<li> report-0.18-7.el6.centos.src.rpm</li>
				<li> yum-3.2.27-14.el6.centos.src.rpm</ll>
				</ul>
				<p>CentOS 6.0 では、リリース時点で自動更新のためのツールが含まれていません。従来あった yum-updated や yum-cron も無くなっているため、自動更新をするには何らかの仕組みを自分で用意する必要があります。</p>
				<h2> 5.x と 6.0 の違い</h2>
				<p>5.x から 6.0 になってメジャーバージョンが変わったこともあって、いろいろと大きく変わっています。主に下記の点が変わっています。</p>
				<h3> インストールモード</h3>
				<p>インストールモードにはこれまで同様、Text mode と Graphical mode がありますが、Text mode では次のことができなくなっています。</p>
				<ul>
				<li> ストレージの構成とパーティションレイアウトの修正</li>
				<li> インストールパッケージの選択</ll>
				</ul>
				<p>5.x の時にも Text mode では、Linux MD や LVM の VG を一部編集することができない制限がありましたが、6.0 からはストレージの構成とパーティションレイアウトの修正も出来なくなったので、多くの場合、Graphical mode でインストールする必要があります。</p>
				<p>なお、搭載メモリが 652MB 以下の場合、自動的に Text mode でインストーラが起動します。それ以外で Text mode でインストールしたい場合は、インストーラメディアブート時の grub メニューで Tab を押して、ブートパラメータの末尾に text を付けて起動すれば良いです。</p>
				<p>Graphical mode では、Shift + Print Screen を押すと、画面のスクリーンキャプチャが下記のディレクトリに保存されるので記録を残したい方はこれを利用すると良いです。</p>
				<ul>
				<li> /root/anaconda-screenshot/screenshot-NNNN.png</ll>
				</ul>
				<h3> インストールパッケージ</h3>
				<p>インストールパッケージはサーバとして使用するなら インストールタイプを Minimal にし、Customize now をチェックして、次のパッケージグループを足すのが良いでしょう。他の必要なサーバソフトウェアは後から yum で入れれば良いです。</p>
				<ul>
				<li> Base System
				<ul>
				<li> Base</li>
				</ul>
				</li>
				<li> Development
				<ul>
				<li> Additional Development</li>
				<li> Development tools</ll>
				</ul>
				<p></ll>
				</ul>
				<p>CentOS 6.0 の場合、デフォルトで Minimal が選択されています。一方、Scientific Linux 6.0 の場合、デフォルトで Desktop が選択されているので一番下にある Minimal を選択する必要があります。さらに、Scientific Linux 6.0 の場合、Minimal にしても次のパッケージグループがインストールするようにチェックされています。</p>
				<ul>
				<li> SL Addons
				<ul>
				<li> Misc Scientific Linux Packages</li>
				</ul>
				</li>
				<li> Scalable Filesystem Support
				<ul>
				<li> Scalable Filesystems</ll>
				</ul>
				<p></ll>
				</ul>
				<p>これらが不要な場合はチェックを外してしまって問題ありません。参考までにチェックしたままだと、それぞれ下記のパッケージがインストールされます。内容から判るとおり xfs を使わない限り必要ないです。</p>
				<h4> Misc Scientific Linux Packages</h4>
				<p>このパッケージグループには下記のパッケージが所属していますが、optional 指定になっているため、実際にはインストールされません。</p>
				<ul>
				<li> SL_desktop_tweaks</li>
				<li> SL_enable_serialconsole</li>
				<li> SL_enable_serialconsole-192</li>
				<li> SL_enable_serialconsole-384</li>
				<li> SL_enable_serialconsole-1152</li>
				<li> SL_no_colorls</li>
				<li> SL_password_for_singleuser</li>
				<li> revisor</ll>
				</ul>
				<h4> Scalable Filesystems</h4>
				<ul>
				<li> xfsprogs</li>
				<li> xfsdump</ll>
				</ul>
				<p>また、CentOS では yum-plugin-fastestmirror が自動的にインストールされますが、SL ではインストールされません。</p>
				<h3> NIC の識別</h3>
				<p>6.0 から NIC の識別には /etc/udev/rules.d/70-persistent-net.rules が使用されています。このファイルには、ethX と NIC の MAC アドレスを紐づける設定が書かれていて、NIC を増減しても常に同じ NIC に同じ ethX が割り当てられることが保証されます。しかし、VM などでイメージをコピーして使いまわす時にはこの仕組みが邪魔となり、VM コピーに伴い NIC の MAC アドレスが変わると NIC を認識できなくなります。</p>
				<p>したがてって、VM イメージをコピーする時には、次のどちらかの方法で対処する必要があります。</p>
				<ol>
				<li> /etc/udev/rules.d/70-persistent-net.rules を削除して再起動します。
				<ul>
				<li> 再起動後、自動的にファイルが生成されます。</li>
				</ul>
				</li>
				<li> /etc/udev/rules.d/70-persistent-net.rules を修正して再起動します。
				<ul>
				<li> MAC アドレスを正しいものに書き換えるか、不要な NIC の情報を削除します。</li>
				<li> 再起動後、自動的にファイルが修正されます。</ll>
				</ul>
				<p></ll>
				</ol>
				<h3> 国内リポジトリミラー</h3>
				<p>SL も CentOS も国内リポジトリミラーは充実しています。必要に応じて mirrorlist を修正すると良いです。</p>
				<h4> SL 6.0</h4>
				<ul>
				<li> sl (/etc/yum.repos.d/sl.repo)</ll>
				</ul>
				<pre>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/
</pre>
				<ul>
				<li> sl-security (/etc/yum.repos.d/sl-updates.repo)</ll>
				</ul>
				<pre>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/
</pre>
				<ul>
				<li> sl-fastbugs (/etc/yum.repos.d/sl-updates.repo)
				<ul>
				<li> CentOS 6　では updates に含まれている バグ fix </ll>
				</ul>
				<p></ll>
				</ul>
				<pre>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/
</pre>
				<h4> CentOS 6.0</h4>
				<ul>
				<li> base (/etc/yum.repos.d/CentOS-Base.repo)</ll>
				</ul>
				<pre>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/
</pre>
				<ul>
				<li> updates (/etc/yum.repos.d/CentOS-Base.repo)</ll>
				</ul>
				<pre>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/
</pre>
				<h3> 自動更新</h3>
				<p>SL 6.0 と CentOS 6.0 の自動更新について説明します。</p>
				<h4> SL 6.0</h4>
				<p>SL 6.0 では yum-autoupdate が自動的にインストールされます。このパッケージは、SL 独自に追加されているパッケージであるため CentOS ではインストールされません。</p>
				<p>yum-autoupdate の設定ファイルは、/etc/sysconfig/yum-autoupdate にあります。デフォルトでは下記のパッケージが自動更新から除外されています。</p>
				<ul>
				<li> kernel*</li>
				<li> openafs*</li>
				<li> *-kmdl-*</li>
				<li> kmod-*</li>
				<li> *firmware*</ll>
				</ul>
				<p>これらも自動更新したい場合は設定ファイルの EXCLUDE を空にするか、コメントアウトすれば良いです。</p>
				<pre>$ 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=&quot;kernel* openafs* *-kmdl-* kmod-* *firmware*&quot;
-EXCLUDE=&quot;kernel* openafs* *-kmdl-* kmod-* *firmware*&quot;
+#EXCLUDE=&quot;kernel* openafs* *-kmdl-* kmod-* *firmware*&quot;

 # DEBUG
 #     true - turn on debug mode (be more verbose)
</pre>
				<p>yum-autoupdate は /etc/cron.daily/yum-autoupdate から毎朝実行されます。また、更新パッケージがある時は root 宛に更新したパッケージ一覧が記載されたメールが送信されます。この宛先は設定ファイルで変更できます。</p>
				<h4> CentOS 6.0</h4>
				<p>前述したように CentOS 6.0 では自動更新の仕組みが提供されていません。今後、何らかの公式のパッケージが提供されるかもしれませんが、実運用に困る方は下記のような /etc/cron.daily/yum.cron などを作っておくのが良いと思います。</p>
				<pre>cat &lt;&lt; '_EOF_' &gt; /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
</pre>
				<h3> その他の 5.x から 6.0 になって変わったこと</h3>
				<p>その他、SL と CentOS に限らず、RHEL 5.x から 6.0 になって個人的に影響があった変更点を箇条書きします。</p>
				<p>その他の違いや詳細は、Red Hat 社の <a href="http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/index.html">Red Hat Enterprise Linux 6 移行計画ガイド</a> を見ると良いです。</p>
				<ul>
				<li> デフォルトのファイルシステムが ext3 から ext4 に変更されました</li>
				<li> Xen が無くなり、KVM のみになりました
				<ul>
				<li> KVM: -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0&#215;4 がない時、-balloon virtio をオプション指定しないとバルーンメモリが有効になりませんでした</li>
				</ul>
				</li>
				<li> iptables で ! を使う時はオプションの前にしないとエラーになるようになりました
				<ul>
				<li> NG: -s ! 10.0.0.0/24</li>
				<li> OK: ! -s 10.0.0.0/24</li>
				</ul>
				</li>
				<li> BIND の caching-nameserver は bind パッケージに統合されました</li>
				<li> Dovecot の設定書式が変わりました</li>
				<li> OpenLDAP の設定書式が変わりました
				<ul>
				<li> 設定も DB で持てるようになりました</li>
				</ul>
				</li>
				<li> LDAP クライアント化するのに nscd に加えて nslcd デーモンが必要になりました</ll>
				</ul>
				<h2> まとめ</h2>
				<p>メジャーバージョンが 5.x から 6.0 になったことで多くのパッケージにもメジャーバージョンが更新されました。パッケージによっては設定書式が変わっていて一から調べなおす必要があることもあります。</p>
				<p>6.0 では SL 6.0 と CentOS 6.0 で大きな違いはありません。個人的には yum-autoupdate と yum-conf-* が気に入ったのと、SL の方がリリースサイクルが早そうだという理由でこれから作るサーバで OS を決めて良い時はすべて SL にしようと考えています。</p>
				<p>SL を使用する難点としては、まだ VPS サーバなどでは CentOS の方がサポートされていることが多いことですが、これも最近の状況からすると徐々に SL のシェアが増えるんじゃないかなと思います。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/' rel='bookmark' title='Scientific Linux 6.1 での yum リポジトリ設定'>Scientific Linux 6.1 での yum リポジトリ設定</a> <small>今朝 Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法 を書きましたが、6.0 時代に設定した yum...</small></li>
<li><a href='http://jfut.integ.jp/2011/07/29/scientific-linux-60-upgrade-to-61/' rel='bookmark' title='Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法'>Scientific Linux 6.0 環境を 6.1 環境へアップグレードする方法</a> <small>概要 2011-07-29追記: アップデートすると 6.0 時代に設定した yum のリポジトリ設定が上書きされ、初期化されていました。詳細は Scientific Linux 6.1...</small></li>
<li><a href='http://jfut.integ.jp/2009/01/22/red-hat-enterprise-linux-5-3-rhel-5-3-%E3%81%AE%E6%B0%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%93%E3%81%BE%E3%81%A8%E3%82%81/' rel='bookmark' title='Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ'>Red Hat Enterprise Linux 5.3 (RHEL 5.3) の気になるとこまとめ</a> <small> ...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2011/07/13/rhel-sl-centos-5-to-rhel-sl-centos-6/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Munin Plugin: ipmitool_sensor_ 1.5 &amp; 1.6</title>
		<link>http://jfut.integ.jp/2011/01/28/munin-plugin-ipmitool_sensor_-1-5/</link>
		<comments>http://jfut.integ.jp/2011/01/28/munin-plugin-ipmitool_sensor_-1-5/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 16:13:46 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=960</guid>
		<description><![CDATA[Munin Plugin である ipmitool_sensor_ plugin の新しいバージョン 1.5 をリリースしました。 [2011-02-07追記]: コメントにて kikumoto さんよりご指摘いただいた [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2008/10/29/munin-ipmitool_sensor_-plugin/' rel='bookmark' title='Munin ipmitool_sensor_ Plugin'>Munin ipmitool_sensor_ Plugin</a> <small>Muninでマシンのファン回転数、温度、電圧をグラフ化するにはsensor_というPluginを使うのが楽です。ただし、このPluginはlm_sensorsの値を見るので、比較的新しい対応していないマザーボードだと値を [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/02/08/munin-plugin-ipmitool_sensor_-1-4/' rel='bookmark' title='Munin Plugin: ipmitool_sensor_ 1.4'>Munin Plugin: ipmitool_sensor_ 1.4</a> <small>以前、2008-10-29 (Wed) &#8211; Munin ipmitool_sensor_ Pluginで紹介したMunin用のipmitool_sensor_ Pluginの新しいバージョンをリリースしました [...]...</small></li>
<li><a href='http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/' rel='bookmark' title='WP FreeStyle Wiki の Plugin Directory への登録'>WP FreeStyle Wiki の Plugin Directory への登録</a> <small>去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki を、WordPress の Plugin Directory に登録しました。 WP...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content31" class="fswiki_content">
				<p>Munin Plugin である ipmitool_sensor_ plugin の新しいバージョン 1.5 をリリースしました。</p>
				<p>[2011-02-07追記]: コメントにて kikumoto さんよりご指摘いただいたとおり、temp_upper_warning と temp_upper_critical が逆になっていたので修正したバージョン 1.6 をアップロードしました。</p>
				<ul>
				<li> <a href="http://exchange.munin-monitoring.org/plugins/ipmitool_sensor_/">Munin Exchange | ipmitool_sensor_ plugin</a></ll>
				</ul>
				<p>このバージョンの変更点は下記のとおりです。</p>
				<ul>
				<li> temp_upper_warning と temp_upper_critical の設定が有効に動作していなかったのを修正</ll>
				</ul>
				<p>設定値を取得するところで指定する設定名を typo していて正常に動作していませんでした。なお、今回の修正は、メールでご指摘いただきました(メールでお名前載せてよいか確認し忘れたのでとりあえず未記載で)。ご指摘ありがとうございました。</p>
				<p>久しぶりに Munin Exchange を除いてみたところ、IPMI 関係の Plugin は現在 7 個あるようです。</p>
				<ul>
				<li> <a href="http://exchange.munin-monitoring.org/plugins/search?keyword=ipmi">http://exchange.munin-monitoring.org/plugins/search?keyword=ipmi</a></ll>
				</ul>
				<p>各ページに飛ぶとダウンロード数が出ます。ipmitool_sensor_ plugin は、今のところ 431 回ダウンロードされていて、ipmi plugin の中では一番使っていただけているようでした。IPMI という超マイナー需要向けの Plugin なので、他カテゴリの Plugin に比べたら全然少ない回数ですが嬉しいです。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2008/10/29/munin-ipmitool_sensor_-plugin/' rel='bookmark' title='Munin ipmitool_sensor_ Plugin'>Munin ipmitool_sensor_ Plugin</a> <small>Muninでマシンのファン回転数、温度、電圧をグラフ化するにはsensor_というPluginを使うのが楽です。ただし、このPluginはlm_sensorsの値を見るので、比較的新しい対応していないマザーボードだと値を [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/02/08/munin-plugin-ipmitool_sensor_-1-4/' rel='bookmark' title='Munin Plugin: ipmitool_sensor_ 1.4'>Munin Plugin: ipmitool_sensor_ 1.4</a> <small>以前、2008-10-29 (Wed) &#8211; Munin ipmitool_sensor_ Pluginで紹介したMunin用のipmitool_sensor_ Pluginの新しいバージョンをリリースしました [...]...</small></li>
<li><a href='http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/' rel='bookmark' title='WP FreeStyle Wiki の Plugin Directory への登録'>WP FreeStyle Wiki の Plugin Directory への登録</a> <small>去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki を、WordPress の Plugin Directory に登録しました。 WP...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2011/01/28/munin-plugin-ipmitool_sensor_-1-5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WP FreeStyle Wiki の Plugin Directory への登録</title>
		<link>http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/</link>
		<comments>http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 17:04:13 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=953</guid>
		<description><![CDATA[去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki を、WordPress の Plugin Directory に登録しました。 WP FreeStyle Wiki Plugin Dire [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/01/wp-fswiki/' rel='bookmark' title='WP FreeStyle Wiki'>WP FreeStyle Wiki</a> <small>tDiaryからWordPressに乗り換え、これから書いていくのに標準のエディタで書くのがどうしても面倒だったので、一番慣れ親しんでいるFreeStyle Wikiの記法で書けるPlugin、WP FreeStyle [...]...</small></li>
<li><a href='http://jfut.integ.jp/2008/10/29/munin-ipmitool_sensor_-plugin/' rel='bookmark' title='Munin ipmitool_sensor_ Plugin'>Munin ipmitool_sensor_ Plugin</a> <small>Muninでマシンのファン回転数、温度、電圧をグラフ化するにはsensor_というPluginを使うのが楽です。ただし、このPluginはlm_sensorsの値を見るので、比較的新しい対応していないマザーボードだと値を [...]...</small></li>
<li><a href='http://jfut.integ.jp/2011/01/28/munin-plugin-ipmitool_sensor_-1-5/' rel='bookmark' title='Munin Plugin: ipmitool_sensor_ 1.5 &amp; 1.6'>Munin Plugin: ipmitool_sensor_ 1.5 &#038; 1.6</a> <small>Munin Plugin である ipmitool_sensor_ plugin の新しいバージョン 1.5 をリリースしました。 [2011-02-07追記]: コメントにて...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content44" class="fswiki_content">
				<p><a href="http://jfut.integ.jp/2010/01/01/wp-fswiki/">去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki</a> を、WordPress の Plugin Directory に登録しました。</p>
				<ul>
				<li> <a href="http://wordpress.org/extend/plugins/wp-freestyle-wiki/">WP FreeStyle Wiki</a></ll>
				</ul>
				<p>Plugin Directory に登録したことで、WordPress の管理画面のプラグインから新規追加や自動更新できるようになりました。また、同封する FreeStyle Wiki を FreeStyle Wiki 3.6.4 にバージョンアップして、Plugin Directory 用に修正した WP FreeStyle Wiki 0.2.2 をリリースしてあります。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/01/wp-fswiki/' rel='bookmark' title='WP FreeStyle Wiki'>WP FreeStyle Wiki</a> <small>tDiaryからWordPressに乗り換え、これから書いていくのに標準のエディタで書くのがどうしても面倒だったので、一番慣れ親しんでいるFreeStyle Wikiの記法で書けるPlugin、WP FreeStyle [...]...</small></li>
<li><a href='http://jfut.integ.jp/2008/10/29/munin-ipmitool_sensor_-plugin/' rel='bookmark' title='Munin ipmitool_sensor_ Plugin'>Munin ipmitool_sensor_ Plugin</a> <small>Muninでマシンのファン回転数、温度、電圧をグラフ化するにはsensor_というPluginを使うのが楽です。ただし、このPluginはlm_sensorsの値を見るので、比較的新しい対応していないマザーボードだと値を [...]...</small></li>
<li><a href='http://jfut.integ.jp/2011/01/28/munin-plugin-ipmitool_sensor_-1-5/' rel='bookmark' title='Munin Plugin: ipmitool_sensor_ 1.5 &amp; 1.6'>Munin Plugin: ipmitool_sensor_ 1.5 &#038; 1.6</a> <small>Munin Plugin である ipmitool_sensor_ plugin の新しいバージョン 1.5 をリリースしました。 [2011-02-07追記]: コメントにて...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>古いサーバでJDK 6 Update 18に更新したらタイムゾーンがJSTからGMTに変わった件と対処法</title>
		<link>http://jfut.integ.jp/2010/01/20/jdk-6-update-18-default-timezone-on-old-server/</link>
		<comments>http://jfut.integ.jp/2010/01/20/jdk-6-update-18-default-timezone-on-old-server/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 13:09:50 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=910</guid>
		<description><![CDATA[とある古いサーバにインストールされているJDK 6 Update 17をJDK 6 Update 18に更新したらデフォルトのタイムゾーンがJSTからGMTに変わってしまいました。他のサーバでは問題なかったのでこの古いサ [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2005/12/04/apache-2-2-dav_svn%E3%81%8C%E3%82%A8%E3%83%A9%E3%83%BC-%E8%A7%A3%E6%B1%BA/' rel='bookmark' title='Apache 2.2 dav_svnがエラー (解決)'>Apache 2.2 dav_svnがエラー (解決)</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/05/28/jdk-5-0-update-7/' rel='bookmark' title='JDK 5.0 Update 7'>JDK 5.0 Update 7</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2007/11/17/devloader-ex-mayaa/' rel='bookmark' title='DevLoader改変、Mayaa対応編'>DevLoader改変、Mayaa対応編</a> <small>昨日のDevLoader改変により、最近のSeasarを使ったプロジェクトに対応したものの、今日いざ自分のMayaaを使ったプロジェクトのjarファイルをMavenで管理させたら見事に上手く動きませんでした。 というわけ [...]...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content52" class="fswiki_content">
				<p>とある古いサーバにインストールされているJDK 6 Update 17をJDK 6 Update 18に更新したらデフォルトのタイムゾーンがJSTからGMTに変わってしまいました。<strong>他のサーバでは問題なかったのでこの古いサーバ限定の問題です。</strong></p>
				<p>状況を確認するためにサンプルコードを動かして確認しました。</p>
				<pre>import java.util.Date;

public class DateTest {
    public static void main(String[] args) {
        System.out.println(new java.util.Date());
    }
}
</pre>
				<p>実行してみます。</p>
				<pre># /usr/local/java/jdk1.6.0_17/bin/java DateTest
Wed Jan 20 21:42:44 JST 2010
# /usr/local/java/jdk1.6.0_18/bin/java DateTest
Wed Jan 20 12:42:56 GMT 2010
</pre>
				<p>というようにJDK 6 Update 17ではJSTなのにJDK 6 Update 18だとGMTになってしまいました。<a href="http://sel.ist.osaka-u.ac.jp/~m-itii/php/d/soliloquy.php?mode=daily&#038;date=2007%2F3%2F15">JVMのタイムゾーンがGMTになる 追記</a>と同じ原因のようで、/etc/localtime を調べてみたら /usr/share/zoneinfo/Asia/Tokyo と違うものでした。</p>
				<pre># ls -al /etc/localtime
-rw-r--r--  1 root root 73 Feb 26  2004 /etc/localtime
# ls -al /usr/share/zoneinfo/Asia/Tokyo
-rw-r--r--  2 root root 125 Mar 22  2006 /usr/share/zoneinfo/Asia/Tokyo
</pre>
				<p>というわけで、コピーして直します。</p>
				<pre>cp -a /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
</pre>
				<p>再び確認します。</p>
				<pre># /usr/local/java/jdk1.6.0_17/bin/java DateTest
Wed Jan 20 21:49:58 JST 2010
# /usr/local/java/jdk1.6.0_18/bin/java DateTest
Wed Jan 20 21:50:07 JST 2010
</pre>
				<p>無事直りました。良かった良かった。</p>
				<p>/etc/localtime が食い違ってのは、/etc/localtimeのタイムスタンプが2004-02-26 という古いサーバなので、インストール時に何かミスったか、これまでの運用の中での更新で何かがおきたのかなと思います。ただ、JDK更新したらいきなしWEBアプリが書き込むデータのタイムスタンプが9時間ずれ初めてたのでビックリしました。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2005/12/04/apache-2-2-dav_svn%E3%81%8C%E3%82%A8%E3%83%A9%E3%83%BC-%E8%A7%A3%E6%B1%BA/' rel='bookmark' title='Apache 2.2 dav_svnがエラー (解決)'>Apache 2.2 dav_svnがエラー (解決)</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/05/28/jdk-5-0-update-7/' rel='bookmark' title='JDK 5.0 Update 7'>JDK 5.0 Update 7</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2007/11/17/devloader-ex-mayaa/' rel='bookmark' title='DevLoader改変、Mayaa対応編'>DevLoader改変、Mayaa対応編</a> <small>昨日のDevLoader改変により、最近のSeasarを使ったプロジェクトに対応したものの、今日いざ自分のMayaaを使ったプロジェクトのjarファイルをMavenで管理させたら見事に上手く動きませんでした。 というわけ [...]...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2010/01/20/jdk-6-update-18-default-timezone-on-old-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cubbyのアクションクラスで定数を利用してリファクタリングしやすくする</title>
		<link>http://jfut.integ.jp/2010/01/11/cubby-actionclass-with-static-field/</link>
		<comments>http://jfut.integ.jp/2010/01/11/cubby-actionclass-with-static-field/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 03:10:12 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Seasar]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=884</guid>
		<description><![CDATA[Cubbyのアクションクラスにはバリデーションルールの定義時やアノテーションに文字列が登場します。文字列で指定しているのでリファクタリングする時に修正漏れなどがおきそうでちょっと怖いです。そこで、それらの文字列を定数にし [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/10/cubby-actionmethod-annotation-order/' rel='bookmark' title='Cubbyでアクションメソッドに指定するアノテーションの順番'>Cubbyでアクションメソッドに指定するアノテーションの順番</a> <small>しばらく時間が空いてからCubbyを使ったWEBアプリケーションを書く時に、アクションメソッドに指定するアノテーションの順番どうだったかなっと考えるのでまとめます。アノテーションなので適当な順番に書いても問題なく動作しま [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/04/16/cubby-regex-trim-required-validator/' rel='bookmark' title='入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理'>入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理</a> <small>入力フォームでユーザに文字を入力させると、前後に空白スペースなどを入れちゃったりしますよね。Validatorで前後に空白スペースがあればエラーにしても良いですが、それはちょっと不親切なので自動的に取り除いてあげるのが親 [...]...</small></li>
<li><a href='http://jfut.integ.jp/2007/01/09/1action-1actionform%E3%82%921event-1actionform%E3%81%B8/' rel='bookmark' title='1Action 1ActionFormを1Event 1ActionFormへ'>1Action 1ActionFormを1Event 1ActionFormへ</a> <small> ...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content60" class="fswiki_content">
				<p>Cubbyのアクションクラスにはバリデーションルールの定義時やアノテーションに文字列が登場します。文字列で指定しているのでリファクタリングする時に修正漏れなどがおきそうでちょっと怖いです。そこで、それらの文字列を定数にしてしまえば、少しだけリファクタリングしやすくなりそうです。また、IDE上での参照元・参照先への移動や使われているかどうかのチェックも簡単になります。</p>
				<p>例えば、次のようなアクションクラスがあるとします。</p>
				<pre>@Path(&quot;hoge&quot;)
public class HogeAction extends AbstractAction {

    @Binding(bindingType = BindingType.NONE)
    protected ValidationRules processApplyValidation =
        new DefaultValidationRules() {
            @Override
            public void initialize() {
                add(&quot;token&quot;, new TokenValidator());
                add(&quot;name&quot;, new TokenValidator());
                add(&quot;comment&quot;, new TokenValidator());
            }
        };

    @RequestParameter
    public HogeParameterDto hogeParameterDto;

    @Path(&quot;process&quot;)
    @Accept(POST)
    @OnSubmit(&quot;apply&quot;)
    @Form(&quot;hogeParameterDto&quot;)
    @Validation(rules = &quot;processApplyValidation&quot;, errorPage = &quot;/hoge/edit.html&quot;)
    public ActionResult processApply() {
        return new Forward(&quot;/hoge/edit.html&quot;);
    }

}
</pre>
				<p>これを次のようにします。</p>
				<pre>import static org.example.test.entity.names.Names.*;

@Path(&quot;hoge&quot;)
public class HogeAction extends AbstractAction {

    private static final String processApplyValidationName
        = &quot;processApplyValidation&quot;;
    @Binding(bindingType = BindingType.NONE)
    protected ValidationRules processApplyValidation =
        new DefaultValidationRules() {
            @Override
            public void initialize() {
                add(TOKEN, new TokenValidator());
                add(post().name().toString(), new TokenValidator());
                add(post().comment().toString(), new TokenValidator());
            }
        };

    private static final String hogeParameterDtoName = &quot;hogeParameterDto&quot;;
    @RequestParameter
    public HogeParameterDto hogeParameterDto;

    @Path(&quot;process&quot;)
    @Accept(POST)
    @OnSubmit(&quot;apply&quot;)
    @Form(hogeParameterDtoName)
    @Validation(rules = processApplyValidationName, errorPage = &quot;/hoge/edit.html&quot;)
    public ActionResult processApply() {
        return new Forward(&quot;/hoge/edit.html&quot;);
    }

}
</pre>
				<p>変更した箇所を説明します。</p>
				</div>
				<p><span id="more-884"></span></p>
				<div id="fswiki_content61" class="fswiki_content">
				<h3> 説明</h3>
				<h4> S2JDBC-GenのNamesクラス内のstatic関数をStatic Import</h4>
				<pre>import static org.example.test.entity.names.Names.*;
</pre>
				<p>S2JDBC-Gen 2.4.40で導入されたNamesクラス内のstatic関数をStatic Importします。バリデーションルールのinitialize()内で使います。</p>
				<ul>
				<li> 参考: <a href="http://d.hatena.ne.jp/taedium/20091008/p1">Namesクラス と SqlFilesクラス &#8211; taediumの日記</a></ll>
				</ul>
				<h4> バリデーションルールの変数名を定数定義</h4>
				<pre>private static final String processApplyValidationName = &quot;processApplyValidation&quot;;
</pre>
				<p>バリデーションルールprocessApplyValidationの変数名を表す定数です。アクションメソッドの @Validation にはここで指定した定数を使うようにすることでリファクタリングしやすくします。</p>
				<h4> バリデーションルール: TokenValidatorに使用するパラメータの定数化と使用</h4>
				<pre>add(TOKEN, new TokenValidator());
</pre>
				<p>Cubbyで標準提供されている2重サブミットを検証するTokenValidatorで仕様するパラメータ名を指定します。TOKEN は AbstractAction で次のように定義しておきます。</p>
				<pre>protected static final String TOKEN = &quot;token&quot;;
</pre>
				<p>この例では、パラメータ名に &quot;token&quot; を使用しています。</p>
				<h4> バリデーションルール: リクエストパラメータに定数を使用</h4>
				<pre>add(post().name().toString(), new TokenValidator());
add(post().comment().toString(), new TokenValidator());
</pre>
				<p>本来NamesクラスからStatic Importした静的関数はS2JDBCでjoinやwhereで指定するのに使うのに便利な関数ですが、ここではその文字列表現を流用してパラメータの指定に使用します。例ではテーブルpostが持つ属性名nameとcommentの文字列表現を流用しています。</p>
				<p>リクエストパラメータ名とテーブルの属性名は一緒なことが多いと思うので、多くの場合で流用できると思います。これでS2JBDC同様バリデーションの項目名もリファクタリングしやすくなります。</p>
				<h4> リクエストパラメータのバインド先の変数名を定数定義</h4>
				<pre>private static final String hogeParameterDtoName = &quot;hogeParameterDto&quot;;
</pre>
				<p>バリデーションルールの変数名同様、リクエストパラメータのバインド先hogeParameterDtoの変数名を表す定数です。アクションメソッドの @Form にはここで指定した定数を使うようにすることでリファクタリングしやすくします。</p>
				<h4> @Form で定数を使用する</h4>
				<pre>...
@Form(hogeParameterDtoName)
...
public ActionResult processApply() {
    ...
}
</pre>
				<p>先に定義した リクエストパラメータのバインド先hogeParameterDtoの変数名 をアクションメソッドに対するアノテーション @Form に指定します。</p>
				<h4> @Validation で定数を使用する</h4>
				<pre>...
@Validation(rules = processApplyValidationName, errorPage = &quot;/hoge/edit.html&quot;)
...
public ActionResult processApply() {
    ...
}
</pre>
				<p>先に定義した バリデーションルールprocessApplyValidationの変数名 をアクションメソッドに対するアノテーション @Validation に指定します。</p>
				<hr />
				<p>以上です。</p>
				<p>やろうと思えば、@Path や @OnSubmit などでも定数を使えますがそこは定数にしていません。@OnSubmitはHTMLファイルの中身と対応するので定数化してもリファクタリングのしやすさには影響しないですが、@PathはHTMLファイル名の変更や移動の時に使えるので定数化しても良いかもしれないですね。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/10/cubby-actionmethod-annotation-order/' rel='bookmark' title='Cubbyでアクションメソッドに指定するアノテーションの順番'>Cubbyでアクションメソッドに指定するアノテーションの順番</a> <small>しばらく時間が空いてからCubbyを使ったWEBアプリケーションを書く時に、アクションメソッドに指定するアノテーションの順番どうだったかなっと考えるのでまとめます。アノテーションなので適当な順番に書いても問題なく動作しま [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/04/16/cubby-regex-trim-required-validator/' rel='bookmark' title='入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理'>入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理</a> <small>入力フォームでユーザに文字を入力させると、前後に空白スペースなどを入れちゃったりしますよね。Validatorで前後に空白スペースがあればエラーにしても良いですが、それはちょっと不親切なので自動的に取り除いてあげるのが親 [...]...</small></li>
<li><a href='http://jfut.integ.jp/2007/01/09/1action-1actionform%E3%82%921event-1actionform%E3%81%B8/' rel='bookmark' title='1Action 1ActionFormを1Event 1ActionFormへ'>1Action 1ActionFormを1Event 1ActionFormへ</a> <small> ...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2010/01/11/cubby-actionclass-with-static-field/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cubbyでアクションメソッドに指定するアノテーションの順番</title>
		<link>http://jfut.integ.jp/2010/01/10/cubby-actionmethod-annotation-order/</link>
		<comments>http://jfut.integ.jp/2010/01/10/cubby-actionmethod-annotation-order/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 03:41:33 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Seasar]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=855</guid>
		<description><![CDATA[しばらく時間が空いてからCubbyを使ったWEBアプリケーションを書く時に、アクションメソッドに指定するアノテーションの順番どうだったかなっと考えるのでまとめます。アノテーションなので適当な順番に書いても問題なく動作しま [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/11/cubby-actionclass-with-static-field/' rel='bookmark' title='Cubbyのアクションクラスで定数を利用してリファクタリングしやすくする'>Cubbyのアクションクラスで定数を利用してリファクタリングしやすくする</a> <small>Cubbyのアクションクラスにはバリデーションルールの定義時やアノテーションに文字列が登場します。文字列で指定しているのでリファクタリングする時に修正漏れなどがおきそうでちょっと怖いです。そこで、それらの文字列を定数にし [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/04/16/cubby-regex-trim-required-validator/' rel='bookmark' title='入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理'>入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理</a> <small>入力フォームでユーザに文字を入力させると、前後に空白スペースなどを入れちゃったりしますよね。Validatorで前後に空白スペースがあればエラーにしても良いですが、それはちょっと不親切なので自動的に取り除いてあげるのが親 [...]...</small></li>
<li><a href='http://jfut.integ.jp/2008/01/20/cubby-is-good/' rel='bookmark' title='Cubbyの良いところ'>Cubbyの良いところ</a> <small>先日Cubbyで作った2個目の簡単なアプリを予定通り動かし始めました。今のとこ大きなトラブルもないようです。というわけで、Cubbyの良いところを書きたいと思います。ちなみにほとんど同じことがSAStrutsにも言えます [...]...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content73" class="fswiki_content">
				<p>しばらく時間が空いてからCubbyを使ったWEBアプリケーションを書く時に、アクションメソッドに指定するアノテーションの順番どうだったかなっと考えるのでまとめます。アノテーションなので適当な順番に書いても問題なく動作しますが、処理の流れを考えて次の順番で指定しています。</p>
				<ol>
				<li> URIを指定: @Path</li>
				<li> HTTPメソッドを指定: @Accept</li>
				<li> 同一URIへのPOST時などに実行するアクションメソッドを変える指定: @OnSubmit</li>
				<li> リクエストパラメータのバインド先を指定: @Form</li>
				<li> リクエストパラメータのバリデーションを指定: @Validation</ll>
				</ol>
				<pre>@Path(&quot;hoge&quot;)
public class HogeAction extends AbstractAction {
    ...
    @Path(&quot;process&quot;)
    @Accept(POST)
    @OnSubmit(&quot;apply&quot;)
    @Form(&quot;hogeParameterDto&quot;)
    @Validation(rules = &quot;processApplyValidation&quot;, errorPage = &quot;/hoge/edit.html&quot;)
    public ActionResult processApply() {
        return new Forward(&quot;/hoge/edit.html&quot;);
    }
    ...
}
</pre>
				<ul>
				<li> 参考: <a href="http://cubby.seasar.org/20x/action.html">Cubby Project &#8211; アクション</a></ll>
				</ul>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2010/01/11/cubby-actionclass-with-static-field/' rel='bookmark' title='Cubbyのアクションクラスで定数を利用してリファクタリングしやすくする'>Cubbyのアクションクラスで定数を利用してリファクタリングしやすくする</a> <small>Cubbyのアクションクラスにはバリデーションルールの定義時やアノテーションに文字列が登場します。文字列で指定しているのでリファクタリングする時に修正漏れなどがおきそうでちょっと怖いです。そこで、それらの文字列を定数にし [...]...</small></li>
<li><a href='http://jfut.integ.jp/2009/04/16/cubby-regex-trim-required-validator/' rel='bookmark' title='入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理'>入力された文字の前後の空白スペースなどの文字列を除去しても有効な文字があるか検証するValidatorと実際に取り除く処理</a> <small>入力フォームでユーザに文字を入力させると、前後に空白スペースなどを入れちゃったりしますよね。Validatorで前後に空白スペースがあればエラーにしても良いですが、それはちょっと不親切なので自動的に取り除いてあげるのが親 [...]...</small></li>
<li><a href='http://jfut.integ.jp/2008/01/20/cubby-is-good/' rel='bookmark' title='Cubbyの良いところ'>Cubbyの良いところ</a> <small>先日Cubbyで作った2個目の簡単なアプリを予定通り動かし始めました。今のとこ大きなトラブルもないようです。というわけで、Cubbyの良いところを書きたいと思います。ちなみにほとんど同じことがSAStrutsにも言えます [...]...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2010/01/10/cubby-actionmethod-annotation-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JIRA 4.xと新しいPlugin機構</title>
		<link>http://jfut.integ.jp/2010/01/04/jira4-and-new-plugin-infrastructure/</link>
		<comments>http://jfut.integ.jp/2010/01/04/jira4-and-new-plugin-infrastructure/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 05:44:31 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Seasar]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=822</guid>
		<description><![CDATA[Seasarプロジェクトでも利用しているJIRA のライセンスを去年の10月に自分用に購入しました。JIRAを開発しているAtlassian社が10ユーザまで利用できるGet Started for $10というライセン [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2008/09/10/atlassian-jira-personal-license/' rel='bookmark' title='Atlassian JIRA &#8211; Personal License'>Atlassian JIRA &#8211; Personal License</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/05/18/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B/' rel='bookmark' title='バージョンの組み合わせ'>バージョンの組み合わせ</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/08/22/s2struts%E3%81%A7hot-deploy%E6%99%82%E3%81%ABthrowsinterceptor%E3%81%8C%E5%91%BC%E3%81%B0%E3%82%8C%E3%81%AA%E3%81%84-%E8%A7%A3%E6%B1%BA/' rel='bookmark' title='S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない (解決)'>S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない (解決)</a> <small> ...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content80" class="fswiki_content">
				<p><a href="https://www.seasar.org/issues/">Seasarプロジェクトでも利用しているJIRA</a> のライセンスを去年の10月に自分用に購入しました。JIRAを開発している<a href="http://www.atlassian.com/">Atlassian社</a>が10ユーザまで利用できるGet Started for $10というライセンスを始めたので思わず買いました。JIRA 4.0になって、JIRA 3.x以前にあったエディションの違いが無くなり、$10でEnterpriseエディションが使えるというのは破格です。JIRA 3.xまではLDAPサポートにEnterprise以上が必要でとても買える金額では無かったため嬉しいです。また、このライセンスの購入費用は全額 <a href="http://www.roomtoread.org/">Room to Read</a> に寄付されるプログラムになっています。</p>
				<p>日本円で購入したい場合は、Atlassian社のOfficial Atlassian Partnerである <a href="http://www.ricksoft.jp/">リックソフト株式会社</a> が1,050 円で販売されています。</p>
				<ul>
				<li> <a href="http://www.atlassian.com/software/jira/">Bug Tracking, Issue Tracking &amp; Project Management Software &#8211; JIRA</a> (Atlassian社)</li>
				<li> <a href="http://www.ricksoft.jp/product/atlassian/at_price">アトラシアン(Atlassian)製品の価格と購入（オンライン販売）</a> (リックソフト株式会社)</ll>
				</ul>
				<p>そんなわけで、だいぶ前置置きが長くなりましたが、自分用にJIRAの環境を作りました。購入当初JIRA 4.0には <a href="http://confluence.atlassian.com/display/JIRAKB/Gadgets+do+not+display+correctly+after+upgrade+to+JIRA+4.0">新しく導入されたガジェットの仕組みがSSL環境で上手く動かない問題</a> があったので、使い始めたのはこの問題がJIRA側で解決した4.0.1からです。</p>
				<p>ただ、まだ問題があって、Seasarプロジェクトで利用していた3.xのインストール手順でwarファイルを作成し、Tomcatにデプロイするとエラーがでて上手く起動しないのです。いろいろ試してみると自分で追加していたPluginを全部外すと起動しました。そんなことをつぶやいていたらリックソフトのohnukiさんがコンタクトをくださっていろいろやりとりした結果、原因が判明しました。</p>
				<p>原因は、JIRA 4.0からOSGiを使用した新しいPlugin機構(Version 2)がサポートされ、JIRA 3.xの時とPluginの配置の仕方が変わっていたことでした。これに気付かず、JIRA 3.xの導入の仕方で入れていたので上手くPluginがロードされなかったようです。一応、互換性のため、古いPluginの配置方法(Version 1)も使えるようですが、Tomcat 5.5.28では動作するものの、Tomcat 6.0.20では動作せず、それでエラーが出ていました。</p>
				<ul>
				<li> 参考: <a href="http://confluence.atlassian.com/display/JIRA/Managing+JIRA%27s+Plugins">Managing JIRA&#8217;s Plugins</a>
				<ul>
				<li> Version 1: atlassian-jira/WEB-INF/lib/ 以下に配置</li>
				<li> Version 2: jira.home/plugins/installed-plugins/ 以下に配置
				<ul>
				<li> jira.home はJIRA 4.0から導入されたホームディレクトリ指定</ll>
				</ul>
				<p></ll>
				</ul>
				<p></ll>
				</ul>
				<p>というわけで、無事やっとPluginも使えるようになりました。ohnukiさんありがとうございました！</p>
				<p>Pluginが使えるようになったので、SeasarプロジェクトのJIRAも近日アップグレードのテストをし、アナウンスを出した後に現在の3.13.5から4.0.1に更新したいと思います。</p>
				<p>以下、何かの参考までにVersion 1 + Tomcat 6.0.20で起動した時の例外全文を記載しておきます。</p>
				</div>
				<p><span id="more-822"></span></p>
				<div id="fswiki_content81" class="fswiki_content">
				<h3> 起動時のエラー内容</h3>
				<ul>
				<li> 環境
				<ul>
				<li> Sun JDK 1.6.0_17 64-Bit Server VM</li>
				<li> JIRA 4.0.1 + Version 1の方法でのPlugin導入
				<ul>
				<li> JIRA Calendar Plugin 1.12</li>
				<li> JIRA Charting Plugin 1.5</li>
				</ul>
				</li>
				<li> Tomcat 6.0.20</ll>
				</ul>
				<p></ll>
				</ul>
				<pre>2010/01/04 13:18:33 org.apache.catalina.core.StandardContext listenerStart
致命的: クラス com.atlassian.jira.upgrade.ConsistencyLauncher のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.ExceptionInInitializerError
	at org.objectweb.jotm.Current.&lt;init&gt;(Current.java:121)
	at org.objectweb.jotm.UserTransactionFactory.getObjectInstance(UserTransactionFactory.java:45)
	at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
	at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
	at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at org.ofbiz.core.entity.transaction.JNDIFactory.getUserTransaction(JNDIFactory.java:109)
	at org.ofbiz.core.entity.TransactionFactory.getUserTransaction(TransactionFactory.java:91)
	at org.ofbiz.core.entity.TransactionUtil.getStatus(TransactionUtil.java:80)
	at org.ofbiz.core.entity.jdbc.SQLProcessor.getConnection(SQLProcessor.java:369)
	at org.ofbiz.core.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:416)
	at org.ofbiz.core.entity.GenericDAO.selectListIteratorByCondition(GenericDAO.java:1024)
	at org.ofbiz.core.entity.GenericDAO.selectByAnd(GenericDAO.java:595)
	at org.ofbiz.core.entity.GenericHelperDAO.findByAnd(GenericHelperDAO.java:134)
	at org.ofbiz.core.entity.GenericDelegator.findByAnd(GenericDelegator.java:792)
	at org.ofbiz.core.entity.GenericDelegator.findByAnd(GenericDelegator.java:777)
	at org.ofbiz.core.entity.GenericDelegator.findByAnd(GenericDelegator.java:754)
	at com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.getKeys(OFBizPropertySet.java:87)
	at com.opensymphony.module.propertyset.AbstractPropertySet.getKeys(AbstractPropertySet.java:292)
	at com.atlassian.jira.propertyset.PropertySetCache.bulkLoad(PropertySetCache.java:301)
	at com.atlassian.jira.propertyset.JiraCachingPropertySet.init(JiraCachingPropertySet.java:834)
	at com.opensymphony.module.propertyset.PropertySetManager.getInstance(PropertySetManager.java:45)
	at com.opensymphony.module.propertyset.PropertySetManager.getInstance(PropertySetManager.java:22)
	at com.atlassian.jira.config.properties.PropertiesManager.loadPropertySet(PropertiesManager.java:83)
	at com.atlassian.jira.config.properties.PropertiesManager.&lt;init&gt;(PropertiesManager.java:29)
	at com.atlassian.jira.config.properties.PropertiesManager.getInstance(PropertiesManager.java:39)
	at com.atlassian.jira.config.properties.ApplicationPropertiesImpl.getPropertiesManager(ApplicationPropertiesImpl.java:69)
	at com.atlassian.jira.config.properties.ApplicationPropertiesImpl.getString(ApplicationPropertiesImpl.java:117)
	at com.atlassian.jira.config.properties.ApplicationPropertiesImpl.getDefaultBackedString(ApplicationPropertiesImpl.java:143)
	at com.atlassian.jira.ComponentManager.registerExtensions(ComponentManager.java:299)
	at com.atlassian.jira.ComponentManager.initialise(ComponentManager.java:195)
	at com.atlassian.jira.ComponentManager.&lt;init&gt;(ComponentManager.java:181)
	at com.atlassian.jira.ComponentManager.&lt;clinit&gt;(ComponentManager.java:159)
	at com.atlassian.jira.upgrade.ConsistencyLauncher.launchConsistencyChecker(ConsistencyLauncher.java:63)
	at com.atlassian.jira.upgrade.ConsistencyLauncher.contextInitialized(ConsistencyLauncher.java:42)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.) (Caused by org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.))
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
	at org.objectweb.jotm.TraceTm.&lt;clinit&gt;(TraceTm.java:47)
	... 65 more
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.)
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
	... 68 more
Caused by: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:385)
	... 69 more
2010/01/04 13:18:33 org.apache.catalina.core.StandardContext listenerStart
致命的: クラス com.atlassian.jira.upgrade.UpgradeLauncher のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.NoClassDefFoundError: Could not initialize class com.atlassian.jira.ComponentManager
	at com.atlassian.jira.upgrade.UpgradeLauncher.getJiraLicenseService(UpgradeLauncher.java:215)
	at com.atlassian.jira.upgrade.UpgradeLauncher.checkLicenseIsValid(UpgradeLauncher.java:145)
	at com.atlassian.jira.upgrade.UpgradeLauncher.checkIfUpgradeNeeded(UpgradeLauncher.java:85)
	at com.atlassian.jira.upgrade.UpgradeLauncher.contextInitialized(UpgradeLauncher.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2010/01/04 13:18:33 org.apache.catalina.core.StandardContext listenerStart
致命的: クラス com.atlassian.jira.scheduler.JiraSchedulerLauncher のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.NoClassDefFoundError: Could not initialize class com.atlassian.jira.ComponentManager
	at com.atlassian.jira.ManagerFactory.getApplicationProperties(ManagerFactory.java:200)
	at com.atlassian.jira.scheduler.JiraSchedulerLauncher.canCreateScheduler(JiraSchedulerLauncher.java:75)
	at com.atlassian.jira.scheduler.JiraSchedulerLauncher.proceedIfAllClear(JiraSchedulerLauncher.java:45)
	at com.atlassian.jira.scheduler.JiraSchedulerLauncher.contextInitialized(JiraSchedulerLauncher.java:29)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2010/01/04 13:18:33 org.apache.catalina.core.StandardContext listenerStop
致命的: クラス com.atlassian.jira.startup.JiraStartupChecklistContextListener のリスナインスタンスにコンテキスト破棄イベントを送信中の例外です
java.lang.NoClassDefFoundError: Could not initialize class com.atlassian.jira.ComponentManager
	at com.atlassian.jira.startup.JiraStartupChecklistContextListener.unlockJiraHome(JiraStartupChecklistContextListener.java:75)
	at com.atlassian.jira.startup.JiraStartupChecklistContextListener.contextDestroyed(JiraStartupChecklistContextListener.java:62)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3973)
	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4577)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4474)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
</pre>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2008/09/10/atlassian-jira-personal-license/' rel='bookmark' title='Atlassian JIRA &#8211; Personal License'>Atlassian JIRA &#8211; Personal License</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/05/18/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B/' rel='bookmark' title='バージョンの組み合わせ'>バージョンの組み合わせ</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2006/08/22/s2struts%E3%81%A7hot-deploy%E6%99%82%E3%81%ABthrowsinterceptor%E3%81%8C%E5%91%BC%E3%81%B0%E3%82%8C%E3%81%AA%E3%81%84-%E8%A7%A3%E6%B1%BA/' rel='bookmark' title='S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない (解決)'>S2StrutsでHOT deploy時にThrowsInterceptorが呼ばれない (解決)</a> <small> ...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2010/01/04/jira4-and-new-plugin-infrastructure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WP FreeStyle Wiki</title>
		<link>http://jfut.integ.jp/2010/01/01/wp-fswiki/</link>
		<comments>http://jfut.integ.jp/2010/01/01/wp-fswiki/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 17:00:47 +0000</pubDate>
		<dc:creator>jfut</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://jfut.integ.jp/?p=686</guid>
		<description><![CDATA[tDiaryからWordPressに乗り換え、これから書いていくのに標準のエディタで書くのがどうしても面倒だったので、一番慣れ親しんでいるFreeStyle Wikiの記法で書けるPlugin、WP FreeStyle  [...]
関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/' rel='bookmark' title='WP FreeStyle Wiki の Plugin Directory への登録'>WP FreeStyle Wiki の Plugin Directory への登録</a> <small>去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki を、WordPress の Plugin Directory に登録しました。 WP...</small></li>
<li><a href='http://jfut.integ.jp/2006/08/05/seasarwiki%E6%95%B4%E7%90%86/' rel='bookmark' title='SeasarWiki整理'>SeasarWiki整理</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2007/03/11/maven%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E6%96%B9%E6%B3%95%E3%82%92webdav%E6%96%B9%E5%BC%8F%E3%81%AB%E5%A4%89%E6%9B%B4/' rel='bookmark' title='Mavenリポジトリへのデプロイ方法をWebDAV方式に変更'>Mavenリポジトリへのデプロイ方法をWebDAV方式に変更</a> <small> ...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[				<div id="fswiki_content86" class="fswiki_content">
				<p>tDiaryからWordPressに乗り換え、これから書いていくのに標準のエディタで書くのがどうしても面倒だったので、一番慣れ親しんでいる<a href="http://fswiki.org/">FreeStyle Wiki</a>の記法で書けるPlugin、WP FreeStyle Wikiを作りました。作ったといってもかなりの強引なことをしていてFreeStyle Wikiを丸ごと中で持っており、そこへ外部コマンドで投げてレンダリングしているだけです。</p>
				<p>これは、大晦日の31日にWordPress Pluginをなんとなく見ていたところ、<a href="http://blog.makotokw.com/">makotokw</a>さん(ありがとうございます！)が作られている<a href="http://wordpress.org/extend/plugins/pukiwiki-for-wordpress/">PukiWiki for WordPress</a>というPluginを見つけて、ソースを見てみたらPukiWikiを丸ごと中に持っていてそんな手があったかと、そのまま勢いで年が明ける前にFreeStyle Wiki用に改造したものです。</p>
				<p>以下に置いてありますので使いたい方がいましたらご自由にお使いください。ライセンスは中に持っているFreeStyle Wikiと同じGPLです。</p>
				<ul>
				<li> [2010-01-01]: WP FreeStyle Wiki 0.1 リリース
				<ul>
				<li> 最初のリリース、FreeStyle Wiki 3.6.3内蔵、そのうち中身を整理して<a href="http://wordpress.org/extend/plugins/">Plugin Directory</a>に登録するかもしれません</li>
				</ul>
				</li>
				<li> [2010-01-01]: WP FreeStyle Wiki 0.1.1 リリース
				<ul>
				<li> <a href="http://www.kenichimaehashi.com/">Kenichi Maehashi</a>さんからいただいたパッチを適用しました</li>
				</ul>
				</li>
				<li> [2011-01-05]: <a href="http://wordpress.org/extend/plugins/wp-freestyle-wiki/">WP FreeStyle Wiki 0.2.2 リリース</a>
				<ul>
				<li> WordPressのPlugin Directoryページに登録しました。管理画面のプラグインのインストールからもインストールできます。</ll>
				</ul>
				<p></ll>
				</ul>
				<h3> 記法サンプル</h3>
				<p>以下、記法のサンプルです。 &#91;fswiki] と &#91;/fswiki] で囲んだ部分がFreeStyle Wikiで処理されます。</p>
				</div>
				<p><span id="more-686"></span></p>
				<div id="fswiki_content87" class="fswiki_content">
				<h4> ソース</h4>
				<pre>&#91;fswiki]
!!見出し

行を!ではじめると見出しになります。
見出しは3レベルありますが、!!!は記事名と被るので使わない方が良いかもしれません。

!!中見出し
!小見出し

!!テキスト装飾

シングルクォート2つで囲むと''イタリック''になります。
シングルクォート3つで囲むと'''ボールド'''になります。
これは==打ち消し線==です。
これは__下線__です。

!!引用

&quot;&quot;これは引用です。
&quot;&quot;これも引用です。

!!説明

:項目:説明文

::項目
:::説明文は複数行にわけて書くこともできます。
:::こんな感じで。

!!項目

行を*ではじめるとリストになります。
リストは*の個数に応じて3段階までネストすることができます。

*項目1-1
**項目2-1
**項目2-2
***項目3-1
*項目1-2
**項目2-3

行を+ではじめると番号付きリストになります。

+番号付き項目1
++番号付き項目1-1
+番号付き項目2
+番号付き項目3

!!リンク

*http://www.yahoo.co.jp/
*[Google|http://www.google.co.jp/]

!!テーブル

CSVはテーブルになります。1行目がヘッダになります。

,1-1,1-2,1-3
,2-1,2-2,2-3

セル内にカンマを含めたい場合は値をダブルクォートで囲みます。
また、ダブルクォートで囲んだセルにダブルクォートを表示したい場合はダブルクォートを2つ続けて記述します。

,カンマ,ダブルクォート
,&quot;セルの中にカンマ,を表示&quot;,&quot;セルの中にダブルクォート&quot;&quot;を表示&quot;

!!整形済テキスト

行頭をスペースまたはタブではじめると整形済テキストとして扱われます。

これは整形済テキストです。
入力したとおりに表示されます。

{{pre
preタグバージョン
これは整形済テキストです。
入力したとおりに表示されます。
}}

!!水平線

行頭に----と書くと水平線になります。

----

!!コメント

行を//ではじめるとその行はコメントとみなされます。コメント行は一切出力されません。

//これはコメントになります。画面には出力されません。
&#91;/fswiki]
</pre>
				<h4> レンダリング結果</h4>
				<p>上記のソースが下記のようになります。</p>
				<h3>見出し</h3>
				<p>行を!ではじめると見出しになります。見出しは3レベルありますが、!!!は記事名と被るので使わない方が良いかもしれません。</p>
				<h3>中見出し</h3>
				<h4>小見出し</h4>
				<h3>テキスト装飾</h3>
				<p>シングルクォート2つで囲むと<em>イタリック</em>になります。シングルクォート3つで囲むと<strong>ボールド</strong>になります。これは<del>打ち消し線</del>です。これは<ins>下線</ins>です。</p>
				<h3>引用</h3>
				<blockquote><p>これは引用です。</p>
				<p>これも引用です。</p>
				</blockquote>
				<h3>説明</h3>
				<dl>
				<dt>項目</dt>
				<dd>説明文</dd>
				</dl>
				<dl>
				<dt>項目</dt>
				<dd>説明文は複数行にわけて書くこともできます。こんな感じで。</dd>
				</dl>
				<h3>項目</h3>
				<p>行を*ではじめるとリストになります。リストは*の個数に応じて3段階までネストすることができます。</p>
				<ul>
				<li>項目1-1
				<ul>
				<li>項目2-1</li>
				<li>項目2-2
				<ul>
				<li>項目3-1</li>
				</ul>
				</li>
				</ul>
				</li>
				<li>項目1-2
				<ul>
				<li>項目2-3</ll>
				</ul>
				<p></ll>
				</ul>
				<p>行を+ではじめると番号付きリストになります。</p>
				<ol>
				<li>番号付き項目1
				<ol>
				<li>番号付き項目1-1</li>
				</ol>
				</li>
				<li>番号付き項目2</li>
				<li>番号付き項目3</ll>
				</ol>
				<h3>リンク</h3>
				<ul>
				<li><a href="http://www.yahoo.co.jp/">http://www.yahoo.co.jp/</a></li>
				<li><a href="http://www.google.co.jp/">Google</a></ll>
				</ul>
				<h3>テーブル</h3>
				<p>CSVはテーブルになります。1行目がヘッダになります。</p>
				<table>
				<tr>
				<th>1-1</th>
				<th>1-2</th>
				<th>1-3</th>
				</tr>
				<tr>
				<td>2-1</td>
				<td>2-2</td>
				<td>2-3</td>
				</tr>
				</table>
				<p>セル内にカンマを含めたい場合は値をダブルクォートで囲みます。また、ダブルクォートで囲んだセルにダブルクォートを表示したい場合はダブルクォートを2つ続けて記述します。</p>
				<table>
				<tr>
				<th>カンマ</th>
				<th>ダブルクォート</th>
				</tr>
				<tr>
				<td>セルの中にカンマ,を表示</td>
				<td>セルの中にダブルクォート&quot;を表示</td>
				</tr>
				</table>
				<h3>整形済テキスト</h3>
				<p>行頭をスペースまたはタブではじめると整形済テキストとして扱われます。</p>
				<p>これは整形済テキストです。入力したとおりに表示されます。</p>
				<pre>preタグバージョン
これは整形済テキストです。
入力したとおりに表示されます。
</pre>
				<h3>水平線</h3>
				<p>行頭に&#8212;-と書くと水平線になります。</p>
				<hr />
				<h3>コメント</h3>
				<p>行を//ではじめるとその行はコメントとみなされます。コメント行は一切出力されません。</p>
				</div>
<p>関連する記事:<ol>
<li><a href='http://jfut.integ.jp/2011/01/05/wp-freestyle-wiki/' rel='bookmark' title='WP FreeStyle Wiki の Plugin Directory への登録'>WP FreeStyle Wiki の Plugin Directory への登録</a> <small>去年の年末年始(2009-2010)に書いた WP FreeStyle Wiki を、WordPress の Plugin Directory に登録しました。 WP...</small></li>
<li><a href='http://jfut.integ.jp/2006/08/05/seasarwiki%E6%95%B4%E7%90%86/' rel='bookmark' title='SeasarWiki整理'>SeasarWiki整理</a> <small> ...</small></li>
<li><a href='http://jfut.integ.jp/2007/03/11/maven%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E6%96%B9%E6%B3%95%E3%82%92webdav%E6%96%B9%E5%BC%8F%E3%81%AB%E5%A4%89%E6%9B%B4/' rel='bookmark' title='Mavenリポジトリへのデプロイ方法をWebDAV方式に変更'>Mavenリポジトリへのデプロイ方法をWebDAV方式に変更</a> <small> ...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://jfut.integ.jp/2010/01/01/wp-fswiki/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

