ゆるおたノート

Tomorrow is another day.

【PowerShell】パッケージ・プロバイダを使って、コマンドでパッケージを導入しよう

前回は、PowerShellを使ったパッケージ・プロバイダのインストール手順を
ご紹介しました。 yuru-wota.hateblo.jp

これで、ソフトウェアを入れる準備は完了しています。

このままアプリケーションのパッケージを入れちゃいましょう。

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

パッケージの検索。

まずは、入れたいソフトがパッケージとして配布されているかを確認します。
自分の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

さすがにちょっと時間かかりますが、こんな感じに出ます。

f:id:yuricks7:20180605003940p:plain
晒しちゃいますが、ここに個人情報は無いはず。。。

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

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

試しに、今度は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触ったりはするけど、
『あの』黒い画面はちょっと怖くて触れない…という方。

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

次回

yuru-wota.hateblo.jp

連載目次

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

注釈

*1: ダウンロードだけのコマンドは今のところ見つけられませんでした。
<2019/05/04 追記>
save-Commandというコマンドがありました。
yuru-wota.hateblo.jp

*2: by こぶしファクトリー
▼参照
www.youtube.com

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

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

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

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