Scoop Windowsパッケージマネージャのインストールと使用方法

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スクリプトを実行できるようになります。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

実行ポリシーの変更を確認するために、以下のようにYを入力してEnterキーを押してください。

Setting execution policy to RemoteSigned

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

Invoke-Expression "& {$(Invoke-RestMethod get.scoop.sh)} -RunAsAdmin"
Installing Scoop on Windows

今、以下のscoopコマンドを実行してScoopの利用可能なコマンドの一覧を表示します。

scoop -h

以下の出力により、Scoopが正常にシステムにインストールされたことが確認できます。

Confirming Scoop is installed and working correctly

Scoopを使用してパッケージを検索およびインストールする

パッケージマネージャーを使用できるようになったので、Scoopを通じて何をインストールするかが気になるかもしれません。幸いなことに、Scoopではbucketコマンドを使用してインストール可能なパッケージを検索することができます。

bucketコマンドは、Scoopパッケージが含まれているすべてのリポジトリ(またはバケット)をリストします。これらのバケットは、Linuxで使用されるパッケージリポジトリのようなもので、利用可能なパッケージとその依存関係のリストが含まれています。

Scoopを使用してパッケージを検索してインストールするには、以下の手順を実行します。

1. 以下のScoopコマンドを実行して、ローカルで利用可能なバケットのリストを表示します。

scoop bucket list

下記の出力は、メインバケットに1083個のインストール可能なパッケージが含まれていることを示しています。

各Scoopバケットには、定期的に更新されるマニフェストファイルがあります。これらのファイルには、パッケージとその依存関係のインストール方法が記載されています。

Listing available buckets

2. 以下のコマンドを実行して、すべての利用可能なバケットから7zipなどの特定のパッケージを検索します。

scoop search 7zip

以下の出力は、メインバケットから検索語「7zip」に一致する2つのパッケージ(7zipと7zip19.00-helper)が表示されています。また、各パッケージのバージョン番号も表示されています。

Finding the 7zip package

3. パッケージを見つけたら、以下のコマンドを実行して7zipパッケージをインストールします。

scoop install 7zip

これで、7zipがインストールされ、使用準備ができています!プログラムをインストールするために複数のボタンをクリックする必要がないことに気づきましたか?プログラムのインストールにより、許可のポップアップが表示されなくなります。

Scoopを使用すれば、パッケージの名前を知っていれば、1行のコマンドでインストールできます。

Installing the 7zitp package

4. 次に、以下の7zコマンドを実行して7zipのインストールを確認し、7zコマンドの利用可能なオプションのリストが表示されるはずです。

7z

以下の出力は、7zが正常にインストールされたことを確認しています。しかし、複数のパッケージを一度にインストールする予定の場合は、次の手順でScoopに作業を任せましょう。

Verifying that 7zip is installed

5. 最後に、以下のコマンドを実行して7zipとnodejsのパッケージをインストールします。

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

scoop install 7zip nodejs
Installing multiple packages with Scoop

Scoopを使用してパッケージを更新する

パッケージを更新することは、システムを健全に保つための方法の一つです。パッケージがインストールされると、Scoopは最新の機能やバグ修正を取得するのに役立ちます。

心配しないでください、Scoopを使用したパッケージの更新は、インストールと同じです。

1. scoop updateコマンドを実行して、Scoop自体を最新バージョンに更新し、アプリのマニフェストも更新します。

scoop update 
Updating packages with Scoop

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

scoop status

以下の出力は、Scoopが最新であることを示しています。

Checking for outdated packages

3. そして、以下のコマンドを実行して、特定のパッケージ(この場合は7zipパッケージ)を更新します。

パッケージを選択的に更新することで、特にプロジェクト作業中に何かを壊すリスクを排除できます。

scoop update 7zip 
Updating a specific package

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

Updating all packages

追加のバケット/バージョンの追加と複数のバージョンのパッケージのインストール

ご覧の通り、Scoopはバケットからパッケージをインストールします。そして、デフォルトでは、Scoopにはメイン、バージョン、エクストラなど、いくつかの有用なバケットが付属しています。

メイン以外の他のバケットからパッケージをインストールしたい場合は、Scoopをバケットについて知るように設定する必要があります。

1. 以下のscoopコマンドを実行して、コミュニティによって利用可能なバケットのリストを表示します。

scoop bucket known
Listing all available known buckets by the community

2. 次に、以下のコマンドを実行して、javaバケットを追加します。

scoop bucket add java

新しいバケットを追加した後、そのバケットからScoopでパッケージをインストールできます。

Adding the java bucket

3. これで、以下のコマンドを実行して、javaバケットからopenjdkパッケージをインストールします。

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

scoop install openjdk
Installing the openjdk package

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

scoop install openjdk12

Installing a different version of openjdk

パッケージのバージョン切り替え

以前に示したように、異なるバージョンのJavaをインストールしたことがあるかもしれません。ただし、Java 18を必要とするプログラムとJava 12を必要とする別のプログラムがある場合、それらのバージョンを切り替える方法はありますか?

心配しないでください! Scoopは、resetコマンドを使用して同じパッケージの異なるバージョンを切り替えることをサポートしています。

1. 以下のresetコマンドを実行してJava 12 (openjdk12)に切り替えます。

scoop reset openjdk12
Switching to Java 12

2. 次に、以下のjavaコマンドを実行して現在のアクティブなJavaのバージョンを確認します。

java --version

以下では、現在のアクティブなJavaはJava 12であることがわかります。

Confirming current active Java version

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

scoop reset openjdk
Switching back to the latest version of Java

4. 最後に、以下のjavaコマンドを再実行して現在のアクティブなJavaのバージョンを確認します。

java --version

以下の出力により、Java 18に切り替わったことが確認されます。

Checking Java’s current active version

結論

パッケージのインストールと管理は複雑な作業ではありません。幸いにも、より便利なパッケージ管理のためにWindowsでScoopを使用する方法を学びました。Scoopを使用して同じパッケージの異なるバージョンをインストールおよび保持することができることに気付きました。

この時点で、システムにパッケージのインストールと更新に対してより自信を持つはずです。では、なぜ今度は自分自身のカスタムアプリケーションマニフェストを作成し、Scoopコミュニティと共有しないでしょうか?

Source:
https://adamtheautomator.com/scoop-windows/