Scoop
Windows 向けパッケージ管理 Scoop(スクープ)についてまとめています。
macOS でいう Homebrew、他の OS だと apt・yum・dnf などに該当します。
PowerShell の操作が多い人にはおすすめです。
目次
公式・関連サイト
- Scoop
- lukesampson/scoop | GitHub
- Documentation - ドキュメント (GitHub Wiki)
- ScoopInstaller | GitHub
- bucket | GitHub - 管理パッケージ一覧
Scoop のインストール
PowerShell より次を実行します。
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
エラーになる場合は、次を実行した後、再度行ってみて下さい。
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
以下、パッケージの例として Hugo にしています。
公式サイトにもインストール方法として公開されています。
Scoop (Windows) - Install Hugo | Hudo Docs
パッケージの検索
パッケージを探す場合は scoop search パッケージ名
とします。
scoop search hugo
bucket - ScoopInstaller/Main | GitHub
Bucket の種類
初期設定では Main のみが検索の対象ですが、
他にも Bucket を追加し、対象パッケージを追加できます。
Extras
scoop bucket add extras
Main の基準から外されているアプリがパッケージ管理されています。
Main と Extras だけでも多くのパッケージを見つけられるでしょう。
bucket - lukesampson/scoop-extras | GitHub
管理パッケージ数が 1000 を超えているため、
GitHub のファイル一覧に表示しきれていない事にご注意下さい。
Versions
scoop bucket add versions
Main から特定バージョンをインストールできます。
bucket - ScoopInstaller/Versions | GitHub
PHP
や Java
は別途 Bucket がありますが、
PHP7 系は Version でも管理されているので、 Versions
のみで良いでしょう。
その他
個々に Bucket を生成できるため、様々な Bucket が公開されています。
目的の Bucket が存在するかもしれません。
Scoop buckets by Github score | scoop-directory
パッケージのインストール
scoop install パッケージ名
でインストールします。
scoop install hugo
特定バージョンのインストール
パッケージ名から@
に続けてバージョンを指定します。
複数バージョンをインストール可能です。
scoop install [email protected]
scoop reset
を用いてバージョンを切り替えます。
scoop reset [email protected]
@バージョン
がない場合、最新バージョンの切り替えになります。
scoop reset hugo
パッケージの更新
固有のパッケージを更新する場合は scoop update パッケージ名
とします。
scoop update hugo
Scoop 管理のパッケージすべてを更新する事もできます。
scoop update *
パッケージのアンインストール
scoop uninstall パッケージ名
とします。
scoop uninstall hugo
古いパッケージのアンインストール
scoop cleanup
を使うと古いバージョンを削除します。
scoop cleanup hugo
Scoop コマンド一覧
Commands | GitHub lukesampson/scoop Documentation(Wiki)
Q&A
Chocolatey との違いは?
Chocolatey Comparison | GitHub lukesampson/scoop Documentation(Wiki)
Windows にはパッケージ管理として Chocolatey も存在します。
Chocolatey は通常管理者モードで使用する必要があります。
多くのパッケージが存在しますが、アプリ自身が自動更新するアプリも含まれ、
アプリと Chocolatey が二重に更新しようとする場合があります。
またアプリ数が多く、メンテナーも多い状況で、アプリによっては更新が遅かったり、
最悪しばらく更新されていないパッケージも存在します。
Scoop は基本的にユーザー権限で使用ができるので、
会社使用の制限されたパソコンでもインストールして使用する事が可能です。
アプリは主にインストーラーを必要としないポータブル版が採用されています。
アプリ数は Chocolatey より少ないですが、
最新パッケージを維持されているアプリが多いです。
サイト管理者は当初 Chocolatey を用いていましたが、
特にパッケージの更新・維持に不満があり、Scoop に変更しました。
すでにインストールされているパッケージを Scoop 管理にできますか?
scoop フォルダ内で管理されるようになりますので、
一度削除してから Scoop でインストールしなおす事になります。
インストールしたアプリが見つかりません。どこにありますか?
デフォルトでは ユーザーフォルダ\scoop\apps\
内にパッケージ、
ユーザーフォルダ\scoop\shims\
に実行ファイル・スクリプトが入っています。
PATH は shims\
に通してあり、更にパッケージによって個別に設定しています。
Git Bash で使用できますか?
はい。Git をインストールした後は Git Bash でも動作可能です。
ただし scoop update *
など、動作がおかしくなるコマンドがあります。
*
などの記号を含む部分を '~'
で囲って下さい。
scoop update '*'
scoop のコマンド実行がおかしくなっています。
scoop フォルダを削除し、再インストールします。
パッケーシも消えてしまうので、予め確認します。
dir ~\scoop\apps
その後 scoop フォルダを削除します。
del ~\scoop\ -Force
これで Scoop を再インストールできるようになります。
インストール・更新に失敗しました! どのようにすれば良いですか?
例えば Extras
Bucket に入っている openoffice
が失敗しているとします。
2021年2月8日、運営者が実際にインストール・更新の失敗を経験しています。
一度アンインストールし、古いバージョンがインストールできるか試します。
2.1.9
が失敗したので、その前 2.1.8
でインストールを試します。
scoop uninstall openoffice
scoop install [email protected]
固有バージョンで失敗する場合は、ハッシュ値の違いで発生する事が通常です。
古いバージョンでも発生する場合はファイル構成の違いで
スクリプトが動作しなくなっているケースなどがあります。
今回は後者のケースで、古いバージョンもインストールに失敗しました。
一度アンインストールでフォルダをきれいにし、
すぐに必要な場合は一時的に他の方法でインストールを代用します。
scoop uninstall openoffice
古いバージョンでインストールできた場合はこのバージョンが更新されないようにします。
scoop hold openoffice
次のコマンドでバージョン固定を解除し、更新の対象にできます。
scoop unhold openoffice
可能であればこの失敗情報を元に提供している Bubket の issues に連絡して下さい。
バージョン固有の場合は [email protected]
などとします。
現在 open になっている issue を参考にして下さい。
今回はインストールした時の表示をそのまま貼り付けました。
用語に特別なところがなければ、日本語のまま貼り付けても大丈夫でしょう。
openoffice: Installation and update fails #5635 | GitHub lukesampson/scoop-extras