No Such Blog or Diary
RMagick Compilation with Older GCC
- 2005-04-01 (Fri)
- ソフトウェア ( Linux/coLinux )
CGI での画像操作に ImageMagick の Ruby interface である RMagick を使いたい.ということで RMagick をサーバ上でコンパイルしたのだが,少々問題発生.
RMagick は古い gcc2.95 とかでコンパイルすると -std=gnu99 オプションのせいでコンパイルがこける.なので,ext/RMagick/extconf.rb.in の
$CFLAGS = "-std=gnu99 -Wall -g @CFLAGS@"
を
$CFLAGS = "-Wall -g @CFLAGS@"
に書き換えてオプションをはずしてしまう.これでコンパイルできる.ついでに,インストール先を変えた場合パスを通しておかないと動かないので,たとえば
./configure --prefix=/home/ls-al/local/usr/
としたときには
ruby -I/home/ls-al/local/usr/lib/ruby/site_ruby/1.8/ -I/home/ls-al/local/usr/lib/ruby/site_ruby/1.8/i386-freebsd4 -e'require "RMagick"'
みたいに RMagick.rb, RMagick.so へのパスを渡す.一般的には次のような感じだと思う.
./configure --prefix=_PREFIX ruby -I_PREFIX/lib/ruby/site_ruby/1.8/ -e'require "RMagick"' -I_PREFIX/lib/ruby/site_ruby/1.8/_ARCH
- Comments: 0
- TrackBack (Close): -
CentOS
- 2005-03-30 (Wed)
- ソフトウェア ( Linux/coLinux )
Redhat Enterprise Linux の商用部分を省いた形のパッケージである CentOS なるものがあることを知った.http://www.centos.org/
なにやらアップデートとかも速いらしいので安定に使うにはいいものかもしれない.とりあえず暇になったら試してみよう.
- Comments: 0
- TrackBack (Close): -
pLaTeX で EUC
cvs に上げられた TeX ファイルをコンパイルしようと思ったら EUC コードだった.普段使っている pTeX のデフォルトは SJIS なので当然のことながらこける.
で,せっかくなのでEUCをコンパイルするオプションを学んでみた.
platex --kanji=euc --fmt=platex-euc paper
これだけでコンパイルできるのでそれなりに簡単なのだが,platex -e ぐらいに単純だともっといいなぁと思う今日この頃.
ちなみに,オプションつけるより
platex-euc paper
としたほうが短い.
- Comments: 0
- TrackBack (Close): -
Meadow で文字コード変更
- 2005-03-24 (Thu)
- ソフトウェア ( Meadow/Emacs )
何度やっても忘れるのでここに書いておこう.Meadow での文字コード変更は
C-x Ret f M-x set-buffer-file-coding-system
だ.
- Comments: 0
- TrackBack (Close): -
rsync でバックアップ
- 2005-03-24 (Thu)
- ソフトウェア
サーバのバックアップに SCP で全ファイル転送とかやるのもいい加減あほらしいので ssh を通した rsync でローカルを同期させることにした(さすがに rsh は使いたくない).とりあえず使い方と使いそうなオプションを見てみると
Usage: rsync [OPTION]... SRC [SRC]... DEST
といった感じである.一々コマンド全部打つのも面倒なので使いそうなオプションの組み合わせで makefile を用意.
.phony : put-dry get-dry put get \ put-del-dry get-del-dry put-del get-del default LOCAL=./alldata REMOTE=ls-al@ls-al.jp: OPTIONS=-avzu -e ssh --exclude='*~' --exclude='*.bak' --exclude='CVS' default: get put: rsync $(OPTIONS) $(LOCAL) $(REMOTE) get: rsync $(OPTIONS) $(REMOTE) $(LOCAL) put-dry: rsync $(OPTIONS) --dry-run $(LOCAL) $(REMOTE) get-dry: rsync $(OPTIONS) --dry-run $(REMOTE) $(LOCAL) put-del: rsync $(OPTIONS) --delete $(LOCAL) $(REMOTE) get-del: rsync $(OPTIONS) --delete $(REMOTE) $(LOCAL) put-del-dry: rsync $(OPTIONS) --dry-run --delete $(LOCAL) $(REMOTE) get-del-dry: rsync $(OPTIONS) --dry-run --delete $(REMOTE) $(LOCAL)
get/put で削除なしの同期(REMOTE→LOCAL / LOCAL → REMOTE)で,-del が付くと削除あり,-dry が付くと実際の転送なしで確認となる.
これでバックアップが楽になったぞ(ネットワークの負荷的に)
- Comments: 0
- TrackBack (Close): -
システムコール
- 2005-03-22 (Tue)
- ソフトウェア ( Linux/coLinux )
Linux には strace というシステムコールやシグナルをトレースするコマンドがある.ある種のシステムコールAPIを調べたいときにそれを使っていそうなプログラムに対してstrace をかましてAPIのあたりをつけるのが普通の使い方となる(はず?)
こんなものがなぜ話題に出たかというと,それは実際に使いたい状況になったからで,具体的にはグリチャレで空いているエフェメラルポートを知りたいけどそのためのAPI がわからず,とりあえずポート関係を一通り調べられる netstat に対してトレースをして探そうと考えたから.
で,実際に netstat に使ってみると何の反応も無い.使い方がおかしいのかと思い,他のプログラムに対してトレースしてみるとちゃんと結果が出てくる.結論: netstat は API 使ってない... そんなバカな.netstat が変なコマンドなのか truss の使い方がおかしいのか良くわからんが,結局開きポートを得る方法もわからずなぞは深まるばかりであった.マル.
- Comments: 0
- TrackBack (Close): -