nyagos を 4.4.9_x から 4.4.10_x へバージョンアップできない
バージョンナンバーの桁数を増えると、インストール済みのバージョンと最新バージョンの比較がうまくゆかないようです(ASCII順で比較してる?)。この場合、scoop update nyagos
ではなく、一度アンインストールしてから再インストールすれば解決します。
$ scoop uninstal nyagos
$ scoop install nyagos
diffutils 3.7 の diff が動かない
diff.exe が必要とする msys-iconv-2.dll が入っていないため、起動すらできないようです。
本来であれば scoop install diffutils
のタイミングで、 libiconv-1.16-2-x86_64.pkg.tar.zst
が展開されてインストールされるのですが、scoop が利用している 7-zip には zstd を展開する機能がなく、パッケージのダウンロードまでしか出来ていないようです。
当面 scoop で zstd でサポートされる可能性は低いため、今のところ以下のような回避策をとるしかないようです。
- unxutils (2007.03.01) をかわりに使う (
scoop install unxutils
) - busybox (4487-gd239d2d52) をかわりに使う (
scoop install busybox
でインストール。利用はbusybox diff
を使う)
他にも scoop で使われている 7z.exe を zstd 対応のものに差し替える、MSYS や msys-iconv-2.dll だけを別途自前で入れるなども考えられます(が、未検証です)
参考
- diffutils appears to be broken on a fresh install (msys-iconv-2.dll missing) ・ Issue #1722 ・ ScoopInstaller/Main
- Support zstd for extraction ・ Issue #3990 ・ ScoopInstaller/Scoop
- scoopシステム崩壊の序曲
gvim などGUIアプリを起動すると終了待ちになる
通常、CMD.EXE は CUI アプリだと終了するまでプロンプトを出さず、 GUI アプリだと終了を待たずにプロンプトを出すという動作をします。ですが、scoop でインストールしたアプリは %PATH% 上にあるプロクシー的なEXEファイルが CUI であるため、GUIアプリも CUI と誤認識されて終了待ちになってしまう問題がありました。
この問題は最近の scoop では解消されたのですが、有効にするにはプロクシーの EXE ファイルを更新しないと反映されません。そのため、直っているのに気づいていない人も多いと思います。
プロクシーの EXE ファイルを更新するには
scoop reset vim-kaoriya
とすればよいようです。これで vim (kaoriya版) を起動する時、プロンプトがすぐ表示されるようになります。
とはいえ、GUIエディターでこれを行うと、git のコミットメッセージ編集など他のプログラムの子プロセスとして実行した場合に、編集が終わっていないのに次の処理が動いてしまうという弊害が発生してしまいます。
対処法は2つ
(1)その GUI アプリも CUI アプリ扱いする
昔の動作に戻します。
$ scoop config shim 71
$ scoop reset vim-kaoriya
$ scoop config rm shim
shim
というグローバル設定を「一時的に」 71
という値(これも語源がよく分からない値だ)に設定して、その間に vim-kaoriya のプロクシー EXE をリセットすればよいようです。
(2)バッチや他のプロセスから呼び出す時はプロクシーを介さないようにする
git から gvim を呼び出す場合を例に説明します。
プロクシーでない本体のありかを確認
$ scoop which vim
~\scoop\apps\vim-kaoriya\current\vim.exe
それを git のエディターに指定します。
$ SET GIT_EDITOR=C:/Users/ユーザ名/scoop/apps/vim-kaoriya/current/gvim.exe
(gitの話ですが、GIT_EDITOR はパス区切りに / (forwardslash) を使わないといけないようです)