Baldanders.info

遅ればせながら OpenPGP 年次鍵の更新と pgpdump のビルド

OpenPGP の年次鍵が3月末に期限が切れていたのに更新してなかった。 ので,更新しました。

最近はめっきり GnuPG を使わなくなって,ルート鍵と運用鍵(年次鍵)を分けて運用する今の方法がちょっとうっとうしくなってきた。 SHA-3 が今年か来年には決まるはずなので,それにあわせて鍵運用も一新しようかなと考えている。

ところで,作成した公開鍵をチェックしようと pgpdump を起動しようと思ったが, Win7 環境には入れてなかった。 しかも昨年夏に 0.27 が出てるのにスルーしてるし(更に github で運用されてるじゃない)。 しょうがない,ソースを落としてビルドするか,と思ったらコンパイル環境もないじゃないか。 ちうわけで, MinGW をインストールするところから始めることになった(いや,今日は別のことする予定だったのに)。

MinGW のインストールについては以前紹介したが, MinGW はアレから更に進化し, mingw-get なるツールを使って更に簡単にインストールできるようになった。

まず mingw-get インストーラのダウンロードページへ行き,最新版をダウンロードする。 今回は mingw-get-inst-20110316.exe をダウンロードした。 ダウンロードしたインストーラを起動するとウィザード画面が表示される。 ここでユーザが決めておくのはインストール先のフォルダのみ(デフォルトでは C:\MinGW にインストールされる)。 途中でインストールするモジュールを選択する画面になる。 インストール可能なモジュールは以下のとおりだ。

  • MinGW Compiler Suite
    • C Compiler (必須)
    • C++ Compiler
    • Fortran Compiler
    • Objective C Compiler
    • Ada Compiler
  • MSYS Basic System
  • MinGW Developer Toolkit (Includes MSYS Basic System)

pgpdump をビルドするには C コンパイラが必要だが, C コンパイラは必須オプションになっているので気にしなくていい。 他の言語についてはお好みのままに。 なお,ビルド環境をフルに揃えるには MinGW Developer Toolkit (msysDTK を含むパッケージ)を選択する必要がある。 ここだけ注意。 あとはインストーラにおまかせでしばらく待っていればインストールが完了する。 超簡単。

インストールが完了したらスタートメニューの MinGW から MinGW Shell を起動してみる。 うまく起動したらインストール成功だ。 なお,インストールしたフォルダ内の bin フォルダを環境変数 PATH に追加しておけば Windows のコマンド・プロンプトからもツールを起動できる。 例えば C:\MinGW にインストールしたのであれば,以下のフォルダを PATH に加える。

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin (MSYS をインストールした場合)

ちなみにドライブレターは MinGW Shell ではそのままディレクトリ名になっている。 例えば C:\MinGW/c/MinGW としてアクセスできる。

インストール時に入れなかった言語は mingw-get コマンドであとから追加することも出来る。

$ mingw-get install fortran

Linux 等に慣れている方はピンとくると思うが, mingw-get は apt-get や yum の代替えとして機能する。 MinGW プロジェクトで管理されているツールであれば, mingw-get で簡単にインストールやアップグレードができるのだ。 超便利!

さてようやくビルド環境が出来たので pgpdump をビルドしてしまおう。 おっとその前に, libz と libbz2 の2つのライブラリをインストールしておかなければならない(なんで標準で入ってないんだろう?)。

$ mingw-get install libz
$ mingw-get install libbz2

pgpdump のページからソース(pgpdump-0.27.tar.gz)をダウンロードするか github から環境を取得する。 そしてお馴染みの呪文でビルドを行う。

$ cd ~/pgpdump-0.27/
$ ./configure
$ make
$ strip pgpdump.exe

ただし,私の環境ではうまくいかなかった。 何故か gcc ではなく cc でコンパイルしようとするんだよね。 これは環境変数 CC に gcc をセットするか,Makefile.in の頭の方に

CC = @CC@

の行を追加してあげればうまくいく。 後者のほうがスマートな気がするが, Linux のお作法はいまいちよく分からないので,どうするかはお好みで。

MinGW でビルドしたものを「pgpdump (patched version)」に置いています。 ご利用の際は自己責任でお願いします。