<?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>futuremix &#187; RPM</title>
	<atom:link href="http://futuremix.org/tag/rpm/feed" rel="self" type="application/rss+xml" />
	<link>http://futuremix.org</link>
	<description>津田ふみかの日記・言想風景改め未来模景。 Remix The Future.</description>
	<lastBuildDate>Thu, 18 Mar 2010 16:40:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Postfix + clamav-milter でウィルスチェック</title>
		<link>http://futuremix.org/2009/11/postfix-clamav-milter</link>
		<comments>http://futuremix.org/2009/11/postfix-clamav-milter#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:00:51 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[ウィルス対策]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[ClamAV]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=3010</guid>
		<description><![CDATA[



  これまでメールサーバのウィルスチェックについては、sendmail と clamav-milter の組み合わせを紹介してきましたが、Postfix と clamav-milter の組み合わせも確認できまし [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
<img src="http://futuremix.org/wp-content/uploads/2009/11/postfix-clamav.png" alt="postfix-clamav" title="postfix-clamav" width="200" height="200" class="alignnone size-full wp-image-3012" />
</div>
<p>
  これまでメールサーバのウィルスチェックについては、<a href="http://futuremix.org/2009/10/clamav-sensmail-centos-5">sendmail と clamav-milter の組み合わせ</a>を紹介してきましたが、Postfix と clamav-milter の組み合わせも確認できましたので、以下やり方を書いておきます。
</p>
<p>
  試した環境は CentOS 5.4 (64bit)、Postfix は 2.3.3 を RPM で入れています。また、Clam AntiVirus (ClamAV) 関連は RPMforge のパッケージを利用します。Postfix の設定については割愛します。
</p>
<h3>Postfix のインストール</h3>
<p>
  CentOS 5 には Postfix の RPM が用意されています。これを yum でインストールします。
</p>
<pre class="command">
$ sudo yum install -y postfix
</pre>
<h3>Clam AntiVirus のインストール</h3>
<p>
  こちらは CentOS 5 には含まれていませんが、RPMforge にあるパッケージを使います。事前に <a href="http://futuremix.org/2009/10/yum-rpmforge-repository" title="yum に RPMforge のリポジトリを追加する (CentOS5編)">yum で RPMforge を使う</a>ように設定する必要があります。<a href="http://futuremix.org/2009/01/centos-epel-atrpms-yum" title="CentOS で EPEL や ATrpms のパッケージを yum で利用できるようにする"><Abbr title="Extra Packages for Enterprise Linux">EPEL</abbr> のリポジトリを使う設定</a>になっている場合は、EPEL で配布されている clamav と競合してしまいますので、次のように EPEL の clamav パッケージを無視するようにします。
</p>
<pre class="command">
# vi /etc/yum.repos.d/epel.repo
</pre>
<pre class="config">
exclude=clamav*
</pre>
<p>
  次に RPMforge のリポジトリから clamav のパッケージ群をインストールします。
</p>
<pre class="command">
# yum --enablerepo rpmforge install clamav clamav-db clamav-milter clamd
</pre>
<h3>freshclam の設定</h3>
<p>
  定義ファイル更新の設定をします。/etc/freshclam.conf を編集して Google SafeBrowing のデータを利用するようにします。
</p>
<pre class="config">
SafeBrowsing yes
</pre>
<p>
  初回は freshclam コマンドを手動実行して最新の定義ファイルをあらかじめダウンロードしておきます。
</p>
<h3>clamd の設定と実行</h3>
<p>
  基本的には設定変更の必要はなくそのままでも動作します。ここでは /etc/clamd.conf を編集して、ウィルス検出時にメールが飛ぶようにします。
</p>
<pre class="config">
VirusEvent echo "VIRUS ALERT: %v" | mail -s "Virus Alert" postmaster@example.org
</pre>
<p>
  clamd を実行します。
</p>
<pre class="command">
# service clamd restart
</pre>
<h3>clamav-milter の設定</h3>
<p>
  Postfix と ClamAV の連携については、AMaViS を使う方法もありますが、ここでは clamav-milter を利用します。/etc/clamav-milter.conf を編集して <var>MilterSocket</var> のパスを変更します。
</p>
<pre class="config">
  MilterSocket unix:/var/run/clamav/milter.sock
  AddHeader Yes
</pre>
<p>
  このままで clamav-milter を起動した場合、Postfix を実行するユーザ postfix がソケットにアクセスできずに失敗します。そこで /etc/init.d/clamav-milter を編集して、clamav-milter デーモン起動時にソケットのグループを postfix に変更してやります。<a href="http://last-resort.seesaa.net/article/105900490.html" title="ネットワーキングすきま情報: Postfix - milter - ClamAVねた。">ネットワーキングすきま情報: Postfix &#8211; milter &#8211; ClamAVねた。</a>を参考にさせて頂きました。</p>
<pre class="config">
  start)
        echo -n "Starting Clamav Milter Daemon: "
        daemon clamav-milter $CLAMAV_FLAGS $SOCKET_ADDRESS
        <kbd>chgrp postfix /var/run/clamav/milter.sock</kbd>  #追加
        <kbd>chmod g+w /var/run/clamav/milter.sock</kbd>      #追加
</pre>
<p>
  clamav-milter デーモンを実行します。
</p>
<pre class="command">
# service clamav-milter restart
</pre>
<h3>Postfix の設定</h3>
<p>
  postfix 側に clamav-milter と連携する設定が必要です。/etc/postfix/main.cf に以下の記述を追加します。
</p>
<pre class="config">
smtpd_milters = unix:/var/run/clamav/clmilter.sock
non_smtpd_milters = unix:/var/run/clamav/clmilter.sock
milter_default_action = accept
</pre>
<p>
  postfix を再起動して、メールの送受信を確認をします。
</p>
<pre class="command">
# service postfix restart
</pre>
<h3>自動起動の設定</h3>
<p>
  clamd と clamav-milter デーモンが自動起動するようにします。
</p>
<pre class="command">
# chkconfig clamd  on
# chkconfig clamav-milter  on
# chkconfig --list | grep clam
<samp>clamav-milter   0:off   1:off   2:on    3:on    4:on    5:on    6:off
clamd           0:off   1:off   2:on    3:on    4:on    5:on    6:off</samp>
</pre>
<p>
  freshclam は cron で実行されます。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/11/postfix-clamav-milter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.4 で Oracle 対応 PHP の RPM</title>
		<link>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm</link>
		<comments>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:00:54 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm</guid>
		<description><![CDATA[
  以前書いたCentOS 5.2 での Oracle 対応 PHP の RPM の改訂版です。今回は CentOS 5.4 (32bit版) のマシンで試しました。なお、Oracle instant Client は [...]]]></description>
			<content:encoded><![CDATA[<p>
  以前書いた<a href="http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch">CentOS 5.2 での Oracle 対応 PHP の RPM</a> の改訂版です。今回は CentOS 5.4 (32bit版) のマシンで試しました。なお、Oracle instant Client は 11.x ではなく 10.2.0.4 を利用しました。
</p>
<p>
  CentOS 5.x では、PHP 5.1.6 をベースにしています。手順としては Oracle Instant Client をインストールし、CentOS の PHP の SRPM をダウンロードし、SPEC ファイルを編集し、ビルドという手順になります。
</p>
<h3>Oracle Instant Client の インストール</h3>
<p>
  Oracle Instant Client 10.2.0.4 の RPM をダウンロードします。ダウンロードには OTN の登録が必要です。ここでは Linux x86版(32bit版)の 10.2.0.4 の RPM をダウンロードします。最低限、oracle-instantclient-basic と oracle-instantclient-devel のパッケージはインストールが必要です。jdbc ドライバは不要です。
</p>
<p>
  次に /etc/ld.so.conf.d/oracle-instant-client.conf というファイルを作成し、ライブラリパスを追加します。
</p>
<pre class="command">
# echo '/usr/lib/oracle/10.2.0.4/client/lib/' &gt;&gt; /etc/ld.so.conf.d/oracle-instant-client.conf
</pre>
<p>
  64bit 版の場合は次のようになります。
</p>
<pre class="command">
# echo '/usr/lib/oracle/10.2.0.4/client64/lib/' &gt;&gt; /etc/ld.so.conf.d/oracle-instant-client.conf
</pre>
<p>
  ライブラリパスを再読込します。
</p>
<pre class="command">
# ldconfig
</pre>
<p>
  いまは PHP をビルドするのが目的なので、Oracle データベースへの接続確認は割愛します。
</p>
<h3>PHP の SRPM のダウンロード</h3>
<p>
  なぜか yumdownloader コマンドではうまく行かなかったので、理化学研究所のミラーから直接ダウンロードしました。
</p>
<pre class="command">
  wget http://ftp.riken.go.jp/Linux/centos/5.4/os/SRPMS/php-5.1.6-23.2.el5_3.src.rpm
</pre>
<p>
  この RPM をインストールすると、/usr/src/redhat/SPECS/ に php.spec ファイルが置かれます。また、/usr/src/redhat/SOURCES/ 配下にビルドに必要な PHP のソースファイルと、各種パッチファイルや設定ファイルなどが置かれます。
</p>
<h3>パッチファイルのダウンロード</h3>
<p>
  <a href="/downloads/php-5.1.6-oci8conf.patch">php-5.1.6-oci8conf.patch</a> をダウンロードして SOURCES ディレクトリに配置してください。Oracle が提供する SRPM や、<a href="http://remi.collet.free.fr/files/php-5.2.5-oci8conf.patch">他のパッチ</a>を元に、私が作ったものです。
</p>
<h3>SPEC ファイルの編集</h3>
<p>
  こちらも、oci8 のために変更が必要です。変更箇所が多いので、<a href="/downloads/php.spec.516_23_2">php.spec (php-5.1.6.23.2.el5_3 用 32bit)</a>に置きました。これをダウンロードして php.spec と差し替えてください。変更点は diff を取ればわかると思います。64bit 環境では、ライブラリパスを <code>/usr/lib/oracle/%{ociver}/client/lib</code> から <code>/usr/lib/oracle/%{ociver}/client64/lib</code> に変更する必要があります。
</p>
<h3>RPM のビルド</h3>
<pre class="command">
  $ rpmbuild -ba php.spec &#45;-target i686  &#45;-define 'oracle 1'
</pre>
<p>
  開発ライブラリなどがないと、コンパイルエラーとなります。事前に php.spec の BuildRequires セクションに書かれている RPM 群を yum コマンドでインストールしておきましょう。bzip2-devel, curl-devel, libstdc++-devel などです。
</p>
<pre class="command">
  # yum install bzip2-devel curl-devel libstdc++-devel
</pre>
<p>
  ビルドにはかなり時間がかかります。RPM ファイルは上記の例では /usr/src/redhat/RPMS/i686/ に配置されます。 php-oci8-5.1.6-23.2.ora.i686.rpm というファイルが PHP の OCI8 関数のモジュールを含んだ RPM です。 このモジュールを含む PHP の RPM をインストールしたら Apache を再起動します。phpinfo() コマンドで oci8 パッケージが有効になっていることを確認してみてください。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/11/phpinfo-php-oci8-500x485.png" alt="phpinfo() で OCI8関数が有効になった状態を確認する" title="phpinfo() で OCI8関数が有効になった状態を確認する" width="500" height="485" class="alignnone size-medium wp-image-2934" />
</div>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clam AntiVirus (ClamAV) と sendmail の連携 CentOS 5 編</title>
		<link>http://futuremix.org/2009/10/clamav-sensmail-centos-5</link>
		<comments>http://futuremix.org/2009/10/clamav-sensmail-centos-5#comments</comments>
		<pubDate>Sat, 31 Oct 2009 13:00:55 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ウィルス対策]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[ClamAV]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2900</guid>
		<description><![CDATA[
  


  オープンソースのアンチウィルスソフト  Clam AntiVirus (ClamAV) を CentOS 5 にインストールし、sendmail と連携させる方法です。CentOS 5.3 (i386)  [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
  <img src="http://futuremix.org/wp-content/uploads/2009/10/clamav-200x200.png" alt="clamav" title="clamav" width="200" height="200" class="alignnone size-thumbnail wp-image-2909" />
</div>
<p>
  オープンソースのアンチウィルスソフト  <a href="http://www.clamav.net/">Clam AntiVirus</a> (ClamAV) を CentOS 5 にインストールし、sendmail と連携させる方法です。CentOS 5.3 (i386) および CentOS 5.4 (x86_64) + Clam AntiVirus 0.95.3 の環境で確認しています。
</p>
<h3>yum で RPMforge の設定と EPEL の除外設定</h3>
<p>
  事前に <a href="http://futuremix.org/2009/10/yum-rpmforge-repository" title="yum に RPMforge のリポジトリを追加する (CentOS5編)">yum で RPMforge を使う</a>ように設定する必要があります。
</p>
<p>
  また、<a href="http://futuremix.org/2009/01/centos-epel-atrpms-yum" title="CentOS で EPEL や ATrpms のパッケージを yum で利用できるようにするCommentsAdd Star">ATrpms や <Abbr title="Extra Packages for Enterprise Linux">EPEL</abbr> のリポジトリを使う設定</a>になっている場合は、それらのリポジトリで配布されている clamav がインストールされてしまうことがあります。EPEL の clamav パッケージは上手く動作しませんでしたので、次のように変更して無視するようにします。
</p>
<pre class="command">
# vi /etc/yum.repos.d/epel.repo
</pre>
<pre class="config">
exclude=clamav*
</pre>
<h3>yum でインストール</h3>
<p>
  次に RPMforge のリポジトリから、clamav のパッケージ群をインストールします。
</p>
<pre class="command">
# yum --enablerepo rpmforge install clamav clamav-db clamav-devel clamav-milter clamd
</pre>
<p>
  私が試したときは、clamav-db のダウンロードに結構時間がかかりました。
</p>
<h3>freshclam の設定</h3>
<p>
  freshclam の設定を変更して、<a href="http://futuremix.org/2009/07/clamav-095-support-for-google-safe-browsing" title="ClamAV 0.95 で Google Safe Browsing を有効にする | futuremix">Google Safe Browsing を有効に</a>します。これでフィッシングサイトのチェックもできるようになります。次に freshclam コマンドを実行して下さい。
</p>
<pre class="command">
# freshclam
<samp>ClamAV update process started at Fri Oct 30 22:25:28 2009
main.cvd is up to date (version: 51, sigs: 545035, f-level: 42, builder: sven)
Downloading daily-9956.cdiff [100%]
Downloading daily-9957.cdiff [100%]
……
daily.cld updated (version: 9965, sigs: 96804, f-level: 44, builder: ccordes)
Database updated (641839 signatures) from db.jp.clamav.net (IP: 203.212.42.128)
Clamd successfully notified about the update.</samp>
</pre>
<p>
  初回は時間がかかりますが、今後は cron で自動的にアップデートされます。アップデートは /etc/cron.daily/freshclam に設定があるので1日1回実行されます。個人的には 1日1回では少ないように感じていますが、あまり頻繁に実行させると、無償で提供されているサーバに負荷をかけてしまうので悩ましいところです。
</p>
<h3>clamd の設定と起動</h3>
<p>
  設定ファイル は /etc/clamd.conf です。基本的には変更の必要はありませんが、ウィルス検出時にメールを送る設定などができます。
</p>
<pre class="config">  VirusEvent echo "VIRUS ALERT: %v" | mail -s "Virus Alert" virusadmin@example.org
</pre>
<p>
  clamd デーモンを起動します。
</p>
<pre class="command">
# service clamd start
<samp>Starting Clam AntiVirus Daemon:                            [  OK  ]<samp>
</pre>
<p>
  clamdscan コマンドで適当なファイルをスキャンして、接続エラーが出なければ clamd が正常に起動しています。
</p>
<h3>clamav-milter の設定と起動</h3>
<p>
  続いて clamav-milter の設定ファイル /etc/clamav-milter.conf を変更します。ここではソケットのパス名を変更、またメールのヘッダに文字列を追加する設定を有効としています。
</p>
<pre class="config">
MilterSocket unix:/var/run/clamav/milter.sock
……
AddHeader yes
</pre>
<p>
  clamav-milter デーモンを起動します。
</p>
<pre class="command">
# service clamav-milter start
<samp> Starting Clamav Milter Daemon:                            [  OK  ]</samp>
</pre>
<h3>sendmail の設定変更</h3>
<p>
  sendmail の設定ファイル /etc/mail/sendmail.mc を変更します。
</p>
<pre class="config">
INPUT_MAIL_FILTER(`clamilter', `S=local:/var/run/clamav/milter.sock, F=, T=S:4m;R:4m')dnl
</pre>
<p>
  上記の行を追加します。 SpamAssassin の設定がされていれば、同様の INPUT_MAIL_FILTER の上の行に追加します。なければ TRUST_AUTH_MECH あたりでよいでしょうか。
</p>
<p>
  sendmail を再起動して、メールの送受信が問題なくできることを確認します。メールのヘッダに
</p>
<pre class="log">
X-Virus-Scanned: clamav-milter 0.95.3 at server10
X-Virus-Status: Clean
</pre>
<p>
  のような行が挿入されることを確認します。
</p>
<h3>自動起動の設定</h3>
<p>
  最後に <kbd>chkconfig</kbd> コマンドか <kbd>ntsysv</kbd> コマンドで clamd と clamav-milter デーモンを自動起動する設定しておきます。
</p>
<h3>clamd の死活監視</h3>
<p>
  たまに、clamd が異常終了して、ウィルスチェックがされない状態になっていることがあります。clamd の死活監視をするよう、cron の設定をしてみます。
</p>
<pre class="config">
0 * * * * test -z "`service clamd status | grep pid`" &#038;&#038; echo 'clamd daemon is stopped.' | mail root@example.org
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/10/clamav-sensmail-centos-5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yum に RPMforge のリポジトリを追加する (CentOS5編)</title>
		<link>http://futuremix.org/2009/10/yum-rpmforge-repository</link>
		<comments>http://futuremix.org/2009/10/yum-rpmforge-repository#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:00:43 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/2009/10/yum-rpmforge-repository</guid>
		<description><![CDATA[
  


  RPMforge には Red Hat Linux や Fedora、CentOS では提供されていない様々なパッケージが提供されています。


  このパッケージ群を yum コマンドでインストール・ア [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
  <a href="http://futuremix.org/2009/10/yum-rpmforge-repository/rpmforge" rel="attachment wp-att-2906"><img src="http://futuremix.org/wp-content/uploads/2009/10/rpmforge.png" alt="" title="" width="200" height="200" class="alignnone size-full wp-image-2906" /></a>
</div>
<p>
  <a href="https://rpmrepo.org/RPMforge">RPMforge</a> には Red Hat Linux や Fedora、CentOS では提供されていない様々なパッケージが提供されています。
</p>
<p>
  このパッケージ群を yum コマンドでインストール・アップデートできるよう、yum のリポジトリに RPMforge の設定を追加します。設定ファイルも RPM で提供されているので、これをインストールするだけです。
</p>
<pre class="command">
//x86_64 (64bit) の場合
# rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
//x86 (32bit) の場合
# rpm -ivh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.i386.rpm
</pre>
<p>
  インストールすると、/etc/yum.repos.d/rpmforge.repo というファイルができます。rpmforge には大量の追加パッケージが含まれていますので、いくつかは基本パッケージと同じソフトの別バージョンが含まれています。
</p>
<p>
  これらが自動的にアップデートに含まれ衝突したり不安定になるのを避けるためには、2つの方法があります。1つは通常は RPMforge を検索対象に含めず、必要なときだけ含めるというやり方です。もう一つは、リポジトリの優先順位を設定する方法です。
</p>
<h3>RPMforge を検索に含めない設定</h3>
<p>
  /etc/yum.repos.d/rpmforge.repo を編集し、enabled=0 とします。これで通常の yum コマンドの検索対象から外れます。必要なときは、次のように <kbd>--enablerepo</kbd> オプションを使います。
</p>
<pre class="command">
  #  yum --enablerepo rpmforge list "php-*"
</pre>
<h3>優先順位を設定する方法</h3>
<p>
  優先順位を設定するには、まず yum-priorities パッケージをインストールします。
</p>
<pre class="command">
# yum install yum-priorities
</pre>
<p>
 これでうまく行くはずなのですが、本稿執筆時点で試したときはパッケージが見つからないというエラーになりました。<a href="http://rpm.pbone.net/index.php3/stat/4/idpl/12982897/com/yum-priorities-1.1.16-13.el5.centos.noarch.rpm.html">rpm.pbone.net</a> より手作業でダウンロードしてインストールして下さい。
</p>
<pre class="command">
# rpm --install ftp://ftp.pbone.net/mirror/ftp.centos.org/5.3/os/i386/CentOS/yum-priorities-1.1.16-13.el5.centos.noarch.rpm
</pre>
<p>
  設定ファイル /etc/yum/pluginconf.d/priorities.conf の <var>enabled</var> が 1になっていることを確認します。
</p>
<p>
  次に /etc/yum.repos.d/rpmforge.repo を編集し次の行を追加します。
</p>
<pre class="config">
priority=10
</pre>
<p>
また、/etc/yum.repos.d/CentOS-Base.repo を編集し、各リポジトリに次の行を追加します。
</p>
<pre class="command">
priority=1
</pre>
<p>
  プライオリティは低い順番のものが優先されます。これで、同名のパッケージは CentOS 本来のものを優先し、RPMforge のものが上書きされないようになっています。
</p>
<p>
  RPMforge でダウンロードした RPM をインストールした際に、パッケージの署名検証で警告が出ないよう、<a href="http://dag.wieers.com/rpm/">DAG</a>の公開鍵をインポートしておきます。（DAG は FreshRPMS, Dries などとともに RPMforge に統合されたリポジトリです。）
</p>
<pre class="command">
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/10/yum-rpmforge-repository/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yum update で python, python-devel のアップデートに失敗する</title>
		<link>http://futuremix.org/2009/08/yum-update-python-package-problem</link>
		<comments>http://futuremix.org/2009/08/yum-update-python-package-problem#comments</comments>
		<pubDate>Sat, 01 Aug 2009 09:02:54 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bind]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2636</guid>
		<description><![CDATA[



  BIND 9 の脆弱性が悪用され、修正バージョンが出たと言うことで、Cent OS のアップデートを行ないました。Cent OS 4 では問題なかったのですが、Cent OS 5 では、64bit, 32bi [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
<img src="http://futuremix.org/wp-content/uploads/2009/08/yum-update-python-bind-200x200.jpg" alt="yum-update-python-bind" title="yum-update-python-bind" width="200" height="200" class="alignnone size-thumbnail wp-image-2638" />
</div>
<p>
  BIND 9 の脆弱性が悪用され、修正バージョンが出たと言うことで、Cent OS のアップデートを行ないました。Cent OS 4 では問題なかったのですが、Cent OS 5 では、64bit, 32bit 環境ともにエラーが出てしまいます。
</p>
<pre class="log">
[root@moge1 ~]# yum update
Loaded plugins: fastestmirror
～(略)～
Setting up Update Process
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package python.i386 0:2.4.3-24.el5_3.6 set to be updated
---&gt; Package bind.i386 30:9.3.4-10.P1.el5_3.3 set to be updated
---&gt; Package bind-utils.i386 30:9.3.4-10.P1.el5_3.3 set to be updated
---&gt; Package bind-chroot.i386 30:9.3.4-10.P1.el5_3.3 set to be updated
---&gt; Package bind-libs.i386 30:9.3.4-10.P1.el5_3.3 set to be updated
---&gt; Package caching-nameserver.i386 30:9.3.4-10.P1.el5_3.3 set to be updated
---&gt; Package python-devel.i386 0:2.4.3-24.el5_3.6 set to be updated
filelists.sqlite.bz2                                               | 2.9 MB     00:00
filelists.xml.gz                                                   | 1.9 MB     00:03
filelists.xml.gz                                                   | 139 kB     00:00
--&gt; Processing Dependency: /usr/lib/python2.4 for package: libxml2-python
--&gt; Processing Dependency: /usr/lib/python2.4 for package: libxslt-python
--&gt; Finished Dependency Resolution
libxslt-python-1.1.17-2.el5_2.2.i386 from installed has depsolving problems
  --&gt; Missing Dependency: /usr/lib/python2.4 is needed by package libxslt-python-1.1.17-2.el5_2.2.i386 (installed)
libxml2-python-2.6.26-2.1.2.7.i386 from installed has depsolving problems
  --&gt; Missing Dependency: /usr/lib/python2.4 is needed by package libxml2-python-2.6.26-2.1.2.7.i386 (installed)
Error: Missing Dependency: /usr/lib/python2.4 is needed by package libxml2-python-2.6.26-2.1.2.7.i386 (installed)
Error: Missing Dependency: /usr/lib/python2.4 is needed by package libxslt-python-1.1.17-2.el5_2.2.i386 (installed)
</pre>
<p>
  とりあえず、<kbd>yum update "bind\*" caching-nameserver</kbd> とすれば、BIND だけはアップデートできました。ところが python はうまくアップデートできません。
</p>
<p>
  仕方ないので、yumdownloader で RPM パッケージをダウンロードして手動インストールしたらすんなり入りました。yumdownloader は yum-utils パッケージに入っています。
</p>
<pre class="command">
[root@moge1 ~]# yumdownloader  python python-devel
[root@moge1 ~]# rpm -Uvh python-*
準備中...                ########################################### [100%]
   1:python                 ########################################### [ 50%]
   2:python-devel           ########################################### [100%]
</pre>
<p>
  どうやら yum のパーサーがらみの既知の不具合のようで、RHEL では   yum-metadata-parser-1.1.2-3 で対応されているようです。CentOS ではこのパッケージが 1.1.2-2 とまだ古いためでしょうか。しばらくは手動ダウンロードで対応するしか無さそうですね。
</p>
<h3>2009-08-07 追加</h3>
<p>
  試していませんが、yum clean metadata をすればエラーが出なくなるという情報がありました。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/08/yum-update-python-package-problem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux で現在の RPM パッケージ構成を引き継ぐには</title>
		<link>http://futuremix.org/2009/03/centos-package-lis</link>
		<comments>http://futuremix.org/2009/03/centos-package-lis#comments</comments>
		<pubDate>Tue, 10 Mar 2009 22:00:51 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2402</guid>
		<description><![CDATA[
  CentOS や Fedora などの RPM ベースの OS で、RPM のパッケージ構成を一覧出力して、他のサーバに引き継がせるときには、以下のようにすればできます。


  まず、パッケージの一覧を出力し、テ [...]]]></description>
			<content:encoded><![CDATA[<p>
  CentOS や Fedora などの <abbr title="RPM Package Manager">RPM</abbr> ベースの OS で、RPM のパッケージ構成を一覧出力して、他のサーバに引き継がせるときには、以下のようにすればできます。
</p>
<p>
  まず、パッケージの一覧を出力し、テキストファイルに落とします。
</p>
<pre class="command">
  $ rpm -qa --qf "%{name}.%{arch}\n" | sort > list.txt
</pre>
<p>
  次に別のサーバに list.txt を持って行き、yum コマンドで install します。
</p>
<pre class="command">
  # yum install $(cat list.text)
</pre>
<p>
  もちろん新しいサーバにあらかじめ入っていた余計のパッケージは削除されませんので、差分をとって確認しましょう。
</p>
<pre class="command">
  $ rpm -qa --qf "%{name}.%{arch}\n" | sort > list2.txt
  $ diff list.txt list2.txt
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/03/centos-package-lis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>spamass-milter をアップデートしたら異常終了するように</title>
		<link>http://futuremix.org/2009/01/spamass-milter-exited</link>
		<comments>http://futuremix.org/2009/01/spamass-milter-exited#comments</comments>
		<pubDate>Thu, 22 Jan 2009 22:00:22 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[spamass-milter]]></category>
		<category><![CDATA[SpamAssassin]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2056</guid>
		<description><![CDATA[
  


  sendmail と SpamAssassin を連携させる spamass-milter を 0.3.0 にアップデートしたら、サービスが起動しなくなりました。しかも1分あたり数十通のエラーメールが届く [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/small_typogenerator_1232610401-200x200.jpg" alt="" title="" width="200" height="200" class="alignnone size-thumbnail wp-image-2103" />
</div>
<p>
  sendmail と SpamAssassin を連携させる spamass-milter を 0.3.0 にアップデートしたら、サービスが起動しなくなりました。しかも1分あたり数十通のエラーメールが届くようになり、メールボックスが凄いことにorz。エラーメールの内容は
</p>
<blockquote>
<pre>
Subject : spamass-milter on server_name restarted
spamass-milter exited at 2009年  X月 XX日 X曜日 23:39:22 JST with status 255
You may wish to check /var/log/messages and/or /var/log/maillog
</pre>
</blockquote>
<p>
   のような感じ。ログを見たら、次のようなエラーログがありました。
</p>
<pre class="log">
runuser: -bash: /var/run/spamass-milter/.bash_profile: 許可がありません
</pre>
<p>
  エラーは<a href="http://futuremix.org/2009/01/centos-epel-atrpms-yum">yum で EPEL の設定</a>をして、既存の spamass-milter をアップデートしてから発生しました。/etc/passwd ファイルを見ると、sa-milt というユーザが登録されていますが、このユーザが /var/run/spamass-milter に描き込み権限が無いため、ソケットファイルの作成に失敗するようです。
</p>
<pre class="command">
 # mkdir /var/run/spamass-milter
 # chown sa-milt:sa-milt /var/run/spamass-milter
</pre>
<p>
  このようにディレクトリを作成し、所有者を変更してやればうまく spamass-milter が起動するようになりました。他のサーバでは同様のエラーは出なかったので、該当のサーバだけの問題だったようですが。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/01/spamass-milter-exited/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS で EPEL や ATrpms のパッケージを yum で利用できるようにする</title>
		<link>http://futuremix.org/2009/01/centos-epel-atrpms-yum</link>
		<comments>http://futuremix.org/2009/01/centos-epel-atrpms-yum#comments</comments>
		<pubDate>Wed, 21 Jan 2009 22:00:45 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[EPEL]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2004</guid>
		<description><![CDATA[



  EPEL (Extra Packages for Enterprise Linux) とは、Red Hat Enterprise Linux 用の拡張パッケージを集めた物です。少し前の Fedora Core [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
<img src="http://futuremix.org/wp-content/uploads/2009/01/centos-atrpms-epel.png" alt="" title="" width="200" height="181" class="alignnone size-full wp-image-2106" />
</div>
<p>
  <dfn><a href="http://fedoraproject.org/wiki/EPEL">EPEL (Extra Packages for Enterprise Linux)</a></dfn> とは、Red Hat Enterprise Linux 用の拡張パッケージを集めた物です。少し前の Fedora Core に対する Fedora Extra のようなものと言えばよいでしょうか。これを <abbr title="Red Hat Enterprise Linux">RHEL</abbr> 互換の CentOS でも利用できるようにする方法です。
</p>
<p>
  まずその前に、yum-fastestmirror がインストールされていなければインストールします。yum-fastest-mirror を入れることで、高速なミラーサイトを使えるようになります。
</p>
<pre class="command">
  # yum install yum-fastestmirror
</pre>
<p>
  次に Red Hat Enterprise Linux 用の拡張パッケージ集である EPEL の リポジトリを追加します。/etc/yum.repo.d/ に設定ファイルを追加するだけですが、この追加作業も公式の RPM が用意されているので、簡単にできます。
</p>
<pre class="command">
  # rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm  ←(CentOS 5.2, i386の場合)
  # rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-2.noarch.rpm  ←(CentOS 5.2, x86_64の場合)
  # rpm -ivh http://download.fedora.redhat.com/pub/epel/4/i386/epel-release-4-9.noarch.rpm  ←(CentOS 4.7, i386 の場合)
  # rpm -ivh http://download.fedora.redhat.com/pub/epel/4/x86_64/epel-release-4-9.noarch.rpm  ←(CentOS 4.7, i386 の場合)
</pre>
<p>
  これで、yum で EPEL が利用できるようになりました。たとえば bash-completion などのツールを yum でインストールできるようになります。
</p>
<p>
  特定のパッケージを epel ではアップデートしたくないという場合は、/etc/yum.repo.d/epel.repo ファイルを開き、<var>exclude</var> にパッケージ名を半角スペース区切りで指定します。ワイルドカードも使えます。
</p>
<pre class="config">
[epel]
……
enabled=1
gpgcheck=1
exclude=clamav* perl-Jcode
</pre>
<h3>ATrpms も利用できるようにする</h3>
<p>
  さらに、EPEL には無い mplayer 等の RPM もダウンロード・インストールできるように <a href="http://atrpms.net/">ATrpms</a> のリポジトリを追加します。こちらは手作業で設定ファイルを追加します。
</p>
<pre class="command">
  # vi /etc/yum.repos.d/atrpms.repo
</pre>
<pre class="config">
[atrpms]
name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=http://atrpms.net/RPM-GPG-KEY.atrpms
</pre>
<p>
  ATrpms の GPG キーを事前に追加しておきます。
</p>
<pre class="command">
  # rpm --import http://atrpms.net/RPM-GPG-KEY.atrpms
</pre>
<p>
  これで、ATrpms のパッケージも使えるようになりましたが、上記の設定では enabled=0 としています。ATrpms は多くの RPM が集約されているため、yum update を使ったときに、非公式な RPM でもともとのパッケージが上書きされることがあるからです。利用するときは yum コマンドに引数をつけて、
</p>
<pre class="command">
  # yum --enablerepo=atrpms install mplayer
  # yum --enablerepo=atrpms update "hoge*"
</pre>
<p>
  のように利用しましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/01/centos-epel-atrpms-yum/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPM を使わずに make install した場合のアンインストール方法</title>
		<link>http://futuremix.org/2009/01/configure-make-uninstall</link>
		<comments>http://futuremix.org/2009/01/configure-make-uninstall#comments</comments>
		<pubDate>Wed, 21 Jan 2009 06:00:09 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1012</guid>
		<description><![CDATA[



  Red Hat 系の Linux (Fedora Core や CentOS など)は、アプリケーションのインストールは RPM を使って行ないます。yum や up2date でインストールしても裏では R [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
<img src="http://futuremix.org/wp-content/uploads/2009/01/small_typogenerator_1232610111-200x200.jpg" alt="" width="200" height="200" class="alignnone size-thumbnail wp-image-2099" />
</div>
<p>
  Red Hat 系の Linux (Fedora Core や CentOS など)は、アプリケーションのインストールは <abbr title="RPM Package Manager">RPM</abbr> を使って行ないます。yum や up2date でインストールしても裏では RPM のパッケージがダウンロードされ、インストールされます。
</p>
<p>
  一方で、ウェブや書籍の資料では、まだまだ「ソースの tarball から ./configure, make, make install」という流れを書いているものも多いです。これは他の UNIX、Linux、BSD などで汎用的に使える方法ですが、一方で RPM ベースのディストリビューションの手順ではありませんので注意してください。中には Red Hat や Fedora Core で、もとから入っている Apache の PRM を削除してソースから make install を勧めているような人もいますが、そういう記事は信用してはいけません。
</p>
<p>
  有名どころのソフトなら、<abbr title="Extra Packages for Enterprise Linux">EPEL</abbr> や rpm.pbone.net などで探せばたいていの場合は RPM が見つかりますし、Fedora の SRPM をリビルドする方法でも RPM を作成できます。さらには、<a href="http://futuremix.org/2009/01/rpm-tar-checkinstall">tarball から RPM を作成できる checkinstall</a> などを利用することもできます。
</p>
<p>
  しかし、どうしても RPM が無い、RPM を作れない、CheckInstall も使えないときには、ソースの tarball からインストールする（すでにしてしまった）ときもあると思います。その場合に、インストールはできても、きれいにアンインストールできるでしょうか。
</p>
<p>
  一応、Makefile が残っていれば、
</p>
<pre class="command">
# make uninstall
</pre>
<p>
  でアンインストールできるものもあります。autoconf, automake で作成された MakeFile であれば、大抵は対応しています。
</p>
<p>
  もしくは、インストール時のログを保存しておき、それを参考に削除するという方法もあります。make 後に install する前に
</p>
<pre class="command">
$ make -n install
</pre>
<p>
  とすれば、実際のインストールは行なわずにファイルがどこにインストールされるかを表示してくれます。それでも大量のファイルを削除するのは手間でしょうから、configure の際に特定のディレクトリ下にまとめてインストールするようにすることもできます。
</p>
<pre class="command">
$ ./configure --prefix=/usr/local/hoge/
</pre>
<p>
  このようにすれば、そのディレクトリ下に展開されますので、あとで消すときに比較的楽です。ただし使う場合はシンボリックリンクを張るなどの工夫をしないと使いづらいのと、消すときにシンボリックリンクも忘れずに消す必要があります。
</p>
<p>
  やはり Redhat 系のディストリビューションでは、RPM を使って管理するのが一番無難です。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/01/configure-make-uninstall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5 の x86_64 環境で checkinstall 1.6.1 の RPM を作成する</title>
		<link>http://futuremix.org/2009/01/centos5-x86_64-checkinstall-rpm</link>
		<comments>http://futuremix.org/2009/01/centos5-x86_64-checkinstall-rpm#comments</comments>
		<pubDate>Mon, 19 Jan 2009 22:00:33 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[checkinstall]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1986</guid>
		<description><![CDATA[
 


  Checkinstall 1.6.1 を CentOS5 の x86_64 環境のマシンに入れようとしたところ、rpm.pbone.net で探しても RPM が見つかりません。ソースRPMも無いので自前で [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
 <img src="http://futuremix.org/wp-content/uploads/2009/01/installwatch-error.jpg" alt="" title="" width="200" height="200" class="alignnone size-full wp-image-2108" />
</div>
<p>
  <a href="http://futuremix.org/2009/01/rpm-tar-checkinstall">Checkinstall</a> 1.6.1 を CentOS5 の x86_64 環境のマシンに入れようとしたところ、<a href="http://rpm.pbone.net/">rpm.pbone.net</a> で探しても <abbr title="RPM Package Manager">RPM</abbr> が見つかりません。ソースRPMも無いので自前でビルドもできないようです。
</p>
<p>
  しかたなく tarball（.tgz アーカイブファイル）から入れようとしましたが、やはり build に失敗します。
</p>
<pre class="command">
installwatch.c:2694: error: conflicting types for 'readlink'
/usr/include/unistd.h:777: error: previous declaration of 'readlink' was here
installwatch.c: In function 'fopen64':
installwatch.c:3267: warning: cast from pointer to integer of different size
make[1]: *** [installwatch.o] Error 1
</pre>
<p>
  これに関して検索したところ、<a href="http://ysmt.blog21.fc2.com/blog-entry-232.html">Freak: RHEL5 x86_64にcheckinstall-1.6.1をインストールしようとしたらmakeでエラー</a>という記事が見つかりました。このサイトの記述に従いパッチを当てたところ、無事にビルドできました。感謝です。
</p>
<p>
  せっかくなので、CentOS 5 x86_64 向けの Checkinstall 1.6.1 の RPM を作成しました。Dries RPM Repository から<a href="http://dries.ulyssis.org/rpm/packages/checkinstall/checkinstall-spec.html" title="checkinstall spec file : Dries RPM Repository">checkinstall 1.6.0 の spec ファイル</a>をゲットして、1.6.1 用に必要箇所を修正、パッチを取り込んでビルドしました。
</p>
<p>
  しかし、なぜか  /usr/lib/checkinstall/checkinstallrc-dist に設定ファイルが作られ、残ってしまいます。spec ファイルかパッチを詳しく調べればわかるのでしょうが、とりあえず使う分には支障がないので今回は無視しました。
</p>
<h3>Checkinstall 1.6.1 (CentOS 5 x86_64) RPM</h3>
<ul>
<li><a href="/downloads/checkinstall-1.6.1-1.src.rpm">checkinstall-1.6.1-1.src.rpm</a></li>
<li><a href="/downloads/checkinstall-1.6.1-1.x86_64.rpm">checkinstall-1.6.1-1.x86_64.rpm</a></li>
</ul>
<p>
  一応成果物は置いてありますのでご入り用な方はどうぞ。自己責任でお願いします。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/01/centos5-x86_64-checkinstall-rpm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TAR から RPM を生成できる CheckInstall</title>
		<link>http://futuremix.org/2009/01/rpm-tar-checkinstall</link>
		<comments>http://futuremix.org/2009/01/rpm-tar-checkinstall#comments</comments>
		<pubDate>Sun, 18 Jan 2009 22:00:28 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[checkinstall]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">1</guid>
		<description><![CDATA[
  


  tarball (tar アーカイブ)ファイルの中に .spec ファイルがあれば TAR ファイルから RPM を生成 の方法で RPM を自動生成できますが、.spec ファイルがなければどうしようも [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/tar-checkinstall-200x200.jpg" alt="" title="" width="200" height="200" class="alignnone size-thumbnail wp-image-2110" />
</div>
<p>
  tarball (tar アーカイブ)ファイルの中に .spec ファイルがあれば <a href="/2003/12/rpmtar" title="TAR ファイルから RPM を生成">TAR ファイルから RPM を生成</a> の方法で RPM を自動生成できますが、.spec ファイルがなければどうしようもありません。
</p>
<p>
  しかし、<dfn><a href="http://asic-linux.com.mx/~izto/checkinstall/">CheckInstall</a></dfn> は、spec ファイルが無くても tarball から <abbr title="RPM Package Manager">RPM</abbr> を生成してくれるというツール。.spec ファイルがない場合でも、CheckInstall が SPEC ファイルを自動生成して、RPM を作成してくれます。これはすごい。
</p>
<p><span id="more-1608"></span></p>
<h3>まず CheckInstall をインストール</h3>
<p>
  CheckInstall の最新版は 1.6.1 です。CheckInstall 自体は tarball の他に、バイナリ RPM でも提供されています。<a href="http://rpm.pbone.net/index.php3?srodzaj=3&amp;simple=1&amp;stat=3&amp;search=checkinstall" title="RPM Search checkinstall">prmb.pbone.net</a> からディストリビューション・環境にあったものを選んでダウンロード、インストールしてください。CentOS ならば <abbr title="Red Hat Enterprise Linux">RHEL</abbr> 用のパッケージが利用できます。このパッケージを入れればインストールは終了です。
</p>
<pre class="command">
  # rpm -ivh checkinstall-1.6.0-3.el4.rf.x86_64.rpm
</pre>
<p>
  ※ただし、2009年1月時点では、RHEL 5 (CentOS 5) 用の x86_64 のパッケージはありません。また ソース RPM も無いようです。tarball からもビルドできないようです。<a href="http://futuremix.org/2009/01/centos5-x86_64-checkinstall-rpm">CentOS5 の対処方法 (CheckInstall の RPM を作成)</a>は別途掲載します。
</p>
<h3>CheckInstall を使ってみる</h3>
<p>
  基本的な手順としては、使いたいパッケージを
</p>
<ol class="list">
<li>tarball を展開</li>
<li>./configure</li>
<li>checkinsatll を実行</li>
</ol>
<p>
  となります。make install しないで checkinstall を使えばよいようです。
</p>
<h3>使用例</h3>
<p>
  ここでは SquidClamAV 3.9 の tarball を RPM に変換したときの例です。
</p>
<pre class="command">
  # wget http://www.samse.fr/GPL/squidclamav/squidclamav-3.9.tar.gz
  # tar xzf squidclamav-3.9.tar.gz
  # cd /usr/TAR/squidclamav-3.9/
  <samp>（出力結果は省略）</samp>
  # ./configure
  <samp>（出力結果は省略）</samp>
  # make
  <samp>（出力結果は省略）</samp>
  # checkinstall
</pre>
<p>
  途中でいくつか質問があります。英語ですが難しくありませんので、適切に答えてください。
</p>
<pre class="command">
  <samp>Should I create a default set of package docs?  [y]:</samp> <kbd>y</kbd> ← y を入力
  <samp>Please choose the packaging method you want to use.
  Slackware [S], RPM [R] or Debian [D]?</samp> <kbd>R</kbd>  ← R を入力

  <samp>Please write a description for the package.
  End your description with an empty line or EOF.
  &gt;&gt;</samp> <kbd>SquidClamav - A Clamav Antivirus Redirector for Squid -</kbd> ← パッケージの概要を入力
</pre>
<p>
  さらに、パッケージの詳細を入力できます。
</p>
<pre class="command">
<samp>
**************************************
**** RPM package creation selected ***
**************************************

This package will be built according to these values:

1 -  Summary: [ SquidClamav - A Clamav Antivirus Redirector for Squid - ]
2 -  Name:    [ squidclamav ]
3 -  Version: [ 3.9 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ x86_64 ]
8 -  Source location: [ squidclamav-3.9 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ squidclamav ]

Enter a number to change any of them or press ENTER to continue</samp>
</pre>
<p>
  例えば、ここで、 <var>Requires</var> に squid や clamav などのパッケージ名を追加したい場合は、<kbd>10</kbd> を入力します。
</p>
<pre class="command">
  <samp>Enter a number to change any of them or press ENTER to continue</samp>: <kbd>10</kbd>
  <samp>Enter the additional requirements:
  &gt;&gt;</samp> <kbd>squid</kbd>
</pre>
<p>
  Enter を押すと、RPM の作成が始まります。エラーがなければ次のようなメッセージが出て、/usr/src/redhat/RPMS/ 以下のディレクトリに RPM が作成されます。
</p>
<pre class="command">
<samp>**********************************************************************

 Done. The new package has been saved to

 /usr/src/redhat/RPMS/x86_64/squidclamav-3.9-1.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i squidclamav-3.9-1.x86_64.rpm

**********************************************************************</samp>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/01/rpm-tar-checkinstall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP を高速化する eAccelerator の RPM</title>
		<link>http://futuremix.org/2008/08/php-eaccelerator-rpm</link>
		<comments>http://futuremix.org/2008/08/php-eaccelerator-rpm#comments</comments>
		<pubDate>Fri, 15 Aug 2008 03:12:53 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1455</guid>
		<description><![CDATA[
  いまさらながら PHP：eAccelerator で PHP 高速化 &#8211; Y-110&#8217;s Wikiという記事を読みました。


  ただ、このページではソースからビルドする方法が解説されてい [...]]]></description>
			<content:encoded><![CDATA[<p>
  いまさらながら <a href="http://php.y-110.net/wiki/index.php?PHP%A1%A7eAccelerator%20%A4%C7%20PHP%20%B9%E2%C2%AE%B2%BD" title="PHP：eAccelerator で PHP 高速化 - Y-110's Wiki">PHP：eAccelerator で PHP 高速化 &#8211; Y-110&#8217;s Wiki</a>という記事を読みました。
</p>
<p>
  ただ、このページではソースからビルドする方法が解説されていますが、Red Hat 系のディストリビューションではやはり <abbr title="RPM Package Manager">RPM</abbr> で管理した方が良いので、<a href="http://rpm.pbone.net/index.php3?srodzaj=3&#038;simple=1&#038;stat=3&#038;search=php-eAccelerator">prm.pbone.net で検索</a>したところ、RPM で配布されているものを発見。
</p>
<p>
  CentOS 5 であれば、RHEL5 用の RPM が使えますので、それをダウンロードしてインストール。設定は /etc/php.d/eaccelerator.ini に記述され手いるので、httpd を再起動するだけで OK。 php.ini への記述の追加の必要もなく有効になりました。phpinfo で確認できれば動作しています。
</p>
<div class="screenshot">
  <a href="http://futuremix.org/2008/08/php-eaccelerator-rpm/php-eaccelerator-info" rel="attachment wp-att-1457"><img src="http://futuremix.org/wp-content/uploads/2008/08/php-eaccelerator-info-220x300.png" alt="" title="phpinfo で eAccelerator の設定を確認" width="220" height="300" class="aligncenter size-medium wp-image-1457" /></a>
</div>
<p>
  実際に早くなったかどうかは測定していませんが、簡単に利用できるという点で Zend Optimizer より導入しやすいかもしれませんね。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/php-eaccelerator-rpm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.2 での Oracle 対応 PHP の RPM</title>
		<link>http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch</link>
		<comments>http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:32:37 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1373</guid>
		<description><![CDATA[
  Oracle が PHP の RPM を公開中ですがでも書いたとおり、Oracle が Instant Client 対応の RPM を出してくれていますが、残念ながら最新の PHP 5.2.6 ではなく、PHP  [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://futuremix.org/2008/08/oracle-php-rpm-download" title="Oracle が PHP の RPM を公開中ですが">Oracle が PHP の RPM を公開中ですが</a>でも書いたとおり、Oracle が Instant Client 対応の RPM を出してくれていますが、残念ながら最新の PHP 5.2.6 ではなく、PHP 5.2.5 がベースとなっています。（この記事の執筆時点）
</p>
<p>
  また、CentOS 5.2 では、PHP 5.1.6 をベースにしていますので、PHP 5.1.6 で Oracle に対応できるように RPM を作ってみました。php-5.1.6-20.el5_2.1.src.rpm を元に spec ファイルの書き換えと、<a href="http://remi.collet.free.fr/files/php-5.2.5-oci8conf.patch">PHP 5.2.5 の configure.m4 ファイルに対するパッチ</a>などを参考にパッチを作成したところ、とりあえずビルドすることができました。
</p>
<p>
  Oracle Instant Client 10.2.0.4 の 64bit 版を対象にしています。それ以外のバージョンや 32bit 版をビルドするためには SPEC ファイル中の設定を書き換える必要があります。そんなに難しくはないと思いますが。本当はパラメータで指定できるとよいのでしょうが。
</p>
<ul>
<li><a href="/downloads/php.spec">php.spec</a></li>
<li><a href="/downloads/php-5.1.6-oci8conf.patch">php-5.1.6-oci8conf.patch</a></li>
</ul>
<h3>RPM 作成手順</h3>
<p>
  php-5.1.6-20.el5_2.1.src.rpm をインストールし、/usr/src/redhat/SPECS/php.spec を置き換えます。（32bit環境では &#8211;with-oci8 オプションに指定しているパスを修正する必要有り。）次に php-5.1.6-oci8conf.patch ファイルを SOURCE ディレクトリに配置して、<kbd>rpmbuild -ba php.spec --define 'oracle 1'</kbd> としてビルドしてください。
</p>
<p>
  でき上がった RPM をインストールしたら Apache を再起動し、phpinfo() コマンドで oci8 パッケージが有効になっていることを確認してください。
</p>
<h3>うまく動かないときは</h3>
<p>
  うまく表示されないときは、 LD_LIBRARY_PATH に Oracle Instant Client のライブラリパスをまだ追加していないからかも。 /etc/ld.so.conf.d/oracle-instant-client.conf というファイルを作成し
</p>
<pre class="config">
/usr/lib/oracle/10.2.0.4/client/lib/
</pre>
<p>
  のように Oracle Instant Client のライブラリパスを追加して保存。<kbd>ldconfig</kbd> コマンドでパスを読み込み直してから、再度 Apache を再起動してください。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle が PHP の RPM を公開中ですが</title>
		<link>http://futuremix.org/2008/08/oracle-php-rpm-download</link>
		<comments>http://futuremix.org/2008/08/oracle-php-rpm-download#comments</comments>
		<pubDate>Sun, 03 Aug 2008 22:27:03 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1359</guid>
		<description><![CDATA[
  最近の Oracle は PHP の RPMを公開してくれています。もちろん php-oci8 パッケージが含まれています。このパッケージを利用するには Oracle Instant Client の RPM が必 [...]]]></description>
			<content:encoded><![CDATA[<p>
  最近の Oracle は <a href="http://oss.oracle.com/projects/php/files/" title="Project Downloads: PHP RPMs - oss.oracle.com">PHP の RPM</a>を公開してくれています。もちろん php-oci8 パッケージが含まれています。このパッケージを利用するには <a href="http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html">Oracle Instant Client の RPM</a> が必要です。
</p>
<p>
  ただしバージョンは少し古い 5.2.5 です。PHP の現行バージョンは 5.2.6 であり、<a href="http://www.itmedia.co.jp/enterprise/articles/0805/07/news018.html" title="脆弱性に対処したPHP 5.2.6が公開 - ITmedia エンタープライズ">脆弱性に対処されている</a>そうなので、5.2.5 では不安がありますね。
</p>
<p>
  また、i386 だけなので、x86_64 や i686 に最適化されたパッケージはありません。<del datetime="2008-08-04T21:47:17+09:00" cite="http://d.hatena.ne.jp/elf/20080804/1217821740">ぜひ SRPM を公開して欲しいところです。</del>
</p>
<h3>追記</h3>
<p>
<a href="http://d.hatena.ne.jp/elf/20080804/1217821740" title="SRPMあるんじゃないのかな - よくきたはてダ">SRPMあるんじゃないのかな &#8211; よくきたはてダ</a>でご指摘いただきました通り、SRPM も公開されていました。src.rpm です。私の目が節穴でしたねorz。
</p>
<p>
この src.rpm を元にすれば、最新の 5.2.6 の RPM や、CentOS 5 向けの 5.1.6 の php-oci8 パッケージをビルドできそうです。時間のあるときに試してみたいと思います。<ins datetime="2008-08-07T22:34:16+00:00">試しました→<a href="http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch" title="CentOS 5.2 での Oracle 対応 PHP の RPM 《 futuremix">CentOS 5.2 での Oracle 対応 PHP の RPM 《 futuremix</a></ins></p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/oracle-php-rpm-download/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>bmptopnm: BMPlencolormap: internal error!</title>
		<link>http://futuremix.org/2008/08/bmptopnm-bmplencolormap-internal-error</link>
		<comments>http://futuremix.org/2008/08/bmptopnm-bmplencolormap-internal-error#comments</comments>
		<pubDate>Thu, 31 Jul 2008 16:27:50 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[NetPBM]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1340</guid>
		<description><![CDATA[
  CentOS5 の Netpbm に含まれる bmptopnm (bmptoppm) コマンドで、BMP 形式の画像を PNM 形式に変換しようとしたら


bmptopnm: BMPlencolormap: in [...]]]></description>
			<content:encoded><![CDATA[<p>
  CentOS5 の Netpbm に含まれる bmptopnm (bmptoppm) コマンドで、BMP 形式の画像を PNM 形式に変換しようとしたら
</p>
<pre class="log">
bmptopnm: BMPlencolormap: internal error!
</pre>
<p>
  のようなエラーが出て変換できませんでした。特殊な BMP ファイルでもなく、以前はできていたのでどうしたものかと。Netpbm のバージョンは 10.35-6 でした。
</p>
<p>
  どうやら Fedora Core 向けの最新の RPM では直っているようなので、Fedora Core 8 向けの <a href="ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/8/SRPMS/netpbm-10.35.45-1.fc8.src.rpm">netpbm-10.35.45-1.fc8.src.rpm</a> をダウンロードして、リビルドしましたところ、エラーは出なくなりました。
</p>
<pre class="command">
$ rpmbuild --rebuild --target i686 netpbm-10.35.45-1.fc8.src.rpm
</pre>
<p>
  ちなみに Fedora Core 開発版向けの netpbm-10.35.46-1.fc10.src.rpm を取ってきてビルドしようとしたら
</p>
<pre class="log">
  unrecognized command line option "-flax-vector-conversions"
</pre>
<p>
  のようなエラーが出てビルドに失敗しました。FC10 に比べると gcc や glibc のバージョンが低かったようです。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/bmptopnm-bmplencolormap-internal-error/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPM がエラーで複数パッケージが共存状態になったのを解消</title>
		<link>http://futuremix.org/2008/02/duplicate-rpm-packeges</link>
		<comments>http://futuremix.org/2008/02/duplicate-rpm-packeges#comments</comments>
		<pubDate>Sun, 10 Feb 2008 12:41:41 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/2008/02/duplicate-rpm-packeges</guid>
		<description><![CDATA[
  ある CentOS のサーバで、yum update の最中に反応が無くなってリブートしたら、kernel でもないのに複数のパッケージが共存というか重複して混在しているというあり得ない状態になってしまいました。た [...]]]></description>
			<content:encoded><![CDATA[<p>
  ある CentOS のサーバで、<kbd>yum update</kbd> の最中に反応が無くなってリブートしたら、kernel でもないのに複数のパッケージが共存というか重複して混在しているというあり得ない状態になってしまいました。たとえば、
</p>
<pre class="command">
# rpm -qa | sort
<samp>……
bind-9.2.4-28.el4
bind-chroot-9.2.4-27.0.1.el4
bind-chroot-9.2.4-28.el4
bind-libs-9.2.4-27.0.1.el4
bind-libs-9.2.4-28.el4
bind-utils-9.2.4-27.0.1.el4
bind-utils-9.2.4-28.el4
……</samp>
</pre>
<p>
のような状態になってしまっています。本来ならこのような形で同じ名前のパッケージが複数インストールされることはないのですが。
</p>
<p>
  ここで一方のパッケージを削除すると、パッケージに含まれるファイルが削除されてしまいますので、困ります。こういう場合は rpm コマンドで <kbd>&#45;&#45;replacepkg</kbd> オプションを使用して強制的に置き換えます。念のために設定ファイルなど変更したファイルはバックアップしておきます。
</p>
<pre class="command">
# rpm -Uvh bind-libs bind-utils bind-chroot --replacepkgs
</pre>
<p>
  パッケージは、yum のキャッシュが /var/cache/yum/base/packages/ などに残っていればそれを使います。なければ <a href="/2007/06/yum-get-source/">yumdownloader</a> を使いましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/02/duplicate-rpm-packeges/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>libsvg2 と scim-bridge-gtk の RPM が削除できなくなる</title>
		<link>http://futuremix.org/2007/10/rpm-cannot-uninstall-trouble</link>
		<comments>http://futuremix.org/2007/10/rpm-cannot-uninstall-trouble#comments</comments>
		<pubDate>Mon, 01 Oct 2007 12:00:23 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/10/rpm-cannot-uninstall-trouble</guid>
		<description><![CDATA[
  x86_64 環境で i386 の RPM を削除する の方法で、以下のようなエラーが発生した x86_64 のサーバ (CentOS 5) がありました。


# rpm -qa --qf "%{NAME}-%{ [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://futuremix.org/2007/09/rpm-erase-i386" title="x86_64 環境で i386 の RPM を削除する">x86_64 環境で i386 の RPM を削除する</a> の方法で、以下のようなエラーが発生した x86_64 のサーバ (CentOS 5) がありました。
</p>
<pre class="command">
# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}&#92;n" &#92;
  | grep i[36]86 | xargs rpm -e
<samp>Invalid link from "ld-linux.so.2" to "/lib/ld-lsb.so.3": No such file or directory
ls: /etc/gtk-2.0/i?86*: そのようなファイルやディレクトリはありません
/usr/bin/update-gdk-pixbuf-loaders: line 44: /etc/gtk-2.0/i686-redhat-linux-gnu/gdk-pixbuf.loaders: そのようなファイルやディレクトリはありません
エラー: %postun(librsvg2-2.16.1-1.el5.i386) スクリプトの実行に失敗しました。終了ステータス 1
ls: /etc/gtk-2.0/i?86*: そのようなファイルやディレクトリはありません
/usr/bin/update-gtk-immodules: line 44: /etc/gtk-2.0/i686-redhat-linux-gnu/gtk.immodules: そのようなファイルやディレクトリはありません
エラー: %postun(scim-bridge-gtk-0.4.5-7.el5.i386) スクリプトの実行に失敗しました。終了ステータス 1
xargs: rpm: ステータス255で終了; 中断</samp>
</pre>
<p>
  RPM の削除でエラーが発生したようですが、scim-bridge-gtk-0.4.5-7.el5.i386　と librsvg2-2.16.1-1.el5.i386　だけが残って、他のパッケージは削除されていました。これらのパッケージを個別に削除しようとしても、やはりエラーとなります。
</p>
<p>
  どうやら、RPM パッケージの削除の際に使われたり参照するファイルが別のパッケージに含まれていて、それらがすでに削除されてしまったために発生しているようです。SPEC ファイルへの依存関係の記述漏れか、RPM コマンドの不具合、もしくは RPM データベースの不整合が発生していたなどの理由も考えられます。
</p>
<p>
  このままでは気持ち悪いので、依存関係のありそうな gdk-pixbuf と gtk2 の i386 版を yum でインストールして、それから削除を試みました。
</p>
<pre class="command">
# yum install gtk2.i386 gdk-pixbuf.i386
</pre>
<p>
  これにより、依存関係のある glibc や zlib などの i386 (i686) 版など 30 パッケージほどが再びインストールされてしました。これらは後で消すことにして、この状態でアンインストールしてみます。
</p>
<pre class="command">
# rpm -e librsvg2-2.16.1-1.el5.i386
# rpm -e scim-bridge-gtk-0.4.5-7.el5.i386
</pre>
<p>
  エラーは出ずにパッケージが削除できました。そして一時的にインストールした glibc や zlib などを、最初のコマンドを使ってアンインストールしました。
</p>
<pre class="command">
# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}&#92;n" &#92;
  | grep i[36]86 | xargs rpm -e
</pre>
<p>
  他のパッケージでも似たようなトラブルが発生するケースもあると思いますが、無理矢理ファイルを消すのではなく、このように一度パッケージ群を入れ直して消した方がきれいに問題なく消せると思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/10/rpm-cannot-uninstall-trouble/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>x86_64 環境で i386 の RPM を削除する</title>
		<link>http://futuremix.org/2007/09/rpm-erase-i386</link>
		<comments>http://futuremix.org/2007/09/rpm-erase-i386#comments</comments>
		<pubDate>Sat, 22 Sep 2007 22:00:12 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/09/rpm-erase-i386</guid>
		<description><![CDATA[
  CentOS 5 の x86_64 版を入れていろいろやっていたら、いつのまにか i386 のパッケージが紛れていて、しかも依存関係の解決のために Gnome とか libxx など 100 近いパッケージが入って [...]]]></description>
			<content:encoded><![CDATA[<p>
  CentOS 5 の x86_64 版を入れていろいろやっていたら、いつのまにか i386 のパッケージが紛れていて、しかも依存関係の解決のために Gnome とか libxx など 100 近いパッケージが入ってしまっていました。rpm コマンドで一覧を表示させると次のように同じパッケージが複数表示される状態になっています。
</p>
<pre class="code">
$ rpm -qa | sort | more
<samp>GConf2-2.14.0-9.el5
GConf2-2.14.0-9.el5
ImageMagick-6.2.8.0-3.el5.4
ImageMagick-6.2.8.0-3.el5.4
MAKEDEV-3.23-1.2
NetworkManager-0.6.4-6.el5
NetworkManager-glib-0.6.4-6.el5
NetworkManager-glib-0.6.4-6.el5
NetworkManager-gnome-0.6.4-6.el5
ORBit2-2.14.3-4.el5
ORBit2-2.14.3-4.el5
PyXML-0.8.4-4
SDL-1.2.10-8.el5
SDL-1.2.10-8.el5
SDL-devel-1.2.10-8.el5
SDL-devel-1.2.10-8.el5
……</samp>
</pre>
<p>
  重って表示されるのは片方が x86_64 でもう片方が i386 （i686） です。
</p>
<p>
  i386 の方だけ狙って消すには
</p>
<pre class="command">
# rpm -e GConf2-2.14.0-9.el5<em>.i386</em>
</pre>
<p>
  のように パッケージ名とバージョンのあとに i386 （または i686） までつけて消せばよいのですが、依存関係もあるので大変です。そこで、rpm -qf でフォーマットを指定して xargs を使って一気に消せないか試したところうまくいきました。
</p>
<pre class="command">
# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}&#92;n" | grep i[36]86 | xargs rpm -e
</pre>
<h3>2009-11-19追記</h3>
<p>
  ある環境で scim-bridge-gtk の i386 パッケージが上記コマンドでどうしても削除できないという状況に陥りました。これは scim-bridge-gtk i386 パッケージがアンインストール時に /usr/bin/gtk-query-immodules-2.0-32 を実行しようとするのですが、このファイルが含まれている gtk2 パッケージが先に削除されてしまっているためです。このときは、一度 gtk2.i386 を入れ直してから、scim-bridge-gtk を先に手動で削除してから、改めて i386 のパッケージをまとめて削除することで解決しました。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/09/rpm-erase-i386/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用語集・略語</title>
		<link>http://futuremix.org/glossary</link>
		<comments>http://futuremix.org/glossary#comments</comments>
		<pubDate>Mon, 23 Jul 2007 04:48:46 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[CVS]]></category>
		<category><![CDATA[GIF]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/glossary</guid>
		<description><![CDATA[
  当サイトの、いくつかの略語・専門用語の解説をまとめた用語集です。随時、更新されます。

A〜N

CGI
ウェブサーバ上で動作して結果をブラウザに返すプログラム。Common Gateway Interface の [...]]]></description>
			<content:encoded><![CDATA[<p>
  当サイトの、いくつかの略語・専門用語の解説をまとめた用語集です。随時、更新されます。
</p>
<h2>A〜N</h2>
<dl>
<dt id="cgi">CGI</dt>
<dd>ウェブサーバ上で動作して結果をブラウザに返すプログラム。Common Gateway Interface の略。</dd>
<dt id="css">CSS</dt>
<dd>Cascading Style Sheet の略。いわゆるスタイルシートと呼びれているモノを指します。クロスサイトスクリプティングは紛らわしいので <a href="#xss">XSS</a> と略します。</dd>
<dt id="cve">CVE</dt>
<dd>Common Vulnerabilities and Exposures の略。脆弱性に対して提供されている普遍的な番号。http://cve.mitre.org/</dd>
<dt id="cvs">CVS</dt>
<dd>Concurrent Versions System の略。バージョン管理ツール。https://www.cvshome.org/</dd>
<dt id="eol">EOL</dt>
<dd>End Of Life の略。つまりサポートが打ち切られたことを示します。</dd>
<dt id="fc1">FC1</dt>
<dd>Fedora Core 1 の略。</dd>
<dt id="fc2">FC2</dt>
<dd>Fedora Core 2 の略。</dd>
<dt id="fc3">FC3</dt>
<dd>Fedora Core 3 の略。以下同様。</dd>
<dt id="fep">FEP</dt>
<dd>Front End Processer の略。日本語入力システムのことを指すと説明されることがあるが間違い。「先に何かをする機構」という意味なので、当てはまるものは他にもたくさんある。</dd>
<dt id="flp">FLP</dt>
<dd>Fedora Legacy Project の略。http://www.fedoralegacy.org/ Red Hat のサポートが切れたバージョンのディストーションのサポートを受け継ぎ、セキュリティ対応パッチをリリースするプロジェクトとしてスタートした。しかし期待されたものの参加スタッフの不足と、Fedora Core のサポート体制の変更、CentOS の台頭などによりすでに活動を停止した。</dd>
<dt id="gpl">GPL</dt>
<dd>GNU General Public License の略。http://www.gnu.org/copyleft/gpl.html</dd>
<dt id="gpg">GPG</dt>
<dd>GNU Privacy Guard の略。PGP の GNU による実装。GnuPG とも略す。http://www.gnupg.org/</dd>
<dt id="gif">GIF</dt>
<dd>Graphics Interchange Format の略。パソコン通信 CompuServe で利用され広まった画像圧縮フォーマット。256 色までのパレット画像しか扱えませんが、JPEG とは異なり透過やアニメーション画像を扱えるので根強い人気があります。米 Unisys 社のサブマリン特許事件を機にボイコット運動が起こり、<a href="#png">PNG</a> フォーマットが誕生するきっかけとなりました。アニメーションなどを除き <a href="#png">PNG</a> に取って代わらつつあります。</dd>
<dt id="html">HTML</dt>
<dd>HyperText Markup Language の略。</dd>
<dt id="iso">ISO</dt>
<dd>International Organization for Standardization。国際標準化機構。</dd>
<dt id="jpeg">JPEG</dt>
<dd>Joint Photographic Experts Group の略。写真などを圧縮するのに適している画像フォーマット。</dd>
<dt id="ml">ML</dt>
<dd>メーリングリスト(Mailing List)の略。最近はメーリスなんて略すようですが、違和感がありますね。</dd>
<dt id="mrtg">MRTG</dt>
<dd>Multi Router Traffic Grapher の略。ネットワークの使用状況を <a href="#html">HTML</a> の統計情報として出力してくれるツール。</dd>
</dl>
<h2>O〜Z</h2>
<dl>
<dt id="p2p">P2P</dt>
<dd>Peer to Peer の略。また、P2P 接続や P2P ネットワークを指す。</dd>
<dt id="p3p">P3P</dt>
<dd><a href="http://www.w3.org/P3P/">Platform for Privacy Preferences</a> の略。ウェブサイトのプライバシーポリシーを記述するための仕様。</dd>
<dt id="php">PHP</dt>
<dd>PHP:HIPERTEXT PROCESSER の略。Apache に組み込んで使うスクリプト言語。http://www.php.net/</dd>
<dt id="png">PNG</dt>
<dd>Portable Network Graphics の略。<a href="#gif">GIF</a> の代替として開発されたロイヤリティー不要の画像フォーマット。GIF との違いとしてはアニメーションはできないが、フルカラー(48bitまで)対応可能。JPEG と異なり可逆圧縮を行なう。またチャンクと言われる領域に独自形式の追加データを保持できる。アニメーション対応可能な形式としては MNG 画像フォーマットが制定されたが、Mozilla は途中から非対応にするなどあまり採用の動きが広がっていない。</dd>
<dt id="qa">QA</dt>
<dd>Quality Assurance の略。品質を保証すること。そのためのチッェクプロセスのことも QA という。QAing という言い回しもされています。</dd>
<dt id="rh73">RH73</dt>
<dd>Red Hat Linux 7.3 の略。</dd>
<dt id="rh8">RH8</dt>
<dd>Red Hat Linux 8 の略。Fedora Legacy でのサポートは断念されました。</dd>
<dt id="rh9">RH9</dt>
<dd>Red Hat Linux 9 の略。</dd>
<dt id="rhel">RHEL</dt>
<dd>Red Hat Enterprise Linux の略。</dd>
<dt id="rhl">RHL</dt>
<dd>Red Hat Linux の略。通常 Red Hat Linux 9 以前を指します。</dd>
<dt id="rpm">RPM</dt>
<dd>Redhat Package Manager の略。Red Hat 系ディストリビューションで使用するパッケージ管理ツール。</dd>
<dt id="sier"><ruby><rb>SIer</rb><rp>（</rp><rt>エスアイアー</rt><rp>）</rp></ruby></dt>
<dd>System Integrator の略。System Integration (システム構築)と区別するために er をつけていると思われる。SI屋と聞こえるときもあるが間違えではないと思う。</dd>
<dt id="smtp">SMTP</dt>
<dd>Simple Mail Transfer Protocol の略。メールを転送するためのプロトコル。</dd>
<dt id="snmp">SNMP</dt>
<dd>Simple Network Management Protocol の略。簡易ネットワーク管理プロトコル。</dd>
<dt id="ups">UPS</dt>
<dd>Uninterruptible Power Supply の略。無停電電源装置。</dd>
<dt id="uri">URI</dt>
<dd>Universal Resource Identifier の略。<abbr title="Uniform Resource Locator">URL</abbr> との違いは、<a href="/2003/02/uri">URI と URL</a> を参照。</dd>
<dt id="wua">WUA</dt>
<dd>&#9312;<a href="#www">WWW</a> User Agent の略。一般に WWW ブラウザと呼ばれているものがそれに当たる。&#9313;Windows Update Agent の略。Windows の自動更新を行なってくれるアプリケーション。</dd>
<dt id="www">WWW</dt>
<dd>World Wide Web の略。主に HTML を介して繋がっているリソース網。</dd>
<dt id="xml">XML</dt>
<dd>eXtensible Markup Language の略。拡張可能なマークアップ言語。</dd>
<dt id="xss">XSS</dt>
<dd>クロスサイトスクリプティング (Cross Site Scripting) の略。<a href="#css">CSS</a> と略さないのは カスケーディングスタイルシートと紛らわしいから。</dd>
</dl>
<h2>あ〜の</h2>
<dl>
<dt id="guguru">ぐぐる</dt>
<dd><a href="http://www.google.com/">Google</a> で検索すること。</dd>
<dt id="gensou"><ruby><rb>言想</rb><rp>（</rp><rt>げんそう</rt><rp>）</rp></ruby></dt>
<dd>話しながら考えること。何かの辞書に載っていたのですが失念しました。</dd>
<dt id="security-hole">セキュリティホール</dt>
<dd>コンピュータ用語で、安全上の欠陥。ソフトウェアの設計ミスやバグなどで、プライバシーが脅かされたり、パソコンに侵入されたりする欠陥。</dd>
<dt id="senseup">センスアップ</dt>
<dd>センスアップとはいう言葉は和製英語です。直訳すると「感性向上」ということでしょうか。</dd>
</dl>
<h2>は〜ん</h2>
<dl>
<dt></dt>
<dd></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/glossary/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpGroupWare の RPM を作成</title>
		<link>http://futuremix.org/2007/06/phpgroupware-rpm</link>
		<comments>http://futuremix.org/2007/06/phpgroupware-rpm#comments</comments>
		<pubDate>Tue, 26 Jun 2007 10:09:23 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[GroupWare]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">1</guid>
		<description><![CDATA[
  phpGroupWare は、PHP で書かれたオープンソースのグループウェアですこれを CentOS 4.5 に導入した際のメモです。


  まず手始めに RPM を作成します。SourceForge.net: [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://www.phpgroupware.org/">phpGroupWare</a> は、<abbr title="PHP:HIPERTEXT PROCESSER">PHP</abbr> で書かれたオープンソースのグループウェアですこれを CentOS 4.5 に導入した際のメモです。
</p>
<p>
  まず手始めに RPM を作成します。<a href="https://sourceforge.net/projects/phpGroupWare" title="SourceForge.net: phpGroupWare">SourceForge.net: phpGroupWare</a> から最新の tar.bz2 ファイルをダウンロードし、/usr/src/redhat/SOURCES/ ディレクトリに置きます。</p>
<pre class="command">
# cd /usr/src/redhat/SOURCES/
# wget http://jaist.dl.sourceforge.net/sourceforge/phpgroupware/phpgroupware-0.9.16.011.tar.bz2
</pre>
<p>phpgroupware-rh-all-ap.spec　ファイルを取り出して、/usr/src/redhat/SPECS/ ディレクトリに置き、所有者を変更します。
</p>
<pre class="command">
# tar xjvf phpgroupware-0.9.16.011.tar.bz2 'phpgroupware/doc/rpm-build/phpgroupware-rh-allapp.spec'
# mv phpgroupware/doc/rpm-build/phpgroupware-rh-allapp.spec ../SPECS/
# chown root:root phpgroupware-rh-allapp.spec
</pre>
<p>
  phpgroupware-rh-all-ap.spec ファイルを変更します。
</p>
<pre class="config">
%define version 0.9.16.<kbd>011</kbd>
……
#%{prefix}/%{phpgwdirname}/property ←コメントアウト
……
%{prefix}/%{phpgwdirname}/"phpGroupWare - 0.9.16.kpf"
%{prefix}/%{phpgwdirname}/README.NOW-IMPORTANT
……
</pre>
<p>RPM をビルドします。</p>
<pre class="command">
$rpmbuild -ba phpgroupware-rh-allapp.spec
</pre>
<p>
  noarch の PRM ができるのでインストールします。
</p>
<pre class="command">
#rpm -ivh /usr/src/redhat/RPMS/noarch/phpGroupWare-all-apps-0.9.16.011-1.noarch.rpm
</pre>
<p>
  ファイルは /var/www/html/phpgroupware にインストールされます。続いてインストール後の設定です。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/06/phpgroupware-rpm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
