Scoopによってmsys2が更新され、環境がリセットされたときの対応メモ
パッケージのインストール
旧環境のターミナルを起動させて次のコマンドを打つと、パッケージのインストールコマンドが作れる。
echo pacman -S $(pacman -Qe | awk -e '{ print $1 }' | grep -v base | grep -v filesystem | grep -v msys2-runtime | sed -z "s/\n/ /g")
新環境のターミナルを起動させていろいろ初期化が終わったあと、
pacman -Syu
で更新したあとで最初のコマンドで作ったインストールコマンドを打つと、パッケージがインストールされる
何してるのさ
pacman -Qe
は、インストールしたパッケージのリストアップ。ただしこのままだとバージョン情報が含まれるので
awk -e '{ print $1 }'
でパッケージ名だけ取得。
base, filesystem, msys2-runtimeの3つはmsys2に最初から入っていてインストールの必要はないのでgrep -vで除去。
最後にsedで改行を空白に置き換えてその結果をechoの出力につなげたら完成。
$ echo pacman -S $(pacman -Qe | awk -e '{ print $1 }' | grep -v base | grep -v filesystem | grep -v msys2-runtime | sed -z "s/\n/ /g") pacman -S make mingw-w64-x86_64-clang mingw-w64-x86_64-clang-analyzer mingw-w64-x86_64-clang-tools-extra mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-gst-devtools mingw-w64-x86_64-gst-plugins-bad mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-make mingw-w64-x86_64-ntldd-git mingw-w64-x86_64-python-conan
実のところ最初のmakeとmingw-w64-x86_64-python-conanは必要ないので除去してから実行した。
注意事項として、sed -zはGNU sedにしかないっぽい。BSD sedを使う機会はまぁ無いけど。
それはそうとして
正直Scoopで更新入るたびにあれこれやるのも面倒なので、開発環境変えたほうがいいのかな。
WSL上のUbuntuに環境構築して、そっちにVSCodeのリモート開発を使うか、Ubuntu上にVSCode入れてWSLgでGUI出して使うか。
ファイル操作するだけならWSL環境からWindows環境のファイル見えるし。
問題点としてはWSLでUSB使うのがかなり面倒なことかな……Webカメラの映像あれこれができないのはちょっと困るかな……