時間を空けると「このソフト何のために使ってるんだっけ?」みたいなものが増えるため、備忘録としていろいろ書いておく。
MSYS2
そもそもMSYS2が何者なのかはホームページによると、
MSYS2は、Windowsネイティブ・ソフトウェアをビルド、インストール、実行するための使いやすい環境を提供するツールとライブラリのコレクションです。
とのこと。コンパイラmingw-w64の主な入手手段である。ただ、MSYS2インストール時に得られる開発環境としてのMSYS2・MinGW32・MinGW64と、コンパイラのmingw-w64は別の存在なので注意が必要。
パッケージマネージャとしてはpacmanが用意されていて、以下のようなコマンドをよく使う。
以下pacmanコマンドのオプションについて、使用頻度の高い順に並べてみた。
ヘルプのやり方だけ覚えておけば、迷った時に確認できるだろう。
pacman -h
でヘルプ。pacman -S -h
で-Sオプションのヘルプ。pacman -Su
でパッケージのアップデート(事前にupdate-coreが必要)。pacman -Ss [pattern]
でパッケージを検索。pacman -Sl | grep [pattern]
でもだいたい分かる。pacman -S [package]
でインストール。pacman -Rs [package]
でアンインストール。pacman -Sg
でパッケージグループの一覧を表示。pacman -Qqe
でインストール済みのパッケージ一覧を表示。pacman -Si [package]
で詳しい情報を表示。pacman -Sc
で使っていないキャッシュを削除。
pythonの環境をmingw-w64で構築しようと試みたのだが、matplotlibを使うと「importerror: dll load failed while importing ft2font: 指定されたプロシージャが見つかりません。」というエラーが出る。解決も簡単ではなさそうなのでMSYS2でのpython環境構築は諦めた。ネット上のpython情報はanacondaやpipを用いたものがほとんどだし賢明な判断だと思う。ただpython自体をMinGWから削除することはできなそうなので、別の方法でpythonをインストールした際には競合に気を付ける必要がある。
mingw-w64
mingw-w64は何者なのかというと以下の通り。
Mingw-w64はオリジナルのmingw.orgプロジェクトを発展させたもので、Windowsシステム上でGCCコンパイラをサポートするために作られた。
要するにコンパイラである。
自分はC/C++のコンパイルでgccを、デバッグでgdbを使うためにmingw-w64を利用している。mekeもこちらに入れているがまだ活用できていない。
参考
「このソフトって何だ?」を考えるとき、まずはそのソフトのホームページを見るのが一番わかりやすいなと今回思った。
各ソフトの違いを考える上で以下のサイトは非常に役に立った。
・Cygwin, MSYS, MSYS2, MinGW, mingw-w64, WSL, WSL2 の違い.md (github.com)