5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ディップAdvent Calendar 2019

Day 4

ScoopをQiitaにも公式にもWikiにも書いてなかったのでChocolateyの様にcmd.exeでインストールしてみた

Last updated at Posted at 2019-12-03

~Scoop を Qiita にも 公式 にも Wiki にも書いてなかったので Chocolatey の様に cmd.exe でインストールしてみた~の紹介

拝啓背景

  1. とある ツール をインストールしようと思ったらパッケージマネージャーが choco ではなく scoop だったので試しに導入してみようとインストール情報を検索してみた

  2. どこを探しても PowerShell オンリー

  3. じゃあ帰るか・・・

※今までWindows環境でのパッケージマネージャーは Chocolatey オンリーで PackageManagement とかは PowerShell なので無理なんです・・・ごめんなさい。

  • とは言え Chocolatey だって基本 powershell.exe 推しでもドキュメントを探せば書いてあったし Google 先生に訊いてみる

    • Wikipowershell.exe 推しページがあった
      • cmd.exe については、どこにも見当たらない
    • 公式だけでなくQiitaにも見当たらない
  • 絶 望 的

と言うことで(主にChocolateyを参考に)試してみたのでご紹介します。

環境

  • Microsoft Windows 10 Enterprise
    • 64 ビット
    • 10.0.18363 (バージョン 1909 OSビルド 18363.476)
  • (社内認証)プロキシ サーバー 有
    • インターネット オプション→接続→LANの設定→自動構成

結論

  • とにかく結果だけ知りたい方へ
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -Command "[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"
  • プロキシが必要ない場合はコチラ
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -Command "Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"

失敗も含めて時系列に

  • :one: とりあえず Chocolatey を参考に 公式 の下部にある「Installs in seconds」を試す → NG
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"

NG.PNG

  • :two: Wiki を参考にプロキシを通す → NG
    • ※プロキシが必要ない環境なら起こらないはずなのでスルーしてください
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"

NG2.PNG

  • :three: 実行ポリシーがないとこのとなので、アドバイス通り PowerShell に「Restricted」のポリシーを付与 → NG
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -scope CurrentUser -Command "[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"

NG3.PNG

  • :four: 外部からの呼び出しにスコープは指定出来ないので除く → OK
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -Command "[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')"

OK.PNG

  • :five: 別プロセスで立ち上げた コマンド プロンプト でインストール出来たか確認 → OK
    • ※インストールスクリプトで設定された環境変数(Path)が読み込まれていないため
cmd.exe
scoop help

OKOK.PNG

おまけ

  • :six: 当初の目的である ツール をインストールする前に検索してみる → NG
cmd.exe
scoop search switchhosts

OKOKNG.PNG
OKOKNG_.PNG

  • :seven: どうやら「main」bucket には入っていないようなので「extras」を追加して再度検索してみる → OK
cmd.exe
scoop bucket add extras
cmd.exe
scoop search switchhosts

OKOKNGOK.PNG

  • :eight: インストール → NG
cmd.exe
scoop install switchhosts

OKOKNGOKNG.PNG

  • :nine: Wiki に「匿名認証」と書いてあったため scoop config proxy user:password@default を実行し再度インストール → NG
    • ※諸事情により今回は cntlm (localhost:3128) を利用しています
cmd.exe
scoop config proxy localhost:3128
cmd.exe
scoop install switchhosts

OKOKNGOKNGNG.PNG

  • :ten: 先ほどのエラー時に既にインストール済となってしまっているようなので、アンインストール→再インストール → OK
    • ※「switchhosts」は「7zip」に依存している(ダウンロードファイルが7zipで圧縮されていた)らしく自動でインストールされた
cmd.exe
scoop uninstall 7zip
cmd.exe
scoop uninstall switchhosts
cmd.exe
scoop install switchhosts

OKOKNGOKNGNGOK.PNG

感想

PowerShell から逃げていたばかりに無駄な時間を費やしてしまいましたが、なんとか?なりました!

基本 Chocolatey のみでやり繰りしていますが Scoop もなかなか良いと思いました。

Scoop 自体についての情報は Qiita 等に詳しく説明されていると思いますので調べてみてください。

(PowerShell 覚えないといけないかなぁ・・・)

5
1
1

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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?