Windows で brew したい人のための Scoop 簡単ガイド


Scoop とは

Windows 版の Homebrew と言えば、Chocolatey がメジャーですが、なんというか、よりデベロッパフレンドリーな Scoop がオススメです。

Chocolatey と比較すると以下が特徴です。

  • コマンドライン主体
  • アプリケーションはデフォルトでホームディレクトリにインストールされる
  • パスを汚染しない
  • アプリケーションを独立して自己完結的にインストールする
  • 独自のアプリやアプリのコレクションを簡単に作成できる

本家によると Scoop は、パッケージマネージャではなく、Windows 用のコマンドラインインストーラー だそうな。


インストール

PowerShellで以下を実行します。

> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
> irm get.scoop.sh | iex

以下のようにしてインストールが完了します。

> irm get.scoop.sh | iex

Initializing...
Downloading...
Extracting...
Creating shim...
Adding ~\scoop\shims to your path.
Scoop was installed successfully!
Type 'scoop help' for instructions.

インストールにてユーザの環境変数に C:\Users\xxxx\scoop\shims が追加されます。


ヘルプは以下のように出力されます。

> scoop help

Usage: scoop <command> [<args>]

Available commands are listed below.

Type 'scoop help <command>' to get more help for a specific command.

Command    Summary
-------    -------
alias      Manage scoop aliases
bucket     Manage Scoop buckets
cache      Show or clear the download cache
cat        Show content of specified manifest.
checkup    Check for potential problems
cleanup    Cleanup apps by removing old versions
config     Get or set configuration values
create     Create a custom app manifest
depends    List dependencies for an app, in the order they'll be installed
download   Download apps in the cache folder and verify hashes
export     Exports installed apps, buckets (and optionally configs) in JSON format
help       Show help for a command
hold       Hold an app to disable updates
home       Opens the app homepage
import     Imports apps, buckets and configs from a Scoopfile in JSON format
info       Display information about an app
install    Install apps
list       List installed apps
prefix     Returns the path to the specified app
reset      Reset an app to resolve conflicts
search     Search available apps
shim       Manipulate Scoop shims
status     Show status and check for new app versions
unhold     Unhold an app to enable updates
uninstall  Uninstall an app
update     Update apps, or Scoop itself
virustotal Look for app's hash or url on virustotal.com
which      Locate a shim/executable (similar to 'which' on Linux)

特定のコマンドのヘルプを見るには以下のようにします。

> scoop help <command>


Scoop の更新

Scoop の最新バージョンを取得するには、以下を実行します

> scoop update

scoop の最新バージョンがダウンロードされ、ローカル アプリ マニフェストが更新されます。

インストール済みのアプリケーションは以下で更新できます。

> scoop update *


Scoop のアンインストール

> scoop uninstall scoop

これにより ~/scoop/persist フォルダーが削除されます。

以下のように強制削除することもできます。

> del .\scoop -Force


アプリケーションのインストール

git を例にすると、以下のように操作できます。

  • 検索
> scoop search git
  • インストール
> scoop install git

特定のバージョンをインストールするには以下のようにバージョンを指定します。

> scoop install git@2.23.0.windows.1
  • アップデート
> scoop update git

古いバージョンのクリーンアップ

> scoop cleanup
  • アンインストール
> scoop uninstall git


インストール済みアプリケーションの確認

インストール済みアプリケーションは scoop list で一覧できます。

> scoop list

Installed apps:

Name Version  Source Updated             Info
---- -------  ------ -------             ----
7zip 22.01    main   2023-02-14 16:57:32
curl 7.87.0_8 main   2023-02-14 16:57:39
...

scoop list では、インストールされている最新バージョンが表示されます。

各バージョンを確認するには scoop info <app> を利用します。

例えば以下のように表示されます。

> scoop info curl

Name        : curl
Description : Command line tool and library for transferring data with URLs
Version     : 7.87.0_8
Bucket      : main
Website     : https://curl.haxx.se
License     : MIT
Updated at  : 2023/02/13 21:42:44
Updated by  : User
Installed   : 7.87.0_8
Binaries    : bin\curl.exe

アプリケーションのアップデート状況は以下で確認できます。

> scoop status


アプリケーションのバージョン切り替え

scoop ではバージョンを指定することで複数バージョンのアプリケーションを共存できます。

> scoop install terraform@0.11.14

> scoop install terraform@0.12.11

バージョンを切り替えるには scoop reset <app>@<version> を使います。

アクティブ インストールをバージョン 0.11.14 に設定

> scoop reset terraform@0.11.14

アクティブ インストールをバージョン 0.12.11 に設定

> scoop reset terraform@0.12.11

最新のインストール済みバージョンにリセット

> scoop reset terraform


マルチコネクションによるダウンロードの高速化

aria2 をインストールすれば、その後のダウンロードでマルチコネクションが有効になります。

> scoop install aria2


バケット

バケットは、アプリのインストール方法を説明する JSON app manifests を含む Git リポジトリです。

Scoop は メインバケット として以下のリポジトリを利用します

https://github.com/ScoopInstaller/Main

上記リポジトリの bucket/ に JSON で定義された app manifests があり、このファイルでアプリケーションのインストール方法が定義されています。

メインバケットに存在しないアプリケーションをインストールする場合は、メインバケット以外の既知のバケットからインストールできます(未知の独自バケットを指定してインストールすることもできます)。

以下で既知のバケットのリストを確認できます。

> scoop bucket known

main
extras
versions
nirsoft
sysinternals
php
nerd-fonts
nonportable
java
games

メインバケット 以外からアプリケーションをインストールするには、たとえば、オプションの extras バケットを以下のように追加します。

> scoop bucket add extras

Checking repo... OK
The extras bucket was added successfully.

バケットのリストは以下で確認できます。

> scoop bucket list

Name   Source                                   Updated   Manifests
----   ------                                   -------   ---------
extras https://github.com/ScoopInstaller/Extras ....      1777
main   ~\scoop\buckets\main                     ....      1162