0
0

More than 1 year has passed since last update.

scoop update でnewフォルダが存在しないエラーの暫定解決方法

Posted at

はじめに

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で比較してみました。

image.png

動かない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:
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0