Chapter 04無料公開

パッケージマネージャを導入する

数寄屋
数寄屋
2021.02.14に更新

パッケージマネージャとは、その名前の通り、パッケージ(ソフトウェア)を管理するものです。
 ソフトウェアのインストールを行い、そのバージョンを記録し、更新があればアップデートし、削除する場合は削除する、ということを一括で行います(厳密にはWindowsではいろいろとややこしい問題があり、パッケージマネージャからの削除がうまくいかないソフトウェアもありますが、ここでは説明を割愛します)。
 ちなみに、Microsoftが開発中のwingetというWindows10用のパッケージマネージャもありますが、こちら現在まだ正式版ではなく、まだ様子見をすべき段階だと考えています。
 したがって、現在使っていて安定感のあるchocolateyscoopのインストール方法をこのチャプターでは説明しています。

導入準備

PowerShellを管理者権限で実行しておいてください([左下Winマーク]→[右クリック]→[Windows PowerShell (管理者)]を選択、ユーザーアカウント制御でPowerShellが管理者権限で起動する許可を求めてくるので許可)。

Chocolatey

ChocolateyはWindowsのパッケージマネージャの中でもそれなりに有名で、かなりのパッケージ数を誇ります。
 本書ではVisual Studio Build Tools 2019およびVSCodeのインストールと管理担当。

1. インストールコマンドを実行

chocolateyのインストール案内(トップページからGett Startedをクリックしても飛べます)に書いてある通り、

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

をPowerShellに貼り付け、エンターを押して実行します。なお、このコマンドは2020年9月24日執筆当時のものですので、念のためインストール案内からコピーして実行することをお勧めします(押すだけでコマンドをクリップボードにコピーできるボタンもあるので、コピペも楽です)。
ちなみにproxy越しの場合など、これではインストールできない場合への対応案内へのリンクも存在しますので、そういった感じで環境が違う場合はチェックしてみてください。

2. 少し待つ

そこそこ大きなパッケージマネージャということもあり、エンターを押してから少し待つことになります。

3. コマンド終了後エラー確認

コマンド終了後、特にエラーもなく終わっていることを確認すれば、Chocolateyのインストールは完了です。
choco等と打ってみて、コマンドが作動しているか確認してみてください。

4. 権限を戻す

インストールスクリプトによってExecutionPolicyがBypassになっています(おそらくそのPowerShellプロセスだけですが)。
 これではセキュリティ上危ないことがままあるようですので、
 続いてsccopをインストールする場合は

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

これで終了する場合は

Set-ExecutionPolicy [権限: RemoteSignedかRestrict] -Scope Process -Force

とします。これ以後の実行ポリシーをより厳しくしたい場合はRestrictになりますが、場合によってはscoopとかchocolateyが動かないかもしれません。

scoop

コマンドラインで簡単にソフトウェアがインストールできる(というものを目指して作られたらしい)パッケージマネージャ。色々と開発用のソフトウェアやコマンドを導入することができます。
 最初からインストールできるbucket(ソフトウェアのリストのようなもの)からインストールする場合、パーミッションのためのポップアップを表示させないように、権限のいらないフォルダにソフトウェアが配置されます。ユーザアカウント制御の手間を省いて環境構築したいという場合に便利です。

本書ではrustupのインストールと管理担当。

1. インストールコマンドを実行

公式サイトにある通り、

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

もしくは

iwr -useb get.scoop.sh | iex

を実行します(念のため、こちらもできれば公式サイトに書いてあるインストールコマンドをコピー&ペーストすることをお勧めします)。

ExecutionPolicy等のエラーが出た場合、chocolateyのインストールの最後に書いたように、

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

でExecutionPolicyを変更してみてください。

2. インストールコマンドが終了するまで待つ

インストールが成功した旨が英語で出るなどして、インストールコマンドが終了したらインストール完了です。
scoop helpでscoopのヘルプを確認できます。

ちなみに

.Net Framework 4.5以降が必要だとサイトに書いてありますが、Windows10でそこそこアプデをしていたらプリインストールされている模様なので、Windows10であればおそらく特に対応はいらないでしょう。

インストール後の後始末

これら2つをインストールするために、ExecutionPolicyというものを変更しました。これを希望のポリシーに戻します。
まずchocolateyに対応して、

Set-ExecutionPolicy [権限] -Scope Process -Force

を実行([権限]にはRestrictかRemoteSignedを入れる)してBypassから権限を戻し、
scoopに対してはRestrictにしたい場合のみ

Set-ExecutionPolicy -ExecutionPolicy Restrict -Scope CurrentUser

にします。

セキュリティポリシーについて詳しくはこちら(詳しく書かれている外部サイト)等、検索すると出てきますし、本書の要ではありませんので、割愛します。