だいこんの日々2

軸足をtwitterとfacebookに移しつつも、技術的な話はここに書いていきます。

AMD64でmake-jpkgがうまく動いてくれない

J2SE Development Kit 5.0 Update 9が出たので、EM64TなDebian GNU/Linux(Etch)上でパッケージ化。と思ったのだができない!?

今まで通りJDKをダウンロードしてきて、

$ fakeroot make-jpkg jdk-1_5_0_09-linux-amd64.bin

とやったのだが、

Creating temporary directory: /tmp/make-jpkg.JQgOac5279
Loading plugins: blackdown-j2re.sh blackdown-j2sdk.sh common.sh ibm-j2re.sh ibm-j2sdk.sh j2re.sh j2sdk-doc.sh j2sdk.sh j2se.sh sun-j2re.sh sun-j2sdk-doc.sh sun-j2sdk.sh

Detected Debian build architecture: N/A
Detected Debian GNU type: N/A

No matching plugin was found.
Removing temporary directory: done

となってしまう。

原因追及をしていくと、どうやらうまくビルド環境の情報が取れていないようだ。

$ dpkg-architecture
DEB_BUILD_ARCH=
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=
DEB_BUILD_GNU_CPU=
DEB_BUILD_GNU_SYSTEM=
DEB_BUILD_GNU_TYPE=
DEB_HOST_ARCH=
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=
DEB_HOST_GNU_CPU=
DEB_HOST_GNU_SYSTEM=
DEB_HOST_GNU_TYPE=

となる。ちなみにrootでやると

# dpkg-architecture
DEB_BUILD_ARCH=amd64
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=x86_64-linux-gnu
DEB_HOST_ARCH=amd64
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=x86_64-linux-gnu

取れたりする。

rootでmake-jpkgを実行すると、fakerootでやれと怒られる。環境変数を設定してmake-jpkgを実行すると、ある程度までは進むのだけれど、dpkg-parsechangelogでこける。どうしろと?

似た状況を検索すると、こんな情報が。なるほど。今回の件は、ldapでアカウントを統合したことが関係していると見た。perlがうまく権限を取れないのだろう。

とりあえず、dpkg/ldap/perl関連を古いバージョンに戻したり、別のカーネルで起動したりしてみたけれど進展無し。debootstrapでAMD64なEtch環境を構築して、make-jpkgするとすんなり通った。

根本的な解決にはなっていないが、まぁ良しとしよう。そのうちパッケージが更新されて、いつの間にか問題が無くなっていることを期待(笑)