msys2を使ってみる
仕事でgitを使い始めてしばらくたった。
windowsのハブられっぷりを感じつつもいい感じになじんできた。
SourceTreeやGitExtentionsを併用しているけども、コマンドラインで済むと簡単だなーと感じ始めた。
10数年前にCygwinを使ったときは遅くて投げたけど、最近はどうなんだろう。。。
ということで調べたところmsys2が良さそうだったので導入してみた。
インストール
msys2のページ(MSYS2 installer)からインストーラをダウンロードして実行するだけ。
非常に簡単。
更新
pacman*1 というパッケージマネージャが標準で付属しているが普通に使うと
「forkできません」みたいなメッセージを吐いてコケる。
インストーラをダウンロードしたページに書いてあるが、まず
update-core
のようにしてシステムのパッケージ情報を更新する。
終了したらいったんmsys2を終了させてから再起動する。
再起動したら、
pacman -Su
としてパッケージの更新を行う。
必要なものをインストールする
適当に必要なパッケージをインストールする。
pacman -S zsh winpty tmux mingw-w64-i686-emacs
とかする。それっぽいパッケージを探すときには
pacman -Ss emacs
とすると「mingw-w64-i686-emacs」というパッケージ名であることがわかったりする。
パッケージ追加したら起動時にエラーがでる
zshの最新版を入れると、起動時に forkが~~ unable to remap とエラーがでる。 適当にググったところ、ashを起動してrebaseallすると良いらしい。 msys2のインストールディレクトリ以下 usr\bin\ash.exe を起動して
/usr/bin/rebaseall
と実行する。
msys2のインストールディレクトリ直下に autorebase.bat があるのでそれを実行してもよい。
起動時のシェルをbashからzshに変更する
msys2のインストールディレクトリ直下に msys2_shell.bat とか mingw32_shell.bat とか mingw64_shell.bat があるので、 普段使ってるやつを書き換える。 ラベル:startmintty が定義されているあたりでminttyを起動しているので、引数に渡しているbashをzshに変える。
Git for Windowsの代わりに使ってみる
ファイルの検索、定型的な置換処理等 おおむね良好。 1つきになるのはGit for Windowsに比べて git status が異様に遅いこと。 fscacheではどうにもならないくらい遅い。 msys2でインストールしたgitをアンインストールしてもGit for Windowsのgitは使えるのでそれでごまかそうかな。。。 perlとかいろいろ別途入れなきゃみたいだけども。
msys2のGitは使わないほうが幸せ
MSYS2 + Git for Windows - foohogehoge's blog
*1:個人的にはapt-getよりも好き