Linuxでコマンドラインを使用するのが好きだけど、Windowsに切り替えなければならないことになった?心配しないでください、Scoop Windowsがパッケージマネージャーとして登場します。ScoopはWindows用のコマンドラインインストーラーであり、何も壊さずに素早くパッケージをインストールおよび更新することができます。
このチュートリアルでは、Windowsマシンでパッケージを管理するためにScoopをインストールおよび使用する方法を学びます。
続けて読んで、複数のクリックスルーインストーラーに頼らなくても済むようにしましょう!
前提条件
このチュートリアルは実演形式です。一緒に進める場合は、管理者権限を持つWindows 10マシンが必要です。このチュートリアルではWindows 10 21H2を使用しています。
Scoop Windowsパッケージマネージャーのインストール
通常のパッケージマネージャーでソフトウェアをインストールまたは管理することに飽きた場合、Scoopが救世主となることがあります。しかし、Scoopは信じられないほどの機能を持っているにもかかわらず、デフォルトではシステムにインストールされていません。
Scoopを使用する前に、WindowsマシンにScoopをインストールする必要があります:
1. 管理者権限でPowerShellを開き、以下のSet-ExecutionPolicyコマンドを実行して実行ポリシーをRemoteSignedに設定します。これにより、自分で作成したまたはインターネットからダウンロードしたPowerShellスクリプトを実行できるようになります。
実行ポリシーの変更を確認するために、以下のようにYを入力してEnterキーを押してください。

2. 次に、以下のコマンドを実行してScoopのインストーラースクリプト(get.scoop.sh)をダウンロードし、そのスクリプトを昇格された特権でシステムにインストールします(-RunAsAdmin)。

今、以下のscoopコマンドを実行してScoopの利用可能なコマンドの一覧を表示します。
以下の出力により、Scoopが正常にシステムにインストールされたことが確認できます。

Scoopを使用してパッケージを検索およびインストールする
パッケージマネージャーを使用できるようになったので、Scoopを通じて何をインストールするかが気になるかもしれません。幸いなことに、Scoopではbucket
コマンドを使用してインストール可能なパッケージを検索することができます。
bucket
コマンドは、Scoopパッケージが含まれているすべてのリポジトリ(またはバケット)をリストします。これらのバケットは、Linuxで使用されるパッケージリポジトリのようなもので、利用可能なパッケージとその依存関係のリストが含まれています。
Scoopを使用してパッケージを検索してインストールするには、以下の手順を実行します。
1. 以下のScoopコマンドを実行して、ローカルで利用可能なバケットのリストを表示します。
下記の出力は、メインバケットに1083個のインストール可能なパッケージが含まれていることを示しています。
各Scoopバケットには、定期的に更新されるマニフェストファイルがあります。これらのファイルには、パッケージとその依存関係のインストール方法が記載されています。

2. 以下のコマンドを実行して、すべての利用可能なバケットから7zipなどの特定のパッケージを検索します。
以下の出力は、メインバケットから検索語「7zip」に一致する2つのパッケージ(7zipと7zip19.00-helper)が表示されています。また、各パッケージのバージョン番号も表示されています。

3. パッケージを見つけたら、以下のコマンドを実行して7zipパッケージをインストールします。
これで、7zipがインストールされ、使用準備ができています!プログラムをインストールするために複数のボタンをクリックする必要がないことに気づきましたか?プログラムのインストールにより、許可のポップアップが表示されなくなります。
Scoopを使用すれば、パッケージの名前を知っていれば、1行のコマンドでインストールできます。

4. 次に、以下の7zコマンドを実行して7zipのインストールを確認し、7zコマンドの利用可能なオプションのリストが表示されるはずです。
以下の出力は、7zが正常にインストールされたことを確認しています。しかし、複数のパッケージを一度にインストールする予定の場合は、次の手順でScoopに作業を任せましょう。

5. 最後に、以下のコマンドを実行して7zipとnodejsのパッケージをインストールします。
一つずつインストールする代わりに、一度に複数のパッケージをインストールできるので、なぜ一つずつインストールする必要があるのでしょうか?Scoopを使用すれば、インストールするパッケージをスペースで区切って指定できます。この機能は、インストールするパッケージのリストがすでにある場合に便利です。

Scoopを使用してパッケージを更新する
パッケージを更新することは、システムを健全に保つための方法の一つです。パッケージがインストールされると、Scoopは最新の機能やバグ修正を取得するのに役立ちます。
心配しないでください、Scoopを使用したパッケージの更新は、インストールと同じです。
1. scoop updateコマンドを実行して、Scoop自体を最新バージョンに更新し、アプリのマニフェストも更新します。

2. 次に、以下のコマンドを実行して、他のパッケージのScoopの状態を確認します。もし古くなっていれば、アウトデートと表示されます。
以下の出力は、Scoopが最新であることを示しています。

3. そして、以下のコマンドを実行して、特定のパッケージ(この場合は7zipパッケージ)を更新します。
パッケージを選択的に更新することで、特にプロジェクト作業中に何かを壊すリスクを排除できます。

おそらく、すべてのパッケージを更新したいと思うかもしれません。それなら、以下に示すように、同じscoop updateコマンドを実行し、*文字を追加してすべてのパッケージを同時に更新してください。

追加のバケット/バージョンの追加と複数のバージョンのパッケージのインストール
ご覧の通り、Scoopはバケットからパッケージをインストールします。そして、デフォルトでは、Scoopにはメイン、バージョン、エクストラなど、いくつかの有用なバケットが付属しています。
メイン以外の他のバケットからパッケージをインストールしたい場合は、Scoopをバケットについて知るように設定する必要があります。
1. 以下のscoopコマンドを実行して、コミュニティによって利用可能なバケットのリストを表示します。

2. 次に、以下のコマンドを実行して、javaバケットを追加します。
新しいバケットを追加した後、そのバケットからScoopでパッケージをインストールできます。

3. これで、以下のコマンドを実行して、javaバケットからopenjdkパッケージをインストールします。
このコマンドは、最新のバージョンのopenjdk(執筆時点ではv18)をインストールします。このパッケージは、Java Platform、Standard Editionのオープンソース実装です。多くのプログラムはJavaを実行するために必要なので、インストールすることをおすすめします。

Javaの異なるバージョンも指定してインストールすることもできます。以下に示すように、このコマンドを使用すると、複数のバージョンのJavaをシステムにインストールできます。
scoop install openjdk12

パッケージのバージョン切り替え
以前に示したように、異なるバージョンのJavaをインストールしたことがあるかもしれません。ただし、Java 18を必要とするプログラムとJava 12を必要とする別のプログラムがある場合、それらのバージョンを切り替える方法はありますか?
心配しないでください! Scoopは、reset
コマンドを使用して同じパッケージの異なるバージョンを切り替えることをサポートしています。
1. 以下のresetコマンドを実行してJava 12 (openjdk12)に切り替えます。

2. 次に、以下のjavaコマンドを実行して現在のアクティブなJavaのバージョンを確認します。
以下では、現在のアクティブなJavaはJava 12であることがわかります。

3. 今度は、以下のコマンドを実行して最新のパッケージバージョン(openjdk)に切り替えます。

4. 最後に、以下のjavaコマンドを再実行して現在のアクティブなJavaのバージョンを確認します。
以下の出力により、Java 18に切り替わったことが確認されます。

結論
パッケージのインストールと管理は複雑な作業ではありません。幸いにも、より便利なパッケージ管理のためにWindowsでScoopを使用する方法を学びました。Scoopを使用して同じパッケージの異なるバージョンをインストールおよび保持することができることに気付きました。
この時点で、システムにパッケージのインストールと更新に対してより自信を持つはずです。では、なぜ今度は自分自身のカスタムアプリケーションマニフェストを作成し、Scoopコミュニティと共有しないでしょうか?