Package Manager for Interix †
Interix用のパッケージ集(自動ビルドシステム)です。
収録パッケージ †
※所要時間はAthlon 64 X2 3800+でビルドとインストールにかかった時間です(ソースのダウンロード時間は含んでいません)。機種によって大きく変動しますが、参考値として提示しています。
パッケージ | バージョン | 所要時間 | 備考 |
autoconf | 2.61 | 0:00:24 | |
automake | 1.1 | 0:00:23 | |
bash | 3.2 | 0:02:47 | |
bison | 2.3 | 0:01:04 | |
bzip2 | 1.0.4 | 0:00:15 | |
cvs | 1.11.22 | 0:01:38 | |
distorm | 1.6.20 | 0:00:07 | x64 逆アセンブラ |
flex | 2.5.4a | 0:00:08 | |
gettext | 0.16.1 | 0:08:59 | |
ginstall | 4.1 | 0:02:18 | GNU fileutilsより |
gmake | 3.81 | 0:00:57 | GNU make |
gtar | 1.16.1 | 0:02:47 | GNU tar |
i386-elf-binutils | 2.17 | 0:07:13 | ELF クロスコンパイラ |
i386-elf-gcc | 4.1.2 | 0:16:23 |
libiconv | 1.11 | 0:01:33 | |
libtool | 1.5.22 | 0:01:06 | |
m4 | 1.4.8 | 0:00:58 | |
mingw-binutils | 2.17 | 0:07:01 | Windows クロスコンパイラ |
mingw-gcc | 4.1.2 | 0:22:40 |
mingw-runtime | 3.9 | 0:00:13 |
mingw-w32api | 3.6 | 0:00:14 |
mkisofs | 2.01 | 0:03:07 | |
nasm | 0.98.39 | 0:00:28 | |
openssh | 4.5p1 | 0:02:59 | |
openssl | 0.9.7m | 0:04:47 | |
perl | 5.8.8 | 0:08:00 | マイクロソフト提供のものより新しい |
python | 2.5 | 0:06:11 | |
readline | 5.2 | 0:00:48 | |
subversion | 1.4.3 | 0:11:21 | |
texinfo | 4.8a | 0:01:21 | |
wget | 1.10.2 | 0:00:44 | |
x86_64-elf-binutils | 2.17 | 0:07:14 | x64 クロスコンパイラ |
x86_64-elf-gcc | 4.1.2 | 0:16:49 |
yasm | 0.6.0 | 0:01:03 | x64 アセンブラ |
zlib | 1.2.3 | 0:00:10 | |
zsh | 4.2.6 | 0:02:40 | |
計 | | 2:26:50 | |
開発動機 †
- マイクロソフト提供のツールだけではソースのコンパイルにも不自由したため。
- 各自必要なものをソースからコンパイルして使うことが想定されているようですが、そのコンパイルすらままならない状態だと感じました。
- Interop Systemsのtool warehouseが登録制に移行してしまったため。
- NetBSDのpkgsrcがWindows VistaのSUAではうまく動かなかったため。
- ビルド中にkshでMemory faultが発生して止まってしまいます。core.dmpがgdbでは分析できなかったことと、タイミングによって挙動が異なるため、原因は突き止められませんでした。kshが多重に呼び出された際の処理に問題があるように見受けられます。XPのSFUでは便利に使っていたため残念です。
- Interixでは単純なconfigure && makeだけではすんなりコンパイルできないことが多く、修正のノウハウを蓄積するため。
- 最初は必要なものを個人的にmake && make installして使っていましたが、修正にかなり手間が掛かったため、作業を何らかの形で残しておこうと考えました。
- 個別のノウハウなどは追々まとめていく予定です。手っ取り早く知りたい方はスケルトン(後述)をご覧ください。
対応OS †
- Windows XP Professional 32bit (SFU 3.5)
- Windows Vista Ultimate 32bit (SUA)
注意 †
- Windows Server 2003のSUAは動作未確認です。多分動くはずです。
- gccを前提としています。Vista 64bitのSUAにはgccが提供されていないため、32bitのみの対応となっています。
gccを対応させるためには、binutilsでPE32+をサポートする所から始めないといけないため、かなり難しいと思われます。binutils-2.18でPE32+がサポートされました。
- 64bitでのコンパイルのノウハウ等は別途調査する予定です。
ダウンロード †
pmgr-interix-0.1-20070313.tar.gz (94.6KB) ⇒ 関連日記
- 追加パッケージ
- &ref(): File not found: "gmp-20080726.tar.gz" at page "pmgr";: gcc-4.3.1のビルドに必要
- &ref(): File not found: "mpfr-20080726.tar.gz" at page "pmgr";: gcc-4.3.1のビルドに必要
x86_64-mingw32-20080726.tar.gz: Windows x64用のバイナリを出力するクロスコンパイラ: binutils-2.18, gcc-4.3.1 ⇒ 関連日記
- &ref(): File not found: "libxml2-2.6.32_20080728.tar.gz" at page "pmgr";: PHPのビルドに必要
- &ref(): File not found: "php-5.2.6_20080728.tar.gz" at page "pmgr";: PHP ⇒ 関連日記
備考 †
- 自動でソースをダウンロードしてビルドするMakefileやパッチだけを収録しています。そのため配布サイズは非常にコンパクトです。
- この形態を「スケルトン」と呼びます。
- FreeBSDのportsやNetBSDのpkgsrcに似ています。
- 容量や帯域の関係上、コンパイル済みのバイナリパッケージは配布していません。
- 好評であればSourceForge等での提供も検討します。
- パッケージ管理スクリプトなど独自に書き起こした部分はパブリックドメインとします。
使用手順 †
ソースを自動的にダウンロードするため、インターネット接続を前提としています。
% gunzip -c pmgr-interix-0.1-20070313.tar.gz | tar xvf -
% setenv PATH "/opt/pmgr/bin:$PATH"
% cd pmgr-interix/base
% make install
$ gunzip -c pmgr-interix-0.1-20070313.tar.gz | tar xvf -
$ export PATH="/opt/pmgr/bin:$PATH"
$ cd pmgr-interix/base
$ make install
この後はインストールしたいソフトを選んで入れます。pmgr-interix/build/の中からディレクトリを選んでcdして、make installとしてください。buildディレクトリでmake installとすると、すべてのパッケージをインストールするため大変な時間が掛かります(Athlon 64 X2 3800+で約2時間半)。
トラブルシューティング †
- gccがコアダンプします。
- DEPが有効になったマシンのWindows XPでは、SFUのgccが引っ掛かってしまいます。boot.iniを書き換えてDEPを無効にする必要があります。操作を間違えるとWindowsが起動しなくなる危険がある上、セキュリティも弱くなってしまうため、自己責任でお願いします。そのため手順の詳細は省略させていただきます。
- make installでPermission deniedになります。
- 管理者でmake installを実行してください。
- suが使えません。
- パスワードを掛けていないとsuが使えないようです。シェルのショートカットを右クリックして、別のユーザーで実行してください。
- いちいち管理者になるのが面倒です。
- configureがとても遅いです。
- ウィルス対策ソフトを有効にしていると遅くなってしまうことがあります。ウィルス対策ソフトを停止すれば高速化しますが、セキュリティ的な危険性があるため推奨しません。
- makeが止まって動かなくなります。
- エラーや[Ctrl]+[C]で中断したときなど、kshのプロセスがゾンビになって残ってしまうことがあります。これを繰り返しているとmakeが進まなくなることがあります。このときタスクマネージャに大量に残っているはずですが、強制終了しても解決しないことが多いです。こうなると再起動するしかなくなります。
コメント †