Windows XP に MSYS2 をインストールした
Windows に MSYS2 をインストールしてみた。ここからダウンロードしてインストーラを実行するも 68% の進捗でインストールが終わらない。何度やってもダメだった。プロセスマネージャを見てみると、bash が動いていて、これを kill するとインストーラが(エラーで)終了する。この bash って古い msys の方が動いているのだろうか?
仕方がないので tar.xz の方をダウンロードして解凍。msys32/
内の autorebase.bat
をダブルクリックしてしばし待つ。msys2_shell.bat
をダブルクリックすると msys シェルが動いた。プロセスマネージャで確認すると、mintty が動いている。
ウインドウのタイトルバーをクリックして設定してやるとターミナルで UTF-8 が使えるので便利だし、ウインドウの大きさも自由に変えることができるので快適。ただ、自ビルドの CUI Vim を使うと端末がうんともすんとも言わなくなってしまう。
とりあえずこの環境で mto.c
をビルドしてみたら Panther と同じエラーが出た。
>cc mto.c
mto.c: In function 'strCdrReplace':
mto.c:74:5: error: 'for' loop initial declarations are only allowed in C99 mode
for (int i = 0; i < elemSize; ++i) {
^
mto.c:74:5: note: use option -std=c99 or -std=gnu99 to compile your code
mto.c: In function 'strCarReplace':
mto.c:92:5: error: 'for' loop initial declarations are only allowed in C99 mode
for (int i = 0; i < elemSize; ++i) {
gcc のバージョンが新しいからかメッセージが親切だわ。
修正してみたけどなんかビルドができない。古い MinGW と何かバッティングでもしているのだろうか?基本環境だけで、開発環境まではインストールされないとか?
パッケージ管理
システムの管理には pacman というものを使うみたいだ。とりあえず下記のコマンドを実行した。
pacman -Suy
pacman -S base-devel
pacman -S msys2-devel
やけに時間がかかったけれど、この状態で mto.c
をビルドしたらちゃんと動くバイナリを作成することができるようになった。GCC は 4.9.2 だ。これで MinGW 古いは削除しちゃっても良さそう。
トップの msys32
ディレクトリ以下には下記のディレクトリが作成されるのだが、上記のコマンドでインストールしたものは、usr/
以下に入る。また、ダウンロードしたアーカイブは msys32/var/cache/pacman/pkg
以下に保存される。
dev
etc
home
mingw32
minge64
opt
tmp
usr
var
ターミナルで確認すると msys2/usr/bin
が /bin
になってるのね。あと python2.7.10 が入っていた。Vim は 7.4.872 という比較的新しいものがあったのでこれをインストールした。
Vim
自作のプラグインを読み込む時に下記のエラーが出るし、日本語も文字化けしてしまうわ……。ダメだわこれ。
Undefined variable: s:save_cpo
Invalid expression: s:save_cpo
No such variable: "s:save_cpo"
No string under cursor
アンインストールするには下記。簡単だね。
pacman -R vim
アンインストールしてから再度インストールした。日本語の文字化けは .vimrc
の set termencoding=cp932
が原因だったの。utf-8
にすれば問題ない。ただ、skk.vim
での入力で、▽や▼が半角扱いになって表示が崩れてしまう。これは skk_marker_white
を @
とかにすることで回避できる。プラグインの方はちょっとわからん。
Git
git が上手く動かないので pacman でインストールした。どうやら、msys2/home/noz/.ssh
を作成するようだわ。
Gems
python3 と ruby をインストール。emacs はどうするか悩み中。
gem install twitter
をすると unf
というライブラリのネイティブビルドでエラーになってしまう。.gem/ruby/2.1.0/extensions/x86-msys/2.1.0/unf_ext-0.0.7.1/mkmf.log
を見ると、gmp
と crypt
が無いみたいだわ。そこで下記を実行してから再度挑戦したらインストールが完了した。jekyll
ではさらに libffi
を要求した。
pacman -S gmp
pacman -S gmp-devel
pacman -S crypt
pacman -S libcrypt
pacman -S libcrypt-devel
pacman -S libffi
pacman -S libffi-devel
一応、msys2 に入れた gem は sinatra
, sqlite3
, twitter
, jekyll
の 4 つ。関連する gem も入ったけど。