2007年1月18日

[users 7106] Re: デフォルトでインストールされたソフトを再インストールするには


 おはようございます、前佛と申します。

> ApacheやPHPなど、FedoraDVDからインストールしたのですが、
> configureの変更が必要になってしまいました。
>
> この場合、やはり各アプリのサイトからソースを取得して
> 再インストールしないといけないのでしょうか。


 ○○しなくてはいけない、という事はないと思います。

 ソースから構築して管理される方の利便性が高いと思えばソースから構築され
るほうが良いとおもいますし、他のパッケージとの協調性を維持したいのであれ
ば RPM で管理されたほうがいいでしょう(いずれの場合も変更箇所の履歴は残
しておかないと後で混乱してしまいます)。

 構成変更をあまり希望されない場合は SRPM (Source やパッチがまとめて梱包
されているパッケージ群です)を取得して、その中の spac ファイルを編集し、
RPM を再構築(リビルド)するという方法があります。

 たとえば Fedora Core 5 で example というパッケージがあったとして、その
configure を変更したい場合

$ yumdownloader --source --enablerepo=updates-source example

 として、最新の SRPM ファイル example-x.x.src.rpm が取得できます。
 オリジナルから更新されていないパッケージだけであれば

$ yumdownloader --source パッケージ名

 で取得可能な場合もあります。もし yumdownloader が入っていない場合は

# yum install -y yum-utils

 を実行して yumdownloader を予め入れておく必要があります。

 SRPM (この場合は example-x.x.src.rpm) の取得が終わったあとは、通常の
RPM パッケージと同じようにインストールします。インストール先のディレクト
リは /usr/src/redhat ディレクトリです。SRPM パッケージのインストールは

# rpm -ivh example-x.x.src.rpm

 のように実行します。そうすると、SPEC ファイルが /usr/src/redhat/SPEC
ディレクトリに example.spec ファイルが作成されています。あとは、
example.spec ファイルをエディタで開くと ../configure \ 〜という行があり
ますので、必要に応じて書き換えます。

 編集後は同じディレクトリ内で、もしくはフルパスで example.spec を

# rpmbuild -ba -v /usr/src/redhat/SPECS/example.spec


 ・・・と簡単に書きましたが、もし Apache2 や PHP あたりでは依存関係が発
生するため、関連パッケージも必要となり、もしセキュリティ対応など、バージョ
ンアップの際には、場合によっては面倒かもしれません(管理ポリシーや管理人
次第だと思います)。

 というのも、RPM でセキュリティ対応等でバージョンアップをおいかける場合、
結局都度 SRPM を変更しなくてはいけないからです。逆に、管理人によっては、
作業としてはソースから構築したほうが他のディストリビューションにも応用が
効くし、自分で触った履歴が残るので便利だわかりやすい、と思う方もいるかも
しれません。

 追記として、php.spec を編集して RPM を構築するためには RPM パッケージ
群がいくつか必要になります。依存関係の出た RPM すべてをセットアップしな
くてはいけません。その時、依存関係のために更に他のパッケージも必要になっ
てしまうので、モノによっては注意を払う必要も出てくると思います。

 

 私の何も考えずに動かしている VM 上の Fedora Core 5 では php.spec から
RPM を構築するために、以下のパッケージ群が必要になりました。

# yum install aspell-devel httpd-devel pcre-devel libc-client-devel \
mysql-devel postgresql-devel unixODBC-devel net-snmp-devel

 SRPM ファイルの取得には、

# yumdownloader --source --enablerepo=updates-source php
# rpm -ivh php-5.1.6-1.2.src.rpm

 パッケージを入れ終わった後、SPEC ファイルの編集は

# vi /usr/src/redhat/SPEC/php.spec

 あとは RPM 再構築、

# rpmbuild -ba -v /usr/src/redhat/SPECS/php.spec

 このように実行すると、RPM パッケージ
 あとは再構築されたパッケージ群は /usr/src/redhat/RPMS/i686 など(アー
キテクチャ依存、x86_64 の場合もあります)配下に作成されるので、次のコマ
ンドを入力してバージョンアップです。

# rpm -Uvh php*.rpm

 私自身、RPM の再構築を試した、というだけで FC5 での動作は未検証です。
 悪しからずご了承下さい。


 参考 URL として、詳しく解説されている URL では

http://www.stackasterisk.jp/tech/systemManagement/rpm01_01.jsp
 カスタムRPMの基礎とspecファイル (STACK*)

http://www.itmedia.co.jp/enterprise/0309/26/epn02.html
 SRPMリビルドとコンパイルマスター (ITmedia)

 が参考になると思います。

 詳しくは"srpm リビルド"をキーワードに検索エンジンを辿られると理解が深
まると思います。

--
前佛 雅人(Zembutsu Masahito) zem@xxxxx
Pocketstudio.jp Linux Wiki http://pocketstudio.jp/linux/
GPG KeyID: 0x16F8DC1E
GPG Fingerprint: A012 B5CE C86B 8EDD F5D2 2030 5D34 8477 16F8 DC1E


_______________________________________________
users mailing list
投稿先アドレス: mailto:users@xxxxx
総合案内: http://fedora.jp/mailman/listinfo/users
過去の投稿の検索: http://fedora.jp/kabayaki/

投稿者 xml-rpc : 2007年1月18日 07:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/52913
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。