ゆるおたノート

Tomorrow is another day.

【PowerShell】パッケージ・プロバイダからパッケージを貰おう

前回は、PowerShellを使ったパッケージ・プロバイダのインストール手順をご紹介しました。 【PowerShell】コマンドを使ってパッケージ・プロバイダをインストールしよう - ゆるおたノート

これで、ソフトウェアを入れる準備は完了しています。
このままアプリケーションのパッケージを入れちゃいましょう。

パッケージのダウンロードとインストール

パッケージの検索。

まずは、入れたいソフトがパッケージとして配布されているかを確認します。
今回は自分のPC内ではなく外部のネットワークから検索するので、今度はgetではなくfindを使います。

それを踏まえて、下記のように入力してみましょう。

find-Package -Name *** # ←***の部分に好きなソフトの名前を入れてみてください。

検索したパッケージが公開されていたら、一覧に出力されます。
試しに、私もEvernoteで検索してみました。

Name                           Version          Source           Summary
----                           -------          ------           -------
evernote                       6.17.7.8474      chocolatey       A cross-platform, freemium app designed fo...

evernoteというパッケージが1件ヒットしました。

chocolateyというパッケージ・プロバイダで、evernoteなるパッケージのver. 6.17.7.8474が配信されているようです。
※バージョンは執筆・編集時点のものです。

今回は、これをダウンロードしてみます。
以下、必要に応じてEvernoteの部分を欲しいソフトウェアの名前で読み替えてお試し下さい。

パッケージをダウンロード。

検索してヒットしたら、最近の更新状況を確認してみましょう。
Google先生Chocolatey パッケージ名と検索して、Chocolatey Galleryを開いてみてください。

こちらはEvernoteのパッケージ(ver. 6.17.7.8474)のページです。
最新のEvernoteパッケージ

英語表記ですが、赤枠のところを確認すると、最新の更新は半月ほど前の2019年4月19日に承認されたようです。

続いて画面を下の方にスクロールして、このパッケージについてのコメントを読んでみます。
これも英語ですが、現在のバージョンについて特に異常の報告は挙がってなさそうなので、このままダウンロードしたいと思います。

それでは早速、PowerShellさんに戻って以下のように依頼します。

# プロバイダー名は省略可
install-Package Evernote -ProviderName chocolatey

こちらのコマンドは、chocolateyという名前のプロバイダから配布している、Evernoteというパッケージをインストールして」という意味です。

このようにオプションとして-ProviderName以下を付け加えることで、使用するパッケージ・プロバイダを指定してダウンロードすることができます。
パッケージを検索したら同じ名前のものが複数のプロバイダから配信されている、といった場合に有効です。

もちろんコレは省略することも可能なので、数が少ないときはあえて書かなくても問題は無いでしょう。

…インストール?

ところで勘の良い方は気付いているかもしれませんが、今やりたいのはダウンロードなのに、コマンドはinstallです。

…何故だと思いますか?

パッケージの操作では、パッケージ・プロバイダの場合とは違いinstall-Packageダウンロードからインストールまで一気に行うコマンド*1だからです。

そういうワケで、実行したらそのままインストールまで進んでしまうことも頭の片隅に入れて操作しましょう。
悪意のあるコンテンツが入っていないとも限らないので…

パッケージをインストール。

さて、先ほどのコマンドを実行するとこのように↓ポップアップが出ます。

パッケージは、信頼済みとマークされていないパッケージ ソースから取得されています。
'chocolatey' からソフトウェアをアンインストールしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): a 'と入力すればOK

何故か「信頼済みとマークされていないパッケージ ソース」とか「アンインストールしますか?」とか言われるのですが、これは誤訳みたいです。
なかなか怖いこと言いますよねぇ…

そこで、ここは違和感をグッとこらえてa(すべて実行)を選択して、実行します。
その後はインストールが終わるまで少し待ってください。
パッケージの容量によって異なりますが、数秒~数分程かかります。

インストールが完了したら、「デスクトップ」のショートカットかスタートメニューの「最近追加した項目」に表示されていると思うので、確認しましょう。

なぜわざわざこんなことを言うのかと言うと、
動作が不安定らしく、ダウンロード出来てないのにエラーメッセージすら出ないこともあるからです…

念には念で、コマンドでも確認してみましょう。
ねんねん ねんね ねんねんねん ねねん♪*2

get-Package -Name Evernote

こんな風に出ました。

Name                 Version          Source                           ProviderName
----                 -------          ------                           ------------
evernote             6.17.7.8474      C:\Program Files (x86)\Everno... chocolatey

CドライブのProgram Files (x86)というフォルダに、chocolateyを使ってインストール出来ています!

これで大丈夫!やったー!!

もう1度復元ポイントを作成

最後に実行ポリシーをRestrictedに戻して、成功した記念にもう1度復元ポイントも作成しておきましょう。

転ばぬ先の杖ということで!

ここまで出来たら、パッケージのインストールは完了です!
お疲れさまでした!!!

そういえば…

このPCに入っているのは?

パッケージ・プロバイダの時と同じように、名前を指定せずに実行すると「このPC内のパッケージ全て」という情報を取得することも出来ます。

get-Package

パッケージ・プロバイダと違って数が多いのでさすがにちょっと時間かかりますが、こんな感じに出ます。
(ここに個人情報は無いと思いたい。。。)
私のPCに入っているパッケージ一覧

スペルがあやふやな時は?

パッケージ名は英語なので、スペルや名前がうろ覚えなこともありますよね。
そんな時も大丈夫です。

試しに、今度はGoogle Chromeを探してみましょう*3
下記を入力して実行してみてください。

find-Package -Name *chrome

ナントカchromeのパッケージが山ほどヒットします。
さっき以上に時間がかかるかと思います。

Name                           Version          Source           Summary
----                           -------          ------           -------
plex-chrome                    2.12.8.002018... chocolatey       Plex Chrome extension
adblockpluschrome              1.12.4           chocolatey       Chrome extension that blocks advertising while you browse.
addtoany-chrome                3.0.4            chocolatey       Chrome extension to add share options to MANY popular sites.
amazon-assistant-chrome        10.1610.8.1201   chocolatey       Amazon Assistant Chrome extension
 
# (長いので以下略)

chromeの前に付いているワイルドカードと言います。
トランプのジョーカーみたいなもので、「何が入ってもいいよ」という意味です。

つまり、このコマンドでは「ナントカchromeって名前のパッケージが存在するか確認して~」とお願いしています。

ワイルドカードは入れる位置や数も自由なので、例えばchrome**c*ro*eのようにも使えます。
まぁ、後者はちょっと極端な例ですが、割とザックリで探せるのです。

メジャーなソフトウェアであれば、工夫して探せば恐らく何かしらのパッケージは見つけられるはずです。
プロバイダやワイルドカードを組み合わせて、上手に検索しましょう。

おわりに

いかがだったでしょうか。

覚えることは少ないけれど、結構できることが多いPowerShell
パッケージ管理はその内のほんの一部ですが、黒い画面への恐怖心を少しでも減らすことができたなら幸いです。

一連の記事は可能な限り噛み砕いたつもりではありますが、読みづらいところ、誤り等があればぜひご指摘ください。

また、本連載で紹介した以外にも、シェルコマンドとか素敵なテクニックが色々あるので、興味のある方は勉強してみてください*4

シェル系の言語は事務職向けの説明が少ないのでちょっと難しいかもしれません*5が、これを乗り越えたらドヤ顔で帰れます!
一緒に事務員ノンプログラマーになりましょう!

それでは、長くなりましたがここまでお付き合いいただきありがとうございました!

このシリーズについて

黒い画面(CUI)でPCを操作するテクニックをご紹介。

以下の方を対象に、Windows10のPowerShellを使ってパッケージを導入する手順をお送りしています。

プログラムには少し興味があって仕事でVBA触ったりはするけど、
『あの』黒い画面はちょっと怖くて触れない…という方。

疑問点・不明点がありましたら、コメント欄で頂ければと思います!

次回

【おまけ】PowerShellで出来ることを知って、もう1つだけレベルを上げよう - ゆるおたノート

連載目次

  1. 【PowerShell】プログラムのプの字も知らない事務職が、黒い画面と格闘した話。 - ゆるおたノート
  2. 【PowerShell】超簡単にソフトを取り込む準備を始めよう - ゆるおたノート
  3. 【PowerShell】「そもそもパッケージって何?」っていうあなたに、少し説明します。 - ゆるおたノート
  4. 【PowerShell】コマンドを使ってパッケージ・プロバイダをインストールしよう - ゆるおたノート
  5. 当記事【PowerShell】パッケージ・プロバイダからパッケージを貰おう - ゆるおたノート
  6. 【おまけ】PowerShellで出来ることを知って、もう1つだけレベルを上げよう - ゆるおたノート

注釈

*1: ダウンロードだけのコマンドは今のところ見つけられませんでした…
<2019/05/04 追記>
save-Commandというコマンドがありました。
【おまけ】PowerShellで出来ることを知って、もう1つだけレベルを上げよう - ゆるおたノート

*2: by こぶしファクトリー
▼参考
https://www.youtube.com/watch?v=960j3j-XR4g

*3:Chromeくらい分かるよ!」というツッコみは胸にしまっていただけたら…いい例が見つからなかったのです…

*4: 今回の連載では、分かりやすさを重視して敢えてコマンドと表現していますが、PowerShellの世界ではこれをコマンドレットと呼びます。
勉強の際は、あらかじめ覚えておくと少し幸せになれるかもしれません。

詳しくは*1のリンク先(おまけ記事)をご参照ください。

*5: 少なくとも私には難しいです。。。●iitaとか●iitaとか●iitaとか…