CentOS 5の最近のブログ記事

Feb
11
2008

サーバ移行していると、ソフトウェアをダウンロードしたり、旧サーバからファイルを取ってきたりとファイル転送を使用することがしばしば。
単一ファイルであれば、wgetが手軽です。-r オプションで再帰的な取得もできますが、anonymous FTPのディレクトリ内を眺めながらGETしたりする際にはやはり手に馴染んだFTPクライアントが欲しいところ。

ということで、NcFTPを入れましょう。perl -MCPAN -e shellとか、結構いろんなプログラムでFTP用途に呼び出されたりしますし。

ところが、CentOS 5標準のyumレポジトリにはncftpがありません。
そこで、yumからRedHat系OS向けに4,000以上のプロジェクトをRPM化して提供しているrpmforgeのパッケージが扱えるようにしてみましょう。

ちなみに、この作業の前はこんな感じ。


# yum install ncftp

Loading "installonlyn" plugin

Loading "fastestmirror" plugin

Setting up Install Process

Setting up repositories

extras 100% |=========================| 1.1 kB 00:00

updates 100% |=========================| 951 B 00:00

base 100% |=========================| 1.1 kB 00:00

addons 100% |=========================| 951 B 00:00

Loading mirror speeds from cached hostfile

Reading repository metadata in from local files

Parsing package install arguments

Nothing to do

そこで、"Installation and Configuration" を見ながらインストールしてみましょう。
といっても、

# rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

で終了。必要な時だけ、rpmforgeを見るように、設定ファイルを書き換えます。

# vi /etc/yum.repos.d/rpmforge.repo

enabled = 1

enabled = 0


そうしますと、yum に --enablerepo=rpmforge オプションを付加することで、rpmforgeのRPMを見に行くようになります。どのくらいファイル数が増えるか比較してみましょう。

# yum list | wc -l

3333

# yum list --enablerepo=rpmforge | wc -l

7147

まぁ、素敵。

では、NcFTPを......

# yum --enablerepo=rpmforge install ncftp

.
.
.
.

Nothing to do

なに?
# yum list --enablerepo=rpmforge | grep -i ncftp

#

ねーんでやんの。orz

なんだそれ?仕方ない。FedoraのSRPM持ってきてrpmbuildだ。

ちなみに、perlのモジュールがRPM化されたヤツがいっぱいあり、Plagger入れるときのモジュールの依存関係辺りで悩まずにすむかもしれないし、zopeなんかもRPM一発で入れられる(使わないけど).......ので、この作業は無駄ではない.....と信じたい。

Feb
20
2008

これまで8GBのVPSでも、Web関連のキャッシュ&ログに気をつけている限りは容量を使い切れなかったのに、今のサービスは50GB。

というわけで、総容量が10GBを超えそうな猫写真&猫動画のバックアップ領域を嫁に提供するべくWebDAVの設定。

GETで取得したquery文字列に含まれる日本語が化ける問題に対応するパッチというのも当ててみた。

CentOS5の場合、標準でWebDAVモジュールは入っているので、mod_encodingでの日本語対応と、httpd.confでの設定のみでOK.

先ずは材料として、WebDAV Resources JPのダウンロードページから、


と、先ほどのGETで取得したquery文字列に含まれる日本語が化ける問題に対応するパッチ(以下、mod_encoding-20020611a-safequery.patch
)
を用意。

■インストール


$ gunzip -dc mod_encoding-20021209.tar.gz | tar xvf -
$ cd mod_encoding-20021209
$ ./configure --with-apxs=/usr/sbin/apxs
$ cp ../mod_encoding.c.apache2.20040616 mod_encoding.c
$ patch -p0 < ../mod_encoding-20020611a-safequery.patch
$ cd lib

$ ./configure
# make
# make install
# cd ..
# make
# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
# cp mod_encoding.so /etc/httpd/modules/
# ln -s /usr/local/lib/libiconv_hook.so /usr/lib/httpd/libiconv_hook.so.1

■設定

# vi /etc/httpd.conf

<IfModule mod_encoding.c>
  EncodingEngine        on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
  AddClientEncoding "Microsoft .* DAV 1.1" ASCII CP932 UTF-8
  AddClientEncoding "Microsoft .* DAV" UTF-8 CP932
  AddClientEncoding "(Microsoft .* DAV $)" UTF-8 CP932
  AddClientEncoding "(Microsoft .* DAV 1.1)" CP932 UTF-8
  AddClientEncoding "Microsoft-WebDAV*" UTF-8 CP932
  AddClientEncoding "RMA/*" CP932
  AddClientEncoding "xdwin9x/" CP932
  AddClientEncoding "cadaver/" UTF-8 EUCJP-MS
  AddClientEncoding "Mozilla/" EUCJP-MS
  NormalizeUsername on
</IfModule>
Alias /alias_directry_name /real_directry_in_full_path
<Location /alias_directry_name>
  AddDefaultCharset UTF-8
  Options +Indexes
  IndexOptions FancyIndexing FoldersFirst TrackModified
  DAV on
  AuthName "WebDAV Folder"
  AuthType Basic
  AuthUserFile /somewhere/.davpasswd
  Require user some_username_for_basic_authentication
  <LimitExcept HEAD OPTIONS>
       Require user some_username_for_basic_authentication
  </LimitExcept>
  Header add MS-Author-Via "DAV"
</Location>

# htpaswd -c /somewhere/.davpasswd some_username_for_basic_authentication
# /etc/init.d/httpd configtest
# /etc/init.d/httpd reload

Windows XP SP2以降では、Webフォルダ機能でのBASIC認証はhttpsでしか受け付けません。CentOS5は、標準でオレオレ証明書でのSSLが有効になっているので問題になりませんが、面倒な場合は自己責任でレジストリを変更して対処する方法もあるようです。

というわけで、着々とディスク使用量増加中

Feb
23
2008

Perlモジュールのインストールといえば、perl -MCPAN -e shellが定番。依存関係も(ある程度は)自動解決してくれます。
しかし、当然ながらRPM管理の埒外としてインストールされてしまいます。

これから、Plaggerをインストールするのですが、コレもRPM管理できないかなということで探してきたのが、PerlのCPANモジュールをRPM化してくれるcpan2rpm
あ、勿論、rpmforgeにあるヤツはyum install --enablerepo=rpmforge でも良いです。コチラの方がupdateが容易でしょう。

Plaggerは残念ながらrpmforgeには無さそうなのですよ。


# yum list --enablerepo=rpmforge | grep -i plagger
#

■cpan2rpmのインストール


% wget http://jaist.dl.sourceforge.net/sourceforge/cpan2rpm/cpan2rpm-2.027-1.src.rpm
# rpmbuild --rebuild cpan2rpm-2.027-1.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/noarch/cpan2rpm-2.027-1.noarch.rpm

使い方は、パッケージを指定するだけ。例えば、

# cpan2rpm Test::Base

みたいな感じ。自動的にCPANからtarballを取ってきて、RPMとSRPMを作成してくれます。
依存関係の不足は表示されるので、yum install --enablerepo=rpmforgecpan2rpmで解決してあげればよいでしょう。

うまく使い分ければ相当に便利そう。

過去のエントリ(一覧)

最近のコメント

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。