パッケージマネージャ―(scoop)導入してみた
Windows PC でアプリをインストールするときにパッケージマネージャがあるといいと思ったので、scoopをインストールして使うようにしてみた。
別にwingetでもいいんだけど…も…。
コマンドラインでアプリの更新とかできる方が楽だし何入れたかもわかりやすいしね。実際にインストールする方法は難しくない。PowerShellで2行打つだけ。
PowerShellでスクリプト実行ポリシーを変更する
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Powershell 5.1 or Later でってことになってますが普通にWindowsPCを家で使ってるような場合なら、ここはあまり気にする必要はないと思う。(5.1が入ってなかったら驚きだよ)
コマンドそれぞれの意味はchatGPT等に投げればやさしく解説してくれるが、最初に'Set-ExecutionPolicy'でPowerShell のスクリプト実行ポリシーを変更している。現在の実行ポリシーについて確認するときには次のコマンドを使用する。
PS C:\Users\htrkwn> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned
自分のは既に変更しているのでこんな感じになっていましたがLocalMachineも変更になってるのどうしてだろ(と思ったがスコープの優先度によるもの)? では次のコマンドを入力します。
インストールスクリプトの実行
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Invoke-RestMethodはREST APIを叩くコマンドレットのようだ。
そしてパイプで繋いで、Invoke-Expressionでスクリプトを実行している。
ちなみに https://get.scoop.sh/ にアクセスすると、スクリプトの内容が分かる。
とりあえずこれでパッケージマネージャ―入門することができたはず。よしよし。
余談
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine
管理者権限で起動したPowerShellでLocalMachineの実行ポリシーを変更してみよう……次のような文章が赤文字で表示されたので一瞬エラーかと思った。しかしながら "but the setting is overridden by a policy defined at a more specific scope." とあるようにより特定のスコープで定義されたポリシーによって上書きされているから現在のRemoteSignedのままだよと教えてくれた。
Set-ExecutionPolicy: PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of RemoteSigned. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more information please see "Get-Help Set-ExecutionPolicy".
ちなみに管理者権限なしで実行しようとすると次が出る。こっちはエラー。
Set-ExecutionPolicy: Access to the path 'C:\Program Files\PowerShell\7\powershell.config.json' is denied.
To change the execution policy for the default (LocalMachine) scope, start PowerShell with the "Run as administrator" option. To change the execution policy for the current user, run "Set-ExecutionPolicy -Scope CurrentUser".
管理者権限について触れてるが、CurrentUserスコープの実行ポリシー変更であれば、管理者権限は要求されないので管理者権限がないPC使ってる時にRemoteSignedは欲しいな…って人も使える。らしい。
いいなと思ったら応援しよう!
