rcmdnk's blog
Last update

Vimテクニックバイブル ~作業効率をカイゼンする150の技

諸事情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.exebash.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
4951c4951
< DWORD64 Status;
> DWORD64 status;
---
5090c5090
< DWORD Status;
> DWORD status;

と、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とか欲しい。。。

Sponsored Links
  1. 単に古くて壊れかけただけ。。。

Sponsored Links

« Mavericksでpythonの環境を作り直し: Homebrew環境もリセット Windows Vista再インストールの記録 on Vaio Type Z »

}