💡

Windows に Scoop を入れる

2024/10/03に公開

tl;dr

  • Windows 用のパッケージマネージャ(macOS でいう Homebrew)
  • インストール方法から使い方までを解説
  • 込み入った話は本記事の対象外(とりあえず使えるところまで)

Scoop のインストール

https://scoop.sh

上記公式ウェブサイトに記載の通りのコマンドを実行します。Powershell を開いて下記のコマンドを入力し、エンターを押してください。ひとつ目のコマンドではキー入力が求められますので、「Y」を入力し、エンターを押して進めてください。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

実行例は下記のとおりです。

PS C:\Users\username> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y
PS C:\Users\username> Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Initializing...
Downloading...
Extracting...
Creating shim...
Adding ~\scoop\shims to your path.
Scoop was installed successfully!
Type 'scoop help' for instructions.

Scoop がインストールされたら Scoop のバージョンを確認してみましょう。

scoop --version
PS C:\Users\username> scoop --version
Current Scoop version:
v0.5.2 - Released at 2024-07-26

Scoop の使い方

どう使えば良いのか迷ったらヘルプコマンドを使いましょう。

scoop help

ヘルプコマンドは Scoop に限らず「コマンド名 help」あるいは「コマンド名 --help」で実行することができます。実行例を下記に示します。

PS C:\Users\username> 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)

日本語訳を合わせて付記します。

PS C:\Users\username> scoop help
使用法: scoop <コマンド> [<引数>]

利用可能なコマンドは以下にリストされています。

特定のコマンドについての詳細を知りたい場合は、'scoop help <コマンド>' と入力してください。

コマンド    概要
-------    -------
alias      Scoopのエイリアスを管理
bucket     Scoopバケットを管理
cache      ダウンロードキャッシュを表示またはクリア
cat        指定されたマニフェストの内容を表示
checkup    潜在的な問題をチェック
cleanup    古いバージョンを削除してアプリをクリーンアップ
config     設定値を取得または設定
create     カスタムアプリマニフェストを作成
depends    アプリの依存関係をインストール順にリスト
download   アプリをキャッシュフォルダにダウンロードし、ハッシュを検証
export     インストールされたアプリ、バケット(およびオプションで設定)をJSON形式でエクスポート
help       コマンドのヘルプを表示
hold       アプリをホールドして更新を無効に
home       アプリのホームページを開く
import     JSON形式のScoopfileからアプリ、バケット、設定をインポート
info       アプリに関する情報を表示
install    アプリをインストール
list       インストールされたアプリをリスト
prefix     指定されたアプリのパスを返す
reset      コンフリクトを解決するためにアプリをリセット
search     利用可能なアプリを検索
shim       Scoopのシムを操作
status     ステータスを表示し、新しいアプリのバージョンをチェック
unhold     アプリのホールドを解除して更新を有効に
uninstall  アプリをアンインストール
update     アプリまたはScoop自体を更新
virustotal アプリのハッシュまたはURLをvirustotal.comで調べる
which      シム/実行可能ファイルを探す(Linuxの'which'に類似)

試しにひとつパッケージを入れてみましょう。パッケージを検索するコマンドを実行した後にパッケージをインストールします。

scoop search package_name
scoop install package_name
PS C:\Users\username> scoop search vim
Results from local buckets...

Name     Version      Source Binaries
----     -------      ------ --------
gow      0.8.0        main   vim.exe
neovim   0.10.1       main
psutils  0.2023.06.28 main   vimtutor.ps1
vim      9.1.0        main
vimtutor 0.2018.07.25 main

PS C:\Users\username> scoop install vim
Scoop uses Git to update itself. Run 'scoop install git' and try again.
Installing 'vim' (9.1.0) [64bit] from 'main' bucket
gvim_9.1.0_x64_signed.zip (21.2 MB) [=========================================================================] 100%
Checking hash of gvim_9.1.0_x64_signed.zip ... ok.
Extracting gvim_9.1.0_x64_signed.zip ... done.
Linking ~\scoop\apps\vim\current => ~\scoop\apps\vim\9.1.0
Creating shim for 'vim'.
Creating shim for 'vi'.
Creating shim for 'ex'.
Creating shim for 'view'.
Creating shim for 'rvim'.
Creating shim for 'rview'.
Creating shim for 'vimdiff'.
Creating shim for 'gvim'.
Making C:\Users\username\scoop\shims\gvim.exe a GUI binary.
Creating shim for 'gview'.
Making C:\Users\username\scoop\shims\gview.exe a GUI binary.
Creating shim for 'evim'.
Making C:\Users\username\scoop\shims\evim.exe a GUI binary.
Creating shim for 'eview'.
Making C:\Users\username\scoop\shims\eview.exe a GUI binary.
Creating shim for 'rgvim'.
Making C:\Users\username\scoop\shims\rgvim.exe a GUI binary.
Creating shim for 'rgview'.
Making C:\Users\username\scoop\shims\rgview.exe a GUI binary.
Creating shim for 'gvimdiff'.
Making C:\Users\username\scoop\shims\gvimdiff.exe a GUI binary.
Creating shim for 'xxd'.
Creating shortcut for gVim (gvim.exe)
Running post_install script...done.
'vim' (9.1.0) was installed successfully!
Notes
-----
Add gVim as a context menu option by running: "C:\Users\username\scoop\apps\vim\current\install-context.reg"
'vim' suggests installing 'vimtutor'.

Vim のインストールはできたものの、git に関する注告が出ていますね。同様に git も Scoop にてインストールしてみましょう。

PS C:\Users\username> scoop install git
Scoop uses Git to update itself. Run 'scoop install git' and try again.
Installing '7zip' (24.08) [64bit] from 'main' bucket
7z2408-x64.msi (1.9 MB) [=====================================================================================] 100%
Checking hash of 7z2408-x64.msi ... ok.
Extracting 7z2408-x64.msi ... done.
Linking ~\scoop\apps\7zip\current => ~\scoop\apps\7zip\24.08
Creating shim for '7z'.
Creating shim for '7zFM'.
Making C:\Users\username\scoop\shims\7zfm.exe a GUI binary.
Creating shim for '7zG'.
Making C:\Users\username\scoop\shims\7zg.exe a GUI binary.
Creating shortcut for 7-Zip (7zFM.exe)
Persisting Codecs
Persisting Formats
Running post_install script...done.
'7zip' (24.08) was installed successfully!
Notes
-----
Add 7-Zip as a context menu option by running: "C:\Users\username\scoop\apps\7zip\current\install-context.reg"
Installing 'git' (2.46.2) [64bit] from 'main' bucket
PortableGit-2.46.2-64-bit.7z.exe (58.9 MB) [=======================================================================================================================================================================================] 100%
Checking hash of PortableGit-2.46.2-64-bit.7z.exe ... ok.
Extracting PortableGit-2.46.2-64-bit.7z.exe ... done.
Linking ~\scoop\apps\git\current => ~\scoop\apps\git\2.46.2
Creating shim for 'sh'.
Creating shim for 'bash'.
Creating shim for 'git'.
Creating shim for 'gitk'.
Making C:\Users\username\scoop\shims\gitk.exe a GUI binary.
Creating shim for 'git-gui'.
Making C:\Users\username\scoop\shims\git-gui.exe a GUI binary.
Creating shim for 'scalar'.
Creating shim for 'tig'.
Creating shim for 'git-bash'.
Making C:\Users\username\scoop\shims\git-bash.exe a GUI binary.
Creating shortcut for Git Bash (git-bash.exe)
Creating shortcut for Git GUI (git-gui.exe)
Running post_install script...done.
'git' (2.46.2) was installed successfully!
Notes
-----
Set Git Credential Manager Core by running: "git config --global credential.helper manager"

To add context menu entries, run 'C:\Users\username\scoop\apps\git\current\install-context.reg'

To create file-associations for .git* and .sh files, run 'C:\Users\username\scoop\apps\git\current\install-file-associations.reg'

Scoop は特定のディレクトリ(デフォルトは~/scoop)にすべてのパッケージが管理されるため、ポータブル化も可能なよう。いったんは install / uninstall / update あたりは最低限押さえておけば良いかなと思います。

Discussion