Scoop で利用できる Bucket の解説（`scoop bucket known` 限定）

[全Scoopコマンド解説 その１ ～使用頻度（高）～](https://qiita.com/nimzo6689/items/1ab33380366e324c0b84)の記事が長くなりすぎるので、
Bucketごとの解説はこちらに分割しました。

# `scoop bucket known`のBucketについて

Scoopには以下11個のBucketを`scoop bucket known`で表示できるようにしており、
これらのBucketに関してはURL指定なしでBucket名だけで登録することができるようになっています。

また、Main, Extras, Version, PHP, Java, Gamesの6つに関してはScoopチームが管理するサーバーで
Bucket内のアプリ情報を自動更新しているため、古いバージョンがScoopからインストールされることを防いでいます。[^1]
[^1]: 実態は[Excavator](https://github.com/ScoopInstaller/Excavator)というScoopチームが管理するツールで運用しているようです。Main, Extrasに関しては毎時更新、Version, PHP, Java, GamesはUTCで日次0時なので、日本時間だとちょうど午前9時に更新されます。出社したら`scoop update *`ですね。
　
他のパッケージ管理ツールと違い、Scoopは基本的にそのアプリの開発者ではない人が
マニフェストファイルをメンテすることが多いので、この仕組みは非常にいいですね。

# 各Bucketごとの解説

以下、2019/07/07 時点の情報を元にまとめています。

## Main

リポジトリ：　https://github.com/ScoopInstaller/Main
アプリ数：　527

デフォルトで利用可能なScoopアプリを管理しているBucketで以下の基準全てを満たすアプリだけが入っています。[^2]
[^2]: [Criteria for including apps in the main bucket](https://github.com/lukesampson/scoop/wiki/Criteria-for-including-apps-in-the-main-bucket)
　
・広く知られ広く開発ツールとして利用されているか。
・最新の安定版がScoopによって管理できるか。
・試用期間を超えると利用できない、つまり、シェアウェアではないか。
・Scoopの標準的なやり方でインストール可能か（手の込んだ手法を用いる必要がないこと）
・GUIツールではないか。

各プログラミング言語のコンパイラ・実行環境・デバッカ、パッケージ管理ツール（Maven, Composer, dotnet, ...）、
その他開発ツール（curl, git, ...）など優れたツールばかりです。

## Extras

リポジトリ：　https://github.com/lukesampson/scoop-extras
アプリ数：　800

Mainの基準に満たせなかったアプリが管理されています。
主にGUIアプリになるのでHomebrew-Caskと同じような存在です。

Visual Studio CodeやEclipseといった開発者ツールからGoogle Chrome, Skypeといった一般ユーザ向けツールまであります。

## Versions

リポジトリ：　https://github.com/ScoopInstaller/Versions
アプリ数：　98

MainやExtrasで管理しているScoopアプリの中から一部バージョン指定でインストールできるようにしています。
記事を書いている時点で49個のアプリが対応されている模様です。

ただし、PHPとJavaに関してはそれ専用のBucketからバージョン指定でインストールできるようにされています。

## Nightlies

リポジトリ：　https://github.com/ScoopInstaller/Nightlies
アプリ数：　1

ナイトリービルド専用のBucket。のはずですが、なぜかdotnetコマンドしか登録されていません。
見た感じ、こちらはその都度最新版を`scoop install`にて更新する必要があるScoopアプリを置く想定のようです。

## PHP

リポジトリ：　https://github.com/ScoopInstaller/PHP
アプリ数：　377

v5.2~v7系までの全てのPHPをScoopアプリとして提供しています。TS版とNTS版、両方とも利用可能です。

## Java

リポジトリ：　https://github.com/ScoopInstaller/Java
アプリ数：　94

各OpenJDKのディストリビューションがバージョン指定で管理されています。
OracleJDKの最新バージョン以外はOracleサイトにログインする必要があるので、それらのバージョンは対象外です。

Javaのインストール時に表示されるあの「3 Billion Devices Run Java」画面ともお別れですね。

## Nonportable

リポジトリ：　https://github.com/oltolm/scoop-nonportable
アプリ数：　22

Scoopはポータブル（つまり、インストールしたディレクトリに設定ファイルなどもまとめて保存する方法）でインストールしているため、
以前まではバージョンが更新されるとその設定ファイルの引継ぎができないアプリが多々ありました。
そこで、当時ノンポータブルでインストールするアプリを管理する専用のBucketとしてこちらを作成したわけです。

ただ、現在は`~\scoop\persistent\<app>`配下にバージョン間で連携したいファイル
（iniファイルやnpmパッケージ情報など）を置けるようになったので、そこまで使用することはないと思います。

## JetBrains

リポジトリ：　https://github.com/Ash258/Scoop-JetBrains
アプリ数：　74

JetBrains製のIDE（IntelliJ IDEAやPyCharmなど）を管理しています。
IDEが生成するファイル群（config, system, plugins, log）はScoopアプリのインストール先
（`~\scoop\apps\pycharm\current`）配下のprofileフォルダに格納されるそうです。

## Games

リポジトリ：　https://github.com/Calinou/scoop-games
アプリ数：　84

フリーのゲームソフトを管理している模様。PCゲームしないのでよくわかんない。

## NirSoft

リポジトリ：　https://github.com/MCOfficer/scoop-nirsoft
アプリ数：　250

Nir Sofer氏が開発した250以上ものポータブルユーティリティを管理しています。
正直、Scoopで初めてこの存在を知りました。

## Nerd Fonts

リポジトリ：　https://github.com/matthewjberger/scoop-nerd-fonts
アプリ数：　50

エディタやターミナルにおススメなフォント集のようです。
この記事書くまで知りませんでした。勉強になります。
元ネタ：https://nerdfonts.com/

# その他 known 以外のBucketについて

各個人が公開しているScoop Bucketについては[こちら](https://rasa.github.io/scoop-directory/by-score)で探すことができます。
いろいろあって便利ですが、Scoopがknownで登録しているBucketと比べると
最新版の更新がおろそかになるケースが多いので、その点は注意が必要です。