【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

インストール方法(日本語訳)

Debian Interix Portインストール方法を日本語訳しました。超訳ですが悪しからずご了承ください。

【追記】インストールレポートはid:n7shi:20091215をご覧ください。

Installing Debian GNU/Interix
=============================
last updated: 2009-06-13  mkoeppe@gmx.de
translated  : 2009-12-14  7shi@live.jp


以下の環境で動作を確認しています。
- SFU 3.5 on Windows 2000 SP4
- SFU 3.5 on Windows XP SP2, SP3
- SUA 5.2 on Windows Server 2003 R2
- SUA 6.0 on Windows Vista SP0, SP1


Debian GNU/Interix 環境構築方法:
-------------------------------------------------------

* この手順は Administrator でログインして行ってください。
  Administrator グループでは不十分です!
  ksh を「管理者として実行」するのも不十分です。
  実際に Administrator としてログインしてください!
  Vista では後述の手順で Administrator アカウントを有効にしてください。

* Administrator かどうか確認してください。
  Interix のシェルで "id -u" を実行して 197108 と表示されるはずです。
 これは Administrator の UID です。
 (「管理者として実行」した場合でも 197108 と表示されます)

* Administrator アカウントの有効化:
  Vista はデフォルトで Administrator アカウントが無効化されています。
  ドメインに参加していれば「コンピュータの管理」で以下を開いて、
  ・システムツール -> ローカルユーザーとグループ
  Administrator アカウントを有効化してパスワードを設定してください。
  ドメインに参加していなければ以下を参照してください。
  http://www.interopsystems.com/community/tm.aspx?m=10345
  
* Windows XP では「簡易ファイルの共有」を使用しないでください。

* SFU 3.5 または SUA utilities をダウンロードしてインストールしてください。
  インストール時のオプションは以下を選択してください。
  - Utilities -> Base Utilities
  - Interix GNU Components -> Interix GNU Utilities (/lib/ld.so.1 が必要)
  - Interix GNU SDK (ar が必要)

  - setuid と case sensitive file system を有効にしてください。
  - Vista では SuToRoot を有効にしてください。
  (既にインストールしていた場合はトラブルシューティングを参照してください)

  UNIX Perl は古い (ver.5.6.1) ためインストールしないでください。
  Debian GNU/Interix には 5.10 が含まれています。
  ActiveState Perl もインストールしないでください。
  どうしても必要な場合は以下から最新版をダウンロードしてください。
  http://www.activestate.com

* SFU 3.5 では以下の更新を適用してください。
  - 913030: http://support.microsoft.com/kb/913030/en-us (rollup package)
  - 942312: http://support.microsoft.com/kb/942312/en-us (ld.so update)
  - 973389: http://support.microsoft.com/kb/973389/en-us (最新のコアファイル)
  ダウンロードをリクエストすると Microsoft からメールが送られてきます。
  更新の詳細については以下を参照してください。
  http://www.debian-interix.net/hotfixes/  

* Server 2003 R2 / SUA 5.2 では以下の更新を適用してください。
  - 945449: http://support.microsoft.com/kb/945449/en-us (コアファイル)
  - 948918: http://support.microsoft.com/kb/948918/en-us (libdl.so)

* 最新の Windows Update を適用してください。
  ただし KB920958(2006-09-26) を適用すると Windows 2000 で
  Interix の速度が低下します。

* 環境構築用ファイルをダウンロードしてください。
  ftp://debian-interix.net/debian-interix/install.zip
  適当なフォルダに展開してください。 例: C:\SFU\tmp\install
  スペースを含むパスではインストールに失敗します。
  このアーカイブに含まれるファイルは以下で確認できます。
  ftp://debian-interix.net/debian-interix/install/

* インストールを中断して最初からやり直す場合は、
  以下のファイルやフォルダを削除するかリネームしてください。
  これらが存在すると先に進めなくなります。
  - /debootstrap/debootstrap.log
  - /usr/local/man/man
  - /var/cache/apt/
  - /var/lib/apt/
  - /var/lib/dpkg/

* 64-bit 環境では標準でインストールされる ar コマンドは 64-bit 用です。
  32-bit のものに置き換えてください。
  例: /bin/ar を /bin/ar.amd64 にリネームして、
      /opt/gcc.4.2/bin/ar を /bin/ar にコピーします。

* Korn Shell を開いて Administrator (uid 197108) かどうか確認してください。
  $ id -u
  197108

* /sbin と /usr/sbin にパスを通してください。
  /etc/profile.lcl に以下の行を追加すると便利です。
    export PATH=/usr/sbin:/sbin:$PATH

* 互換性のないコマンドが使われないか確認してください。
  たとえば /usr/local/bin などに他のパッケージのコマンドがある場合、
  /usr/local/bin などより先に /bin や /usr/bin にパスを通せば
  アンインストールする必要はありません。

* 環境構築用ファイルのフォルダに移動してインストールを開始します。
  $ cd /tmp/install
  $ ksh setup
  パッケージをダウンロード・検証・展開してインストールされます。
  非常に長い時間が掛かることがあるようです。(特に Windows 2000)
  インストールが完了すると以下のように表示されます。
  "Base system installed successfully."
  警告やエラーはログファイルで確認できます。
  /debootstrap/debootstrap.log

* /etc/apt/preferences を以下の内容で作成してください。
    Package: *
    Pin: release a=unreleased35
    Pin-Priority: 800
  これは debian-interix で arch:all パッケージを使用するのに必要です。
  詳細については apt_preferences(5) を参照してください。

* パッケージの整合性を確認してください。
  $ apt-get update
  $ apt-get upgrade -f -V
  (これらのパッケージをアンインストールしないでください。
   ここでパッケージが更新されることはないはずです。
   何か問題があれば debian-interix.net のバグかもしれないので、
   報告をお願いします。)

* パッケージのインストール方法:
  $ apt-get install <package> ...
  例:
  $ apt-get install perl mc less dialog
  パッケージのアンインストール方法:
  $ apt-get remove <package> ...
  curses ベースの dselect を使用することもできます。
  (dselect より新しい aptitude はまだ Interix に移植されていません)

* 現時点で coreutils のパッケージは提供されていません。
  coreutils の cp (-a を使用), install, readlink, tac などが必要なときは
  私 (Martin K&ouml;ppe) がビルドしたバイナリが以下にあります。
  http://debian-interix.net/debian-interix/bootstrap-tools/

* パッケージを作成するには以下が必要です。
  これらは arch-all のものに修正が必要です。
  - dpkg-dev
  - debhelper
  - cdbs
  - debootstrap

  たとえば dpkg-dev は以下のようにインストールします。
  $ apt-get install dpkg-dev/unreleased35
  Debian/Interix 用にインストールされるパッケージを確認する場合、
  以下から手動で dpkg-dev_*_all.deb をダウンロードして
  http://www.debian-interix.net/debian-interix/pool/unreleased35/main/d/dpkg/
  インストールする方法もあります。
  $ dpkg -i dpkg-dev_*_all.deb

  標準の Debian のパッケージが更新されても、手元のバージョンを固定化するには、
  以下のようにします。
  $ dpkg --set-selections <<EOF
  dpkg-dev hold
  debhelper hold
  EOF

  Debian-Interix の arch:all パッケージを更新する必要があっても、
  大抵は標準な Debian のパッケージの方が新しいです。
  しかし新しいパッケージはうまく動かないことが多いため、
  Debian-Interix の方をインストールしてください。
  (常に最新のものに追随するのは時間的に難しいです)

  これらの問題に対処するには以下の内容で /etc/apt/preferences を
  作成してください。
  
    Package: *
    Pin: release a=unreleased35
    Pin-Priority: 800

  こうしておけば自動的に Interix 版のパッケージが選択されます。


トラブルシューティング
---------------
既に SFU 3.5 や SUA utilities をインストールしていて、setuid や
case sensitivity や su-to-root を有効にしていなかった場合、
レジストリを書き換えて再起動してください。

case sensitivity:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
0 for case sensitive; 1 for insensitive

setuid:
HKLM\SOFTWARE\Microsoft\Services for UNIX\EnableSetuidBinaries
or
HKLM\SOFTWARE\Microsoft\SUA\EnableSetuidBinaries
1 to turn on; 0 (zero) to turn off

su-to-root:
HKLM\SOFTWARE\Microsoft\SUA\EnableSuToRoot
1 to turn on; 0 (zero) to turn off


Interix で root に相当する権限のあるユーザーの UID:
  66834 =  0x10512  SYSTEM
 197108 =  0x301F4  local Administrator
1049076 = 0x1001F4  domain Administrator



"ksh setup" の後、インストールに成功したかどうか確認する方法。

- "dpkg -l" としてすべてのパッケージの状態が "ii" かどうか。

- "apt-get check" として以下の 2 行が出力されるかどうか。
     Reading package lists... Done
     Building dependency tree... Done

- /etc/apt/sources.list に少なくとも以下の 3 行が含まれているかどうか。
     deb http://debian-interix.net/debian-interix unstable35 main
     deb http://debian-interix.net/debian-interix unreleased35 main
     deb http://ftp.de.debian.org/debian dists/unstable/main/binary-i386/
  最後の行が適切な Debian のミラーかどうか。

- /debootstrap/debootstrap.log に以下のエラーが含まれていないかどうか。
  "dpkg: error processing xyz"


既知の問題と制限
----------------------------

- "apt-get update" でパッケージリストを更新するときに
  GPGで署名が無効だというエラーが発生します。
  debian-interix.net で提供されるパッケージは署名されていないため
  無視してください。

- パッケージをインストールする際に以下が表示されることがあります。
  "debconf: falling back to frontend"
  dialog パッケージをインストールすれば解消します。
  $ apt-get install dialog

- もし何らかの理由でパッケージのセットアップに失敗する場合、
  以下にあるパッケージ化されていない GNU coreutils を試してみてください。
  http://debian-interix.net/debian-interix/bootstrap-tools/coreutils/bin.tgz