LoginSignup
49
57

More than 3 years have passed since last update.

Scoopを使った環境構築

Posted at

Scoop とは

ScoopはWindows用のパッケージ管理ツールです。
Scoopを導入することでUbuntuの apt 、RHLE/CentOSの yum 、macの brewのようなことができるようになります。

Windowsにおけるツール類のインストール作業コストはかなり高いのですが、Scoopを入れることにより、各種モジュールをコマンド一発でインストールすることが可能になります。
その際には依存モジュールも自動的にインストールしてくれます。

例えばGit(Git for Windows)をScoopでインストールする場合、 scoop install git の一文だけで完了します。
公式サイトを探してインストーラをダウンロードしてきたり、インストールオプションをダイアログで選択する手間が省け、再現性のある環境構築が可能です。

また、Scoopでインストールされるモジュールは、個人フォルダ内に配置されるため管理者権限が不要だったり、アンインストールも(基本的には)モジュールの配置フォルダを消すだけなので、環境を比較的綺麗に維持できます。
一応バージョンコントロールも出来ますが、ちょっと癖があります。

必要要件

ScoopをインストールするにはPowerShell 5と.Net Framework 4.5以上が必要になります。
Windows 10を使っている限りは、この要件を満たしています。
なお、インストール用のスクリプトをダウンロードしてくるため、インターネットへの接続が必要になります。

Scoopのインストール

Scoopをインストールするには上記の要件を満たした上で、PowerShellをから下記のコマンドを実行します。

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

ポリシー変更のために以下のメッセージが表示されるので Y を押してください。

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the
about_Execution_Policies help topic at https:/go.microsoft.com/fwlink/?LinkID=135170.
Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

以下のようなメッセージが出たら、インストールは完了です。

Initializing...
Downloading scoop...
Extracting...
Creating shim...
Downloading main bucket...
Extracting...
Adding ~\scoop\shims to your path.
'lastupdate' has been set to '2020-08-19T11:27:12.6461118+09:00'
Scoop was installed successfully!
Type 'scoop help' for instructions.

Scoopを使ったGitのインストール

Scoopを利用して、インストール作業を行ってみます。
今後の作業で必要になるので、手始めに Git をインストールしておきます。
Scoopでは基本的に scoop install でモジュールのインストールを行います。
Git をインストールするには以下のコマンドを実行してください。

scoop install git

下記のような表示が出て、インストールが実行されます。

Installing '7zip' (19.00) [64bit]
7z1900-x64.msi (1.7 MB) [===================================================================================================================================] 100%
Checking hash of 7z1900-x64.msi ... ok.
Extracting 7z1900-x64.msi ... done.
Linking ~\scoop\apps\7zip\current => ~\scoop\apps\7zip\19.00
Creating shim for '7z'.
Creating shortcut for 7-Zip (7zFM.exe)
'7zip' (19.00) was installed successfully!
Installing 'git' (2.28.0.windows.1) [64bit]
PortableGit-2.28.0-64-bit.7z.exe (44.7 MB) [================================================================================================================] 100%
Checking hash of PortableGit-2.28.0-64-bit.7z.exe ... ok.
Extracting dl.7z ... done.
Linking ~\scoop\apps\git\current => ~\scoop\apps\git\2.28.0.windows.1
Creating shim for 'git'.
Creating shim for 'gitk'.
Creating shim for 'git-gui'.
Creating shim for 'tig'.
Creating shim for 'git-bash'.
Creating shortcut for Git Bash (git-bash.exe)
Creating shortcut for Git GUI (git-gui.exe)
Running post-install script...
'git' (2.28.0.windows.1) was installed successfully!

Gitをインストールする過程で依存モジュールとして 7zip もインストールされます。
(7zip は圧縮解凍ソフトとしては非常に強力ですのでオススメです)

なお、Scoopでインストールされたモジュールはデフォルトでは %userprofile%\scoop\apps に配置されます。
また、%userprofile%\scoop\shims にPATHが通されており、ここに実行用のスクリプトが配置されています。
GUIのあるようなものは下図のようにWindowsメニューのScoop Apps内にショートカットが作成されます。

image.png

ダウンロードの高速化 (マルチセッション対応)

aria2 をインストールすると、Scoopにおけるファイルのダウンロードがマルチセッションになり、効率的にダウンロードできるようになります。
導入しておくことをおすすめします。

scoop install aria2

以下のような表示が出ればインストール完了です。
aria2は自動的に有効化され、以降の操作で利用されます。

Installing 'aria2' (1.35.0-1) [64bit]
aria2-1.35.0-win-64bit-build1.zip (2.1 MB) [==================================================================] 100%
Checking hash of aria2-1.35.0-win-64bit-build1.zip ... ok.
Extracting aria2-1.35.0-win-64bit-build1.zip ... done.
Linking ~\scoop\apps\aria2\current => ~\scoop\apps\aria2\1.35.0-1
Creating shim for 'aria2c'.
'aria2' (1.35.0-1) was installed successfully!

bucketの追加と Google Chromeのインストール

私がWindows環境を立ち上げて一番最初に行うことは Google Chrome をインストールすることです。
これをScoopを使ってやってみます。
Google Chromeは scoop install でインストール可能ですが、そのままではインストールすることができません。
Scoopには bucket という概念があり、今までインストールした Gitaria2 などの基本コマンドは main というbucketに含まれてています。
main bucketに含まれているモジュールはデフォルトでインストール可能です。

まずはGoogle Chromeがどのbucketに含まれているかを探します。
以下のコマンドを実行することで、モジュールを検索します。

scoop search googlechrome

コマンドを実行すると以下のように表示されます。

Results from other known buckets...
(add them using 'scoop bucket add <name>')

'extras' bucket:
    bucket/googlechrome-beta
    bucket/googlechrome-canary
    bucket/googlechrome-dev
    bucket/googlechrome-portable
    bucket/googlechrome

'extras' bucket: という部分が、モジュールを含んでいるbucketになります。
Google Chromeの場合、 extras というbucketに含まれていることになります。

そこで、このextras bucketを利用できるようにするために、以下のコマンドを実行してbucketの追加を行います。

scoop bucket add extras

以下の表示が出ればbucketの追加は成功です。

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

なお、bucketを追加するためには Git が必要になるため、事前に Git をインストールしてください。
(本手順ではインストール済みです)

他にどのようなbucketがあるかは、以下を参照してください。
【Known application buckets - GitHub】

extras bucketの追加が完了したら、scoop install コマンドでGoogleChromeをインストールします。

scoop install googlechrome

以下の表示が出れば、インストールは完了しています。

Running installer script...
Linking ~\scoop\apps\googlechrome\current => ~\scoop\apps\googlechrome\85.0.4183.83
Creating shim for 'chrome'.
Creating shortcut for Google Chrome (chrome.exe)
'googlechrome' (85.0.4183.83) was installed successfully!

なお、インストールされたGoogle Chromeを実行するにはコマンドプロンプトまたはPowerShellのコンソールから chrome と打つか、Windowsメニューの「Scoop Apps」内のショートカットから実行することができます。

VisualStudio Codeをインストールする

続いてScoopでVisualStudio Code(以下VSCode)をインストールします。
VSCodeも extras に含まれているので、事前にbucketの追加が必要です。
(本手順では追加済みです)

scoop install vscode

インストールが完了すると、以下のようなメッセージが表示されます。

Download: (OK):download completed.
Checking hash of dl.7z ... ok.
Checking hash of vscode-install-context.reg ... ok.
Checking hash of vscode-uninstall-context.reg ... ok.
Extracting dl.7z ... done.
Linking ~\scoop\apps\vscode\current => ~\scoop\apps\vscode\1.48.2
Creating shim for 'code'.
Creating shortcut for Visual Studio Code (code.exe)
Running post-install script...
'vscode' (1.48.2) was installed successfully!
Notes
-----
Add Visual Studio Code as a context menu option by running: "C:\Users\hogehoge\scoop\apps\vscode\current\vscode-install-context.reg"

上記メッセージの最後にコンテキストメニューに関するNotesが表示されています。
インストールした状態ではエクスプローラのコンテキストメニューからVSCodeを実行することが出来ないため、コンテキストメニューを追加したい場合はメッセージの指示に従いScoopによって提供されているレジストリファイル vscode-install-context.reg をレジストリにマージしてください。
レジストリファイルの保存先はメッセージを確認してください。
(本例では C:\Users\hogehoge\scoop\apps\vscode\current\ になります)

このように、scoop install 後に操作が必要な場合はメッセージが表示されますので、見逃さないようにしてください。

環境構築スクリプト

上記の一連の操作 + α をスクリプト化してみました。
スクリプト化しておくことで、常に同じ環境を作成することが可能になります。
いちいちインストーラをダウンロードしてきたり、ダイアログ操作でインストールオプションを指定する必要はありません。
例えばチーム開発で同じ環境に揃えたい場合や、繰り返し行うサンドボックス内でのテスト環境構築などで非常に有効です。

scoopをインストールしてGitおよびVSCodeをインストールする
##################################################
# install Scoop
##################################################
# インストールディレクトリの設定 (user)
#$env:SCOOP='D:\Applications\Scoop'
#[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

# インストールディレクトリの設定 (global)
#$env:SCOOP_GLOBAL='D:\GlobalScoopApps'
#[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

try {
  # Scoopのインストール確認
  get-command scoop -ErrorAction Stop
} 
catch [Exception] {
  # Scoopのインストール
  Set-ExecutionPolicy RemoteSigned -scope CurrentUser
  Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
}

# install basic module
scoop install aria2
scoop install git
scoop install sudo

# add bucket
scoop bucket add extras
scoop bucket add versions

# Scoopのインストールディレクトリの取得
$SCOOP_ROOT = if ($env:SCOOP) {$env:SCOOP} else {"$home\scoop"}



##################################################
# install Google Chrome
##################################################
scoop install googlechrome

##################################################
# install vscode
##################################################
scoop install vscode
reg import $SCOOP_ROOT\apps\vscode\current\vscode-install-context.reg  # add context menu

##################################################
# install slack
##################################################
scoop install slack

##################################################
# install VC Runtime
##################################################
scoop install vcredist2019

本スクリプトでは、まずScoopコマンド確認し、確認できない場合はScoopのインストールを行います。
それ以前のコメントアウト部分は、ScoopおよびScoopによってインストールされるモジュールのインストール先を指定するための記述になります。
必要に応じて変更してください。

Scoopのインストールが完了したら、必要なモジュールをインストールしています。
aria2gitsudo をインストールした後に extras bucket を追加して、 Google ChromeVSCodeSlackVC Runtimeをインストールしています。

なお scoop install コマンドは、何も指定しない場合は最新バージョンを取得してきます。
従って、上記で提示したスクリプトでは実行するタイミングにより異なるバージョンがインストールされてしまい、100%再現性のある環境を構築できません。
バージョンコントロールもできるのですが、ちょっと癖があるので別の機会で記述したいと思います。

49
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
57