諸事情1から 手持ちのWindows Vistaのマシンを再インストールしたんですが、 その際にCygwinにVimをコンパイルして入れようとしたら 色々問題がありました。
Luaを直接インストール
以前はLuaはCygwinのものを使っていました。
今回も(最初のsetup時に忘れたので)apt-cyg で取ってきてインストールしたんですが、 特にLuaをテストしないままVimをconfigureしようとしたらLuaのバージョン チェックをしている表示のあたりで止まって進まない。
試しにLuaを起動してみると別窓が出て
714 [main] lua 2424 C:\cygwin\bin\lua.exe: *** fatal error = MapViewOfFileEx 'shared.5'(0x70), Win32 error 6. Terminating.
とかいうのが。元の窓も固まってしまってニッチもさっちも行かない状態。
lua --version
とかしてversionを見ようとしても同じ。
実際、もう一度vimでconfigureしてみると同じように上のメッセージの窓が出てきて 止まっていました。(この窓は暫くすると消えるのでちょうど見てなかったみたい。)
暫く試していると、今度は
3 [sig] -bash 4300 get_proc_lock: Couldn't qcquire sync_proc_subproc for(5.1), last 7, Win32 error 0
102 [sig] -bash 4300 proc_subproc: couldn't get proc lock, what 5, val 1
なんていうエラーも。どっちがどういうタイミングで出てくるかもよく分からず。。。 (上のエラーを放っておくともとのターミナルの方に出てくる?)
ちょっと調べても良くわからないので、試しにLuaを直接インストールしてみることに。
$ mkdir -p && cd ~/tmp
$ curl -R -O http://www.lua.org/ftp/lua-5.2.2.tar.gz
$ tar xzf lua-5.2.2.tar.gz
$ cd lua-5.2.2
$ make posix # posix is preferable for cygwin
$ make install INSTALL_TOP=~/usr/local/stow/lua-5.2.2
$ cd $USER/usr/local/stow
$ stow lua-5.2.2
と言った感じでluaの最新版を取ってきて、 stowを使ってインストール。
試しにlua
コマンドを打ってみると今度は大丈夫。
これでvimのconfigureも通る様になりました。
追記: 2013/11/10
試しにWindows 7にCygwinを1から入れなおしてみましたが、Cygwin付属のLuaを使っても 大丈夫でした。 Vistaの方では、何度か入れなおしたり試していたら、 Lua以外でも同じようなクラッシュみたいのが起っています。
configureするときにも(どのパッケージでも)
`checking whether we are cross compiling...`
の所で止まったり(一瞬窓が出て消えてるので上みたいなfatalエラーが出てるのかも)、 何回か試すと通ったり。
なので、Vistaの問題か、はたまたVaio自体の問題の様です。。。
質が悪いのはこの辺りでこけるとプロセスがゾンビ化してcygwinの中からkill -kill
も効かないし、タスクマネージャーに沢山出てくるsh.exe
、bash.exe
も
殺せなくなって同仕様もなくなります。
ホントに質が悪いのはこれらが消せないためにWindowsのシャットダウンすらできなくなるため
ボタンを押して強制終了させないといけないことに。。。
以前は問題なく動いてたので、何かパッケージが依存してるのだと
Devel/Libsを一通りインストールすると消えました。
Luaに関しても、一度apt-cyg remove
してinstall
したら
cygwinデフォルトのものでも動く様になりました。
ただ全部入れると6GBくらいになります。。。
何らかのパッケージが依存してるのは確かなんですが、良くわからない。。。
Windows 7との差も良くわからない。
(共に32bitなので違いは無いと思ってたんですが同じ様にインストールしても
片方では問題ないものが片方ではパッケージが無い、と後で怒られたりするので、
実は依存性があるのかも。)
と、一度OKかと思われたのですが、makeとかで止まる所があって、 ごちゃごちゃパッケージを入れたりしてたらまたluaも駄目になりました。 (もうVista使っては駄目?いっその事Ubuntuマシンにしてしまおうかと思い始めました。。。)
追記ここまで
一部のヘッダーファイルを改変
追記: 2013/11/10
こちらもWindows 7だと起こらない?。
追記ここまで
今度はmakeしていたら
In file included from /usr/lib/../include/w32api/minwindef.h:146:0,
from /usr/lib/../include/w32api/windef.h:8,
from /usr/lib/../include/w32api/windows.h:69,
from mbyte.c:86:
/usr/lib/../include/w32api/winnt.h:4951:15: error: two or more data types in declaration specifiers
/usr/lib/../include/w32api/winnt.h:5090:13: error: two or more data types in declaration specifiers
Makefile:2658: recipe for target 'objects/mbyte.o' failed
make: *** [objects/mbyte.o] Error 1
こんな感じのエラー。どうも何かがかち合ってる様子。
vim_dev
の所で報告されてるのを見つけたので、
これに従って
/usr/include/w32api/winnt.h
の中の4951行目と5090行目をそれぞれ
1 2 3 4 5 6 7 |
|
と、Statusを小文字にして/usr/include/X11/Xlib.h
の94行目にある
#define Status int
との競合を避けます。差し当たりこれで直接起こるような問題は無いと思います。
これでmakeしてみると上手くいきました。
今のところ
これで一旦上手くインストールできて、Vimも上手く動いてたんですが、 色々試そうと思ってデフォルトのLuaを起動させてみたり 色々やっていたら新しくインストールしたLuaまで同じfatalエラーを吐くようになって 従ってVimもそれに依存してるために同じエラーを吐くように。。。
ターミナル自体を再起動させたら一度は治ったのですが、 そのうちターミナルを再起動させても治らない。
psしてみたりタスクマネージャーを見てみるとbash
が沢山生き残ってて
おかしくなってるようで、Windows自体を再起動させてみようとしたら
今度はWindows自体も再起動せず。。。
(強制的にスイッチオンオフで回復しましたが、Cygwinが悪いのか
他の何かが暴走してるのかすらよく分からず。。。)
再起動後はまたluaやvimは使える様になってました。
/usr/bin/lua
を起動させてしまってそれがずっと消えない状態?で影響を及ぼしているのかも。
とりあえあず
$ apt-cyg remove lua
で原因のluaはアンインストールしておきます。
多分、この辺りは自分の端末のせいな所が大きいと思います。 なので、特にLuaについては普通は問題ないのかもしれません。
何にしろ、この使ってる端末(Vaio)はもうダメかな、と言う感じ。。。
VAIO Duoとか欲しい。。。
単に古くて壊れかけただけ。。。 ↩