2009年9月3日木曜日

Mac OS X 10.6 - Snow Leopard にした後 MacPorts であれこれしこしこ入れ直してんだけど、ビルドに失敗するようになったもの



"深追いはしてないので、ひょっとしたら問題なくできるのかもしれない。けどビルドできなくなっちゃったなとほほー" 、というものを書く。

今のところ以下。何か入れようとして失敗したら随時追記予定。書いたものがビルドできるようになったら適宜修正。

python26 できた (9/7 確認)
gauche できた (2010/1/7 確認、2009/11/22リリースの Gauche 0.9 で Snow Leopard 対応してた。)
sbcl できた (2010/1/7 確認)
ccl
ghc
erlang できた (9/4 確認)

徐々に修正されつつある。
MacPorts の ML やら リポジトリみてればわかるんだろうけどね・・・
そこまでやる気力なし・・

プログラミング言語関係は厳しい・・・? (ruby19, perl5.8, python30 は ok
% uname -v
Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386

% port installed perl5.8 ruby19 python30
The following ports are currently installed:
perl5.8 @5.8.9_3 (active)
python30 @3.0.1_4+darwin+ucs4 (active)
ruby19 @1.9.1-p243_0 (active)

% file /opt/local/bin/{ruby1.9,python3.0,perl5.8}
/opt/local/bin/ruby1.9: Mach-O 64-bit executable x86_64
/opt/local/bin/python3.0: Mach-O 64-bit executable x86_64
/opt/local/bin/perl5.8: Mach-O 64-bit executable x86_64

% port provides /opt/local/bin/{ruby1.9,python3.0,perl5.8}
/opt/local/bin/ruby1.9 is provided by: ruby19
/opt/local/bin/python3.0 is provided by: python30
/opt/local/bin/perl5.8 is provided by: perl5.8

追記: その後 python30 無くなって、python31 が現れた。
% port search python30No match for python30 found
% port search python31
python31 @3.1 (lang)
An interpreted, object-oriented programming language

入れた。

% port provides /opt/local/bin/python3.1
/opt/local/bin/python3.1 is provided by: python31
% file /opt/local/bin/python3.1
/opt/local/bin/python3.1: Mach-O 64-bit executable x86_64

環境としては、
- 10.6 を Upgrade DVD で入れて
- Developer Tools を入れて (アップグレードした時点で消されるのねぇ)
- /opt/local 全消ししてから
- 最新 MacPorts を dmg で入れなおした
という状態で、10.5 の時に入れていたものをちくちく入れ直し中、そんな状況。
variants で universal があってもつけずに入れる方針。うれしさがわからん。

python26 がビルドできなくなったので、それまで python26 で 野良make して入れていた mercurial は python26-apple(OS付属のpython. python_select での呼称) で 野良make しなおした。

ので python_select は今のところこんなん。mercurial 用でしか使ってないからpython30 と python31 はディスクのこやしに、、、、
% python_select -s
python26-apple
% python_select -l
Available versions:
current none python26-apple python30 python31

2009年9月2日水曜日

Mac OS X 10.6 の mach_kernel

PowerPC 捨てだけど
ppc 残ってるのはなんでだろう。(ほかのバイナリも)
% uname -v
Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386
% file /mach_kernel
/mach_kernel: Mach-O universal binary with 3 architectures
/mach_kernel (for architecture x86_64): Mach-O 64-bit executable x86_64
/mach_kernel (for architecture i386): Mach-O executable i386
/mach_kernel (for architecture ppc): Mach-O executable ppc


ls なぞは ppc なかったり. (bash もなくて zsh は あったり.まちまち.)
% file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture x86_64): Mach-O 64-bit executable x86_64
/bin/ls (for architecture i386): Mach-O executable i386

2009年8月28日金曜日

Danish Hackers

デンマークすげぇ

37signals, Rails : David Heinemeier Hansson (DHH)
FreeBSD Hacker, varnish cache : Poul-Henning Kamp (PHK)
C++ : Bjarne Stroustrup
PHP : Rasmus Lerdorf
Turbo Pascal, Delphi, C# : Anders Hejlsberg

2009年8月18日火曜日

[Linux][netfilter] とある NAT-box

のちょーしが悪かった、らしい。「らしい」としかわからんのよね。
(担当らしき人がいなくなった、みなしごサーバのため。。)

それでもなんかすぐできることはないのかな、と
ちょいとログをみるに、

ip_conntrack: table full, dropping packet.

がずらっと刻まれてた。。はぁ。

値はすでにかなり大きく設定(12万ちょい)されていて、かつ積んでるメモリ(2G)から計算するに、もうあげられない。んーー。

参考)
Netfilter conntrack performance tweaking
On i386 architecture, CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 =
RAMSIZE (in MegaBytes) * 64.
So for example, a 32 bits PC with 512MB of RAM can handle 512*1024^2/16384 =
512*64 = 32768 simultaneous netfilter connections by default.

But the real formula is:
CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32)
where x is the number of bits in a pointer (for example, 32 or 64 bits)


2009年8月9日日曜日

[VPS] 今度は provps にした

今使ってるのから、 provps に徐々に移行。
使っている、といっても前かいてるように

・おうちに置かずに
・ssh ではいれて
・root つかえる

というのであればいいので、スペックは今のより少し落とした。VPS 256 プラン。
アドレスはムダに追加2つ。( +$2 / month)

自宅からだと、vpslink で借りてるところよりも

・round trip time が「きもち」短い
・TTL の減りが「きもち」少ない

両方 US だから、ほとんどかわらん。


Ubuntu 8.04 でイメージを作って起動し、ちょっとさわりはじめてハマった。
(なぜ Intrepid や Jaunty でないのか、は、選択できる Ubuntu で最新のが Hardy だったから。LTS だからかな。)

というのも、ssh-keygen で鍵を作って、今使ってる他の VPS なサーバの authorize_keys に追加して鍵認証で入ろうとしたところ、全然入れない。
パーミッションがおかしいわけでもないし、 別ポートで sshd -ddd や ssh -vvv しつつ入ってみてもだめ。。

なんだろなーと思っていつものようにログ (/var/log/auth.log) をみてみると、、、あー。すぐわかった。。
Aug 9 XX:XX:XX xxxx sshd[12394]: Public key xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx blacklist
ed (see ssh-vulnkey(1))

これは、Debian GNU/Linux に含まれる OpenSSL/OpenSSH の脆弱性な鍵だ、、。orz..

いや、でも aptitude update して safe-upgrade してから作ったから新しいよな−、と思ったものの、、apt-line がウンコだったので以下に書き換えた。
deb-src http://mirrors.kernel.org/ubuntu hardy main restricted
deb http://mirrors.kernel.org/ubuntu hardy-updates main restricted
deb-src http://mirrors.kernel.org/ubuntu hardy-updates main restricted
deb http://mirrors.kernel.org/ubuntu/ hardy multiverse universe main restricted
deb http://mirrors.kernel.org/ubuntu hardy-security main restricted
deb-src http://mirrors.kernel.org/ubuntu hardy-security main restricted

改めて safe-upgrade して、鍵を再作成&鍵追加しなおして問題なくログインできましたとさ。

ssh 周りで嵌るのはひさしぶりだったなー。

経験上、「ログをみる」とだいたいのことはわかることが多い。
あとは Google 先生でさらに絞ることができる。
残りはマニアックなものか属人性によるものか、ニッチなものか、かなぁ。


おまけ
・かなーり前つかってたところ
linode
前は User Mode Linux だったけど、Xen になってるのな!使い続けてたひとはどう移行したんだろ?
・今つかってるとこ
vpslink
・使い始めたとこ
provps

探し方が悪いのか、国内で同じくらいのがないんだよなぁ。。うーん。やや割高&初期費用とられたりするし。。

2009年8月6日木曜日

tmux

tmux がよさそうなので使うことにしたよ。

tmux
・BSD ライセンス
OpenBSD のベースに取り込まれた (tmux 作者は OpenBSD の中の人にもなったとか.)
compat 以下、strlなんたら.c とか strtonum.c があるので OpenBSD 由来のコードつかってるのがみてとれる。

参考にしたところ:
時代はGNU screenからtmuxへ

tmux 入れてみた

インストール
- Mac OS X (MacPorts)
$ sudo port -v tmux

- FreeBSD (portupgrade)
$ sudo portinstall misc/tmux

- RPM
http://rpmfind.net/linux/rpm2html/search.php?query=tmux&submit=Search+...
DAG Packages というのであるけど、やや古い

- 野良make
http://downloads.sourceforge.net/tmux/tmux-0.9.tar.gz
↑こっからとってくる
$ tar zxf tmux-0.9.tar.gz
$ cd tmux-0.9
$ ./configure
$ make
$ sudo make install
(たとえば $HOME 以下に入れたかったら sudo make install PREFIX=$HOME のようにすれば ok )

でも、ソースを落としてきて入れるなら、HEAD のがいいんじゃないかなと思う。
バージョン0.9、とある ちょいふるい GNU/Linux だとこんなコンパイルエラーがでたりした。
cc -DBUILD="\"0.9\"" -D_GNU_SOURCE -D_POSIX_SOURCE -I. -I- -c -o compat/strtonum.o compat/strtonum.c
compat/strtonum.c: In function `strtonum':
compat/strtonum.c:56: error: `LLONG_MIN' undeclared (first use in this function)
compat/strtonum.c:56: error: (Each undeclared identifier is reported only once
compat/strtonum.c:56: error: for each function it appears in.)
compat/strtonum.c:58: error: `LLONG_MAX' undeclared (first use in this function)
make: *** [compat/strtonum.o] Error 1

てきとーに LONG_LONG_ほげ に書き換えたら通ったけどねん。

んで、cvs でのソース取得方法は以下
$ cvs -d:pserver:anonymous@tmux.cvs.sourceforge.net:/cvsroot/tmux login
(Enter おす)
$ cvs -z3 -d:pserver:anonymous@tmux.cvs.sourceforge.net:/cvsroot/tmux co -P tmux

入れたあとの設定
よくわからないのでいまのとここれだけ、、。
set-window-option -g utf8 on
set-window-option -g mode-keys vi
set-window-option -g automatic-rename off

set-option -g status-bg blue
set-option -g status-fg yellow

set-option -g prefix C-t
unbind-key C-b
bind-key C-t send-prefix
C-b は screen の時に使ってた C-t に変えた。? でヘルプがみられるので、ちょこちょこみて使ってればそのうち覚えるでしょう。

2009年8月3日月曜日

デジもの処分

使わなくなった MacBook Pro, iPod, docomo の携帯電話 SH-04A を処分した。
定期的に"もの"は処分するのがよい。

3年経つのは早いね。