MSYS2使いはじめました
東海道らぐ 2016年7月@名古屋
H.Hiro (@h_hiro_)
自己紹介
H.Hiro
 札幌出身
 名古屋2年目になりました
 某所で研究員やってます
(情報系)
 最近仕事ではC++ばかり
書いています
Twitter: @h_hiro_
github: maraigue
名古屋で衝撃を受けたこと
MSYS2って何だ(1/4)
簡単に言えば
 Windows上に、Unix系OSのような
コマンドライン環境を作ってくれます
(ビルド環境も簡単に作れます)
 パッケージ管理ツール「pacman」
も付いて来るので、ソフトの導入も容易
MSYS2って何だ(2/4)
MSYS2って何だ(3/4)
 これまでにも、MinGW(Windowsにおける
gccベースのビルド環境)や、MSYS(MinGWを
用いたコマンドライン環境)というものが
あったのだが
 MSYS2はそれらを元にしつつも、さらに洗練された
ものとして作られている(という印象)
 パッケージ管理ツール「pacman」
(Arch Linuxなどで使われているもの)が
標準搭載されており、ソフトの追加も容易
MSYS2って何だ(4/4)
https://sourceforge.net/projects/msys2/
によると、
 MSYSを独立に書き直したもの
 cygwinのPOSIX互換レイヤと
MinGW-w64によって
ネイティブのWindowsソフトとの
相互運用性を実現
MSYS2 is an independent rewrite of MSYS, based on modern
Cygwin (POSIX compatibility layer) and MinGW-w64 with the
aim of better interoperability with native Windows software.
デモ
 MSYS2付属のシェルから利用する
 コマンドプロンプトから利用する
 pacmanを使う
(ネットワークの調子が悪いとできないかも)
 ソースコードからビルドしてみる
MSYS2を使っての所感(1/4)
やっぱり強みは、pacmanが利用できることだと思った
 Windows環境でソースコードからビルドする、って
だけであれば、これまでのMinGWでも別によかった
 ただシェル環境としてみたとき、これまで私は
RubyとMinGWがセットになったツール
http://rubyinstaller.org/
GitとMSYSがセットになったツール
https://git-for-windows.github.io/
などを使っていたのだが、それぞれにコマンドライン
ツールが入るのが煩わしく感じられてきた
MSYS2を使っての所感(1/4)
↓一時本当にこんなことになっていた
C:¥>which –a ls
C:¥●▲■¥ls.exe
C:¥●▲■●▲■¥ls.exe
C:¥●●●▲▲▲■■■¥ls.exe
MSYS2を使っての所感(2/4)
 pacmanが便利すぎて、以下のものはWindows向け
インストーラでインストールしたものを削除し
pacmanでインストールしたものに一本化した
 Ruby, Python, Git, ImageMagick, ffmpeg …
 ただ、MSYS2版Rubyに変えた際、それまで使って
いたスクリプトが動かないことがあって少し焦った
 マルチバイト文字を含むファイル名の扱いが
違うっぽい(単なるmingw版とも違う挙動)
http://qiita.com/h_hiro_/items/47c7792d20c5d8caf7a0
MSYS2を使っての所感(3/4)
pacmanのオプションの名称は、APTに慣れた私と
しては少し不思議だった
 新規にパッケージをインストールしたいときの
オプションは、“install”とかではなく“sync” (-S)
例えば「pacman -S git」みたいな具合
 パッケージを検索したいときは -S + “search” (-s)
コマンドとしては「pacman -Ss 検索したい名前」
 インストール済みパッケージのアップグレードは
-S + “sysupgrade” (-u)
 “-S”がすごく大事にされてる!
MSYS2を使っての所感(4/4)
 MSYS2には標準でbashがついてくる
 pacmanでzshとかもインストールできる
 でも私は普段はコマンドプロンプト使ってます!
先程デモで見せた通り、パスを通せば
普通に使えます
bashやzshよりも、キーに対する反応が
いいんだもん
補完がしょぼいってのはあるんですけどね…
余談
 Windowsでも、bashが提供されたり
http://pc.watch.impress.co.jp/docs/news/752087.html
パッケージ管理ツールを整備しようという動きはある
 なので、将来的にはMSYS2は使わなくても
よくなるのかもしれない
 でも、MSYS2みたいに頑張っている人がいて
それが一定の支持を得ているからこそ
Microsoftも動いてくれたんじゃないかと思います
おわりに
 MSYS2使ったら何かと便利だった
 パッケージ管理ツールが使えるというのは強い。
環境構築で失敗する、というのが起きにくい
 WindowsでCUIのツールをよく使う方は
ぜひお試しを
 もちろん、Windowsでソースコードからのビルドを
よく行う人も

MSYS2使いはじめました