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などがある。msys...
コメント