はじめに
Windows用のパッケージ管理ツールscoop
が便利で重宝してるのですが、update を実行すると数日前から以下のようなエラーが出るようになってしまいました。詳しい原因はわかりませんが、とりあえず動くようにできたので対応方法を残しておきます。
PS C:\> scoop update
Updating Scoop...
Remove-Item: C:\Users\{ユーザ名}\scoop\apps\scoop\current\libexec\scoop-update.ps1:79
Line |
79 | Remove-Item $newdir -Force -Recurse
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'C:\Users\{ユーザ名}\scoop\apps\scoop\new' because it does not exist.
Scoop download failed. If this appears several times, try removing SCOOP_REPO by 'scoop config rm SCOOP_REPO'
環境
-
Windows
エディション:Windows 11 Pro
バージョン:22H2 -
scoop バージョン
PS C:\> scoop -v
Current Scoop version:
v0.3.1 - Released at 2022-11-15
- PowerShell バージョン
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.22621.963
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.963
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
- gitバージョン (scoop でインストールしたもの)
PS C:\> git -v
git version 2.39.0.windows.1
症状
scoop update
を実行すると、上記のエラーになってしまいます。
また、git -v
を実行しても標準出力には何も表示されずに終了してしまいます。
PS C:\> git -v
PS C:\>
C:\Users\{ユーザ名}\scoop\apps\git\current
内のgit.exe を直接実行すれば動くのですが、パスが通ってるshims
フォルダ内の実行ファイルが動いてくれません。
試したこと
config の削除
最初にエラーメッセージに書かれている'scoop config rm SCOOP_REPO'
を試してみましたが効果ありませんでした。
クリーニング
ネットで調べても同じようなエラーが見つからなかったので、以下のコマンドで環境のクリーニングを試してみましたが結果は変わらずでした。
PS C:\> scoop cleanup *
PS C:\> scoop cache rm *
checkup確認
次にscoop上の問題を確認するcheckupコマンドを試しました。
PS C:\> scoop checkup
WARN Windows Developer Mode is not enabled. Operations relevant to symlinks may fail without proper rights.
You may read more about the symlinks support here:
https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/
ERROR '7-Zip' is not installed! It's required for unpacking most programs. Please Run 'scoop install 7zip' or 'scoop install 7zip-zstd'.
ERROR 'Inno Setup Unpacker' is not installed! It's required for unpacking InnoSetup files. Please run 'scoop install innounp'.
ERROR 'dark' is not installed! It's required for unpacking installers created with the WiX Toolset. Please run 'scoop install dark' or 'scoop install wixtoolset'.
書かれている通り開発者モードをONにしアプリをインストールしてみましたがこちらも効果なしでした。
再インストール
次にscoop自体を削除してみました。scoop uninstall scoop
を実行し、削除に失敗したファイルが残ってしまったのでC:\Users\{ユーザ名}\scoop
フォルダを直接削除しました。
削除後scoop を再インストールしましたが、解決せずでした。
移植
最後に正常に動いてるPCのscoopフォルダを丸ごとコピーして試してみました。結果は問題なく正常に動いてくれました。
とりあえずの解決方法
scoopで管理されているアプリはC:\Users\{ユーザ名}\scoop
に格納されています。
動いてるPCのscoopフォルダをWinMergeで比較してみました。
動かないPCには「.github」と「.vscode」があり、動くPCには「.git」がある状態でした。
「.github」と「.vscode」を削除して別PCから「.git」をコピーすると動いてくれるようになりました。
PS C:\> scoop update
Updating Scoop...
WARN Uncommitted changes detected. Update aborted.
Scoop was updated successfully!
エラー箇所の確認
エラーとなっているスクリプトのscoop-update.ps1:79
も一応覗いてみました。
# get git scoop
git_cmd clone -q $configRepo --branch $configBranch --single-branch "`"$newdir`""
# check if scoop was successful downloaded
if (!(Test-Path "$newdir\bin\scoop.ps1")) {
Remove-Item $newdir -Force -Recurse
abort "Scoop download failed. If this appears several times, try removing SCOOP_REPO by 'scoop config rm SCOOP_REPO'"
}
Remove-Item
の行がエラーが出てる79行目です。
全体を見たわけではないですが、git clone
を実行してその中にscoop.ps1
のファイルが存在しない場合にエラーとなるようです。$newdir
が存在してなさそうなのでgitの操作がうまく動いてないんでしょうか。
エラーは本記事の2,3日前くらいから出るようになりました。現在執筆時点でscoopの再インストールを試したら上記エラーは出なくなりましたが、バケットの追加でエラーになってしまいます。PowerShell のV7 でも同じでした。今はタイミングの悪い時期なんですかね??
PS C:\> scoop bucket add extras
Checking repo... ERROR 'https://github.com/ScoopInstaller/Extras' doesn't look like a valid git repository
Error given: