Closed4

Scoop と diffutils

SpiegelSpiegel

まず自分の環境では何故か

$ scoop update diffutils
diffutils: 3.7 (latest version)
Latest versions for all apps are installed! For more information try 'scoop status'

てな感じでちゃんと入ってるので,入れなおすところから

$ scoop uninstall diffutils
Uninstalling 'diffutils' (3.7).
Removing shim for 'cmp'.
Removing shim for 'diff'.
Removing shim for 'diff3'.
Removing shim for 'sdiff'.
Unlinking ~\scoop\apps\diffutils\current

$ scoop install diffutils
Installing 'diffutils' (3.7) [64bit]
Loading diffutils-3.7-1-x86_64.pkg.tar.xz from cache
Checking hash of diffutils-3.7-1-x86_64.pkg.tar.xz ... ok.
Loading msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz from cache
Checking hash of msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz ... ok.
Loading libiconv-1.16-2-x86_64.pkg.tar.zst from cache
Checking hash of libiconv-1.16-2-x86_64.pkg.tar.zst ... ok.
Loading libintl-0.19.8.1-1-x86_64.pkg.tar.xz from cache
Checking hash of libintl-0.19.8.1-1-x86_64.pkg.tar.xz ... ok.
Extracting diffutils-3.7-1-x86_64.pkg.tar.xz ... done.
Extracting msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz ... done.
Extracting libintl-0.19.8.1-1-x86_64.pkg.tar.xz ... done.
Linking ~\scoop\apps\diffutils\current => ~\scoop\apps\diffutils\3.7
Creating shim for 'cmp'.
Creating shim for 'diff'.
Creating shim for 'diff3'.
Creating shim for 'sdiff'.

おうふ,キャッシュされてるのか orz
でもこれって libiconv-1.16-2-x86_64.pkg.tar.zst がちゃんと解凍されてるってことだよなぁ???

SpiegelSpiegel

気を取り直してキャッシュを削除するところから

$ scoop cache rm diffutils

$ scoop install diffutils
Installing 'diffutils' (3.7) [64bit]
diffutils-3.7-1-x86_64.pkg.tar.xz (342.0 KB) [================================================================] 100%
Checking hash of diffutils-3.7-1-x86_64.pkg.tar.xz ... ok.
msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz (2.7 MB) [============================================================] 100%
Checking hash of msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz ... ok.
libiconv-1.16-2-x86_64.pkg.tar.zst (725.6 KB) [===============================================================] 100%
Checking hash of libiconv-1.16-2-x86_64.pkg.tar.zst ... ok.
libintl-0.19.8.1-1-x86_64.pkg.tar.xz (30.8 KB) [==============================================================] 100%
Checking hash of libintl-0.19.8.1-1-x86_64.pkg.tar.xz ... ok.
Extracting diffutils-3.7-1-x86_64.pkg.tar.xz ... done.
Extracting msys2-runtime-3.1.7-2-x86_64.pkg.tar.xz ... done.
Extracting libintl-0.19.8.1-1-x86_64.pkg.tar.xz ... done.
Linking ~\scoop\apps\diffutils\current => ~\scoop\apps\diffutils\3.7
Creating shim for 'cmp'.
Creating shim for 'diff'.
Creating shim for 'diff3'.
Creating shim for 'sdiff'.

なるほど。ダウンロードすれども展開せずってことか。やっと状況が分かった。

SpiegelSpiegel

Zstandard に対応している 7-zip があるらしい。

https://github.com/mcmilk/7-Zip-zstd

これをインストールしてエクスプローラから libiconv-1.16-2-x86_64.pkg.tar.zst を開いて usr/bin/ フォルダ直下のファイルを ~/scoop/apps/diffutils/3.7/usr/bin/ フォルダに展開する。これで

$ diff hello.c alice.c
4c4
<     printf("hello world\n");
---
>     printf("hello alice\n");

よーし,うむうむ,よーし。これで鼻の先の危機は去った(笑) しかし Scoop が *.zst ファイルをまるっと無視するのなら根本的な解決は難しそう。

このスクラップは2021/11/03にクローズされました