写真集

Camera:Panasonic LUMIX DMC-LX3
Vine Linux と Ubuntu の設定方法など

Subsystem for UNIX-based Applications にて bash4.1.9 を make してみました

2011-01-26 16:44:57 | Interix6.1

Windows 7 の サブシステム UNIX ベース アプリケーション用サブシステム (SUA) に bash 4.1 をインストールします。

  1. bash-4.1.tar.gz をダウンロードします。
  2. patchを当てます。
    patch -p0 < ../bash41-001
    patch -p0 < ../bash41-002
    patch -p0 < ../bash41-003
    patch -p0 < ../bash41-004
    patch -p0 < ../bash41-005
    patch -p0 < ../bash41-006
    patch -p0 < ../bash41-007
    patch -p0 < ../bash41-008
    patch -p0 < ../bash41-009
  3. $ ./configure
  4. $ make
    下記のエラーがでました。
    -----------------------------------------------------------
    making ./lib/intl/libintl.a in ./lib/intl
    gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale\"  -DLIBDIR=\"/usr/local/libdata\" -DIN_LIBINTL  -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"/usr/local/lib\" -DNO_XMALLOC  -Dset_relocation_prefix=libintl_set_relocation_prefix  -Drelocate=libintl_relocate  -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -DSHELL -I. -I. -I/dev/fs/C/Users/username/unix/bash-4.1 -I../..  -g -O2  loadmsgcat.c
    loadmsgcat.c: In function `get_sysdep_segment_value':
    loadmsgcat.c:727: error: `uintmax_t' undeclared (first use in this function)
    loadmsgcat.c:727: error: (Each undeclared identifier is reported only once
    loadmsgcat.c:727: error: for each function it appears in.)
    *** Error code 1
    Stop in /dev/fs/C/Users/username/unix/bash-4.1/lib/intl.
    *** Error code 1
    Stop in /dev/fs/C/Users/username/unix/bash-4.1 (line 628 of makefile).
    -----------------------------------------------------------
    uintmax_t が未定義だと stdint.h は /usr/include に存在するのになぜ?
    loadmsgcat.c を stdint.h が include されるように変更します。ifをコメントアウトしました。
    ついでに inttypes.h も無条件でインクルードされるように変更します。
    -----------------------------------------------------------
    82 //#if defined HAVE_STDINT_H_WITH_UINTMAX || defined _LIBC
    83 # include
    84 //#endif
    85 //#if defined HAVE_INTTYPES_H || defined _LIBC
    86 # include
    87 //#endif
    -----------------------------------------------------------
    無事に make 終了しました。
    -----------------------------------------------------------
    ls -l bash
    -rwxr-xr-x  1 username None  2143063 Jan 26 14:07 bash
    size bash
       text    data     bss     dec     hex filename
     663819   19145   18308  701272   ab358 bash
    -----------------------------------------------------------
  5. $ make install
  6. 無事にインストールされたました。
    $ echo $BASH_VERSION
    4.1.9(1)-release
    $ bash
    bash-4.1$

$ uname -a
Interix pcname 6.1 10.0.7063.0 x86 Intel_x86_Family15_Model4_Stepping10

Microsoft Subsystem for UNIX-based Applications をインストールする方法
http://wikis.sun.com/pages/viewpage.action?pageId=102400231

Debian Interix Port
http://www.debian-interix.net/

参考
http://girlab2010.wordpress.com/category/interix/
http://air.s.kanazawa-u.ac.jp/~ohara/interix.html
http://www.hakusan.tsg.ne.jp/tjkawa/lib/index.jsp
http://d.hatena.ne.jp/piropirostar/