Windowsで至高のターミナル生活を求めて(MSYS2編)

当社では普段の開発環境にLinuxを用いており主にWindows PCからSSHで接続して作業をすることが多いですが、vagrantやdocker、npmなどの普及によりローカルでの作業も増えてきました。WindowsにはTeraTermやPuttyなどの有名なSSHクライアントがありますが、ローカルで作業するニーズには合いません。
そこで今回はWindowsでUnixライクな環境を使えるMSYS2をご紹介したいと思います。
MSYS2とは
At its core, it 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. It provides a bash shell, Autotools, revision control systems and the like for building native Windows applications using MinGW-w64 toolchains.
It features a package management system, Pacman, to provide easy installation of packages. It brings many powerful features such as dependency resolution and simple complete system upgrades, as well as straight-forward package building.MSYS2 installer
コアは、最新のCygwin(POSIX互換性レイヤー)およびMinGW-w64に基づいたMSYSの独立した書き換えであり、ネイティブWindowsソフトウェアとの相互運用性を向上させることを目的としています。MinGW-w64ツールチェーンを使用してネイティブWindowsアプリケーションを構築するためのbashシェル、Autotools、リビジョン管理システムなどを提供します。
パッケージの簡単なインストールを提供するパッケージ管理システム、Pacmanを備えています。依存関係の解決や簡単な完全なシステムアップグレードなどの多くの強力な機能、および簡単なパッケージビルドを提供します。google翻訳結果
Windows上で動くUnixライクな環境、コマンドラインインターフェース(CLI)、及びソフトウェアリポジトリを提供してくれます。
デフォルトではシェル(bash)でターミナルウィンドウ(Mintty)を開く設定になっています。
MSYS2のインストール
MSYS2のホームページからダウンロード可能ですが、インストーラー形式のファイルしか配布されていません。 今回はGitHubのWikiで紹介されているリンクから、tar形式のファイルをダウンロードしてインストールします。
使用しているオペレーティングシステムに合わせて32bitか64bitから選択してください。
2020-02-27時点では64bitのアーカイブ一覧は以下の通りです。
1. MSYS2配布ファイルのダウンロード
執筆時点(2020-02-27)で最新のmsys2-base-x86_64-20190524.tar.xzをダウンロードします。
2. .tar.xz形式ファイルの展開
tarコマンドの場合
1 2 3 4 5 6 |
$ tar Jxf msys2-base-x86_64-20190524.tar.xz or $ xz -dv msys2-base-x86_64-20190524.tar.xz $ tar xvf msys2-base-x86_64-20190524.tar |
windowsの場合
xz形式のファイルを展開できるソフトを使用して展開してください。
3. MSYS2の起動
ダウンロードしたファイルを展開するとmsys64ディレクトリが作成されます。 ※適宜お好みの場所にフォルダを移動してください。
msys64_shell.cmdファイルを実行します。
インストーラーを使用しない場合は最小のパッケージやツールしか含まれていません。 初回起動時は必ずmsys2_shell.cmd経由で起動するようにしましょう。
各種インストールが自動で行われた後に下図のように再起動を促されますので再起動します。
以降はmsys64_shell.cmdを実行すればターミナルを起動できます。
pacman
MSYS2の各種パッケージはパッケージ管理システムpacmanを使用します。
pacmanとはArch Linuxの1コンポーネントとして開発されたソフトウェアパッケージ管理システムです。
pacman -h | ヘルプ表示 |
pacman -<オプション> -h | 指定したオプションのヘルプ表示 |
pacman -Sy | サーバーから最新のパッケージデータベースをダウンロード |
pacman -Su | インストールしたパッケージのアップグレード |
pacman -Syu | パッケージのアップグレード $ pacman -Sy && pacman -Su を一括で行う |
pacman -S | 特定のパッケージのインストール |
pacman -R | あるパッケージを、そのパッケージが必要としていたものを残したまま削除 |
pacman -Rs | 削除したいパッケージと、そのパッケージだけが必要としている他のパッケージを一緒に削除 |
まずはパッケージを最新の状態にしておきましょう。
1 |
$ pacman -Syu |
各種コマンドの実行例
opensshパッケージをインストールすることでSSHクライアントとしても使用できます。
1 2 3 4 |
$ pacman -S openssh $ ssh -V OpenSSH_8.1p1, OpenSSL 1.1.1b 26 Feb 2019 |
vimを使う事も
1 2 3 4 5 |
$ pacman -S vim $ vim --help VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 16 2020 08:26:10) ... |
gitを使う事も
1 2 3 4 |
$ pacman -S git $ git --version git version 2.25.1 |
さらにはtmuxを使うこともできます。
1 2 3 4 |
$ pacman -S tmux $ tmux -V tmux 3.0a |
さいごに
簡単な内容ではありますが、MSYS2のインストールとpacmanコマンドをご紹介しました。
Unixライクな環境がWindowsでも使用できることでリポジトリからdotfilesを使用した環境構築も可能になります。

※画像はイメージです
ターミナルなどの環境構築は一度手を出すと中々戻ってこれない沼な印象がありますね。
既存のSSHクライアントやターミナルに物足りなさを感じている方は一度試してみてはいかがでしょうか?

美髭公

最新記事 by 美髭公 (全て見る)
- 年齢ってどうやって計算するの?PHPで年齢を計算する方法を紹介します - 2021年3月9日
- PHPのマイクロフレームワーク「Slim4」の「slim-skeleton」を使用してハマったこと - 2021年1月12日
- 「Functional PHP」PHPのための関数型プリミティブライブラリを触ってみた - 2020年11月5日
- Windowsで至高のターミナル生活を求めて(Windows Terminal編) - 2020年9月9日
- Windowsで至高のターミナル生活を求めて(Alacritty編) - 2020年7月3日
最新記事