[Edit][Create New]
[ IndexPage / インストール / GnuPG ]

GnuPG

ちょっと仕事の都合で必要になったので。

GnuPG-1.2.2を、FreeBSD-2.2.1に入れる。バージョン番号がシンメトリーだな。

./configure && makeしたら、make中にいきなりこける。

 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -g -O2 -Wall -c 

 _mpih-lshift.s 

 _mpih-lshift.s: Assembler messages: 

 _mpih-lshift.s:127: Error: operands given don't match any known 386 

 instruction 

 _mpih-lshift.s:137: Error: operands given don't match any known 386 

 instruction 

 _mpih-lshift.s:141: Error: operands given don't match any known 386 

 instruction 

時間もないので、メッセージそのままを検索に掛けたら、asmが問題だと書いてある ページに到達。

 ./configure --disable-asm 

とすると、その部分のコンパイルは通ったが、さらに先でCore Dumpしてしまう。

 Making all in mpi

 Segmentation fault - core dumped

 *** Error code 1

 Stop.

 *** Error code 1

 Stop.

そう言えばGNU makeを使えというWarningがあったので、gmakeでやり直し。

 mpih-mul.c:94: Undefined symbol `_mpihelp_mul_1' referenced from text segment

 mpih-mul.c:106: Undefined symbol `_mpihelp_add_n' referenced from text segment

MPI関連のエラーが頻発。Core Dumpしたところと同じなので、 一旦gmake cleanしてからやりなおし。今度は通った。やっぱり横着はいかんね。

次。make check。じゃなくてgmake check。

50のテスト項目のうち2つfailしたが、多分大丈夫だろうとタカを括ってmake install

ってまたやってしまった。makeがcore dumped。gmake installをやりなおし。今度は ちゃんと通った。

次は鍵の作成。

 gpg --gen-key

とするだけだが、ここでハマる。

 十分な長さの乱数が得られません。OSがもっと乱雑さを収集

 できるよう、何かしてください! (あと142バイトいります)

と言われて止まってしまうのだ。要するにハードウェア割り込みを沢山かければ 良いのだろうということで、NFSで馬鹿でかいファイル(/usrのダンプ)をコピーし ながらそのファイルに複雑なgrepをかけ、しかもコンソールの(ローカルのキーボード だとキャラクタ送るだけなんだよな、良く考えると)キーボードをがちゃがちゃやって やっと通った。結構贅沢な乱数発生方法だな。とりあえず鍵もできた。

次。GnuPG.pm。0.09だっけ。

 perl Makefile.PL && make && make test

make test中にこける。

 Bareword "POSIX::_SC_OPEN_MAX"  not allowed while "strict subs" in use

 at blib/lib/GnuPG.pm line 267.

なんじゃそりゃ。とりあえず、ソースコードを見て該当部分をいきなり 書き換える。

 my $max_fd = POSIX::sysconf( POSIX::_SC_OPEN_MAX ) || 256;

を、

 my $max_fd = POSIX::sysconf("POSIX::_SC_OPEN_MAX") || 256;

に。するといきなり動いた。やっぱPerlはこういうところが単純でいいな。

で、鍵のインポートができない・・・。

 #!/usr/bin/perl

 use GnuPG;

 $pg = new GnuPG;

 $pg->import_keys(keys => "key.pub");

というプログラムを動かしてみたが、

 protocol error expected IMPORT_RES got IMPORT_OK

というエラーがでる。これ、マニュアル見るとIMPORT_OKは既にインポート済みの 鍵を読み込もうとしたときに出るらしい。確かに自分の公開鍵を読み込ませようと してた。馬鹿ですね。でもそんな物までcroakしなくてもいいのに……。

っていうか既にインストールの項に書く事じゃなくなってきてる気がする。