【msys2/Windows】msys2でシンボリックリンクを作る

スポンサーリンク

msys2 のデフォルトでは「ln」コマンドは受け付けてくれずシンボリックリンクを作成する事ができない。
今までは、Windowsの mklink コマンドを使って作成していたが、調べてみると msys2 の起動スクリプトを変更し、管理者モードで起動すると「ln」コマンドでシンボルリンクが作れるのが判ったので備忘録を残す。

手順

c:/msys64/msys2_shell.cmd を修正する。適当なエディタで開き、以下の箇所のコメントを外す。

変更前

rem set MSYS=winsymlinks:nativestrict

変更後

set MSYS=winsymlinks:nativestrict

次に変更した msys2_shell.cmd を右クリックし 管理者として実行を選択し起動。
開いたコンソールから「ln」コマンドでシンボリックリンクを作成。

$ ln -s envfiles/common/.agignore
$ ls -al .agignore
rwxrwxrwx 1 [user] [user]   25 1月  27 08:22 .agignore -> envfiles/common/.agignore

補足

  • WindowsのコンソールからDIRコマンドで見ると下記のように <SYMLINK> になってたので、どうやらこの機能はWindowsのシンボルリンク機能で実現されているよう。
     2018/01/27 08:22 <SYMLINK> .agignore [envfiles\common\.agignore]
  • シンボリックリンクの解除は「unlink」コマンドを使う。
  • 作成したシンボリックリンクをGitでコミット&プッシュし、他のOS(Mac)からプルで読み込んだらどうなるか試したら、きちんとシンボルリンクになっていた。(たぶんGitがうまく変換してくれてる?)
msys2でWindows上でのビルド環境をつくる(msys2のインストール)
GNU makeやコンパイラが動かせる環境を、Windows上にmsys2をインストールしてつくる。Unixのbashライクなコマンドラインが使えるようになるソフトだが、このようなソフトは、他にはCygwinやMinGWなどがある。msy...

参考

  1. MSYS2でシンボリックリンクを作れるようにしてみた
  2. Windowsでシンボリックリンクを作る
  3. Windowsのシンボリックリンクとジャンクションとハードリンクの違い

コメント

タイトルとURLをコピーしました