あーかいぶすハイディフィニション

ここはもう更新しとらんのじゃ

閉じた環境でのyum update

RHEL5環境で、本番機とテスト機がありなおかつ、外部ネットワークに出れるけど、
「テスト機でアップデートして動作不具合の無かったパッケージしか本番に適用しません!」
と微妙にもにょる事を言われました。
色々思う所があるのですが、言われたらやるしか無い。そして面倒くさいスパイラル(2.0)へ。

結局のところどうするかというと、createrepoというrpmパッケージを利用します。コマンドは以下。
(今回の実験環境はCentOS5.2(Final)ですが、RHELでも同じ手順でおk)

 # cd /var/cache/yum/package/updates/
 # createrepos ./

こんだけ。
あとはそのディレクトリに repond/ とかいうディレクトリと、ファイルの内容を記載した xml が出力されるので、まとめてどっかにもっていって、yum の設定ファイルを書き換えるだけ。

4/6 18:00追記

openSUSEも、YaSTで読み込むファイルはrepond.xmlらしいので、もしかして流用できる?とおもったけど、SuSEってyumも積んでるしいけそうね。今度試します。

6/17 25:00追記

ちょいと説明不足だったので補足。/var/cache/yum/package/updates/ というディレクトリは、.rpm ファイルを配置しているディレクトリです。んで、この updates ディレクトリの中で createrepos を実行する事により、 updates ディレクトリの直下に repodata というディレクトリとファイルをマッピングしてあるらしい、各種 xml ファイルを作成します。

んで実際利用するには、updates ディレクトリ以下を丸ごと運搬すればいいです。2回目以降を行いたい場合は、 mv 等で updates ディレクトリをどこかに移動させて、また mkdir して空の updates ディレクトリを作成しておけば以降は同じ手順の繰り返し。

ちなみに

これやると yum のパッケージ管理データが壊れやすいのかもしれません。テストする環境で3回試したうち2回 yum のデータが壊れているとか言われました。以下のようにして解決。

# yum clean metadata

これに限らず、yum は結構トラブル起りやすいので、 all clean 等、一通りの対処は覚えておいて損はないです。

VirtualHost環境化でのPermission Denied

Google 先生に尋ねると、同じような症状の人がたくさんでてきますが、VirtualHostで複数切った環境下で、各VrtualHost句のDocumentRootを、標準のDocumenRootから外れた位置に宣言すると、アクセスがすべからく「Permission Denied」になってしまう。
解決策は、結局デフォルトのDocumentRootの中でどこかディレクトリを切って割り当てる、しか思いつかなかった。
これどうなってんだ?というか、会社で利用しtるiDCの筐体は問題ないんだよなー。そしてVirtualHost句にはUser Groupの宣言できないし。SuexecUserGroupはCGIだけだし、試したけど失敗したし。多分Apacheの動作ユーザ関係だと思うんだけどなんだろう?きもち悪い。

※ちなみに、各DocumetRootをapacheユーザにしたり、SELinuxをOFFにしたりしてみましたが改善されませんでした。ので、/home/Users/の下に以下のようなシンボリックリンクを設定することで、それっぽく見せる事に。

 $ ln -s /var/www/users_public_html/ ./public_html

うあーきもいよー。