chocolateyでアプリを管理しよう

この記事は [ウェブクルー Advent Calendar 2020](https://qiita.com/advent-calendar/2020/webcrew)の8日目の記事です。
7日目は @ayuko902ayuko さんの「[ZOHOで劇的に変わったこと3選](https://qiita.com/ayuko902ayuko/items/d615fada8f5bd06a01f1)」についてでした。
8日目は @wchikarusato が担当いたします。宜しくお願いします。

----
# はじめに
windowsでアプリをインストールしたい場合、大抵は以下の手順を踏むと思います。

~~~
ブラウザでアプリのダウンロード場所を探す
↓
ダウンロード
↓
インストーラー起動
↓
はい押しまくる
↓
完了(物によっては再起動を要求される)
~~~

また、アンインストールする場合、大抵は以下の手順になると思います。

~~~
設定のアプリから超頑張ってアプリを探す
↓
アンインストーラー起動
↓
はい押しまくる
↓
削除完了(物によっては再起動を要求される)
~~~

特に目で頑張って探すというのがかなり面倒ですね。
アップデートに至っては偶にホームページに飛ばされてページ内を更に探さないといけなかったりで更に面倒くさい。
Debian系でいうapt-getの様なコマンド一発でインストール、アップデート、アンインストールが出来たら楽なのにな～
という願いを叶えてくれるかもしれないのが本稿で紹介するchocolateyになります。

# インストール
https://chocolatey.org/install#installing-chocolatey

具体的な手順は上記ページを参照ください。
簡単に書くと、上記ページの『Now run the following command:』下に書かれてる
コマンド横のコピーアイコンのボタンを押したら、powershellを管理者権限で起動して貼り付けて実行

~~~
> choco
~~~
で反応があればokです

# アプリのインストール、アップデート
以下にインストール、アップデート、アンインストールのコマンドを書きます。

~~~
1. アプリの検索
アプリ名を英字にしたり英字の一部を使ったりしてアプリ名を検索します
> choco find 検索したいアプリ名の文字

2. インストール
1.でアプリがあった場合は、該当したアプリ名をコピーして以下のコマンドでインストールします
> choco install アプリ名

3. アップデート
以下のコマンド一発でインストールしたもの全てをアップデートします。
余り詳しく見てないですがupdate、upgradeどっちでも使える様です
> choco upgrade all -y

4. アンインストール
以下のコマンド一発でアンインストールが出来ます
> choco uninstall アプリ名
~~~

上記の通り、インストール出来るものであれば操作はかなり楽です。
ちなみに対応アプリの検索は [公式サイト](https://chocolatey.org/packages) でパッケージを探すやり方もあります。

# アプリケーション例
参考までに私が個人PCにてchocolateyで管理しているものを以下に列挙します。
見出しは上記コマンドのアプリ名に当てはめればそのままインストール出来る名前にしています。

#### ▼ブラウザ系
firefox
　言わずとしれた。javascriptデバッグする時はfirefoxがとにかく便利ですね。特に発火するイベントへ飛べるのが神機能だと思います。

vivaldi
　Choromeがchocolateyで見当たらなかったので代わりに使ってます。
　Chromeの拡張機能をそのまま使えますが、今では完全に別物ですね

#### ▼開発ツール系
gsudo
　powershellを管理者権限で毎回起動するのが面倒な人用。
　一度インストールしてターミナルを立ち上げ直したらlinuxのsudoと同じ様に上記コマンド先頭にgsudoをつけるだけでok
　choco以外のコマンドにも使える。開発者ならsudo権限で何かを立ち上げる機会は多いのでオススメ

7zip
　アーカイブの作成、解凍をしてくれるやつ。7zだけでなくgzipやtarにも対応してる

slack
　チャンネルベースのメッセージプラットフォーム。

vscode
　Visual Studio Code。言わずとしれたコードエディター
　ちなみに上記サーチコマンドでintellijを探せばIntelliJIDEAも一応でてきます。
　ただ、ライセンスとかで色々面倒なので余り詳しくない人は触らない方がいいかもです。

teraterm
　言わずとしれたターミナル。puttyもあるのでお好みで

winscp
　言わずとしれたFTPのクライアント

mysql.workbench
　言わずとしれたmysqlのsql開発で使うツール

git
　言わずとしれたバージョン管理。
　ちなみにgit入れてるので使ってないですが、svnもヒットする様です。

docker
　言わずとしれたコンテナ仮想化であれするオープンプラットフォーム

openjdk
　さっくりjavaをローカルで動かすのに便利です。

####▼その他、プライベート用に使えるかもしれない系
steam
　PCゲーのプラットフォーム。わざわざサイト探さなくてもいいので便利

gyazo
　スクショやgif撮影がさっくり出来ます

ffmpeg
　mp4をaviにコマンドで変換してくれたりとか使う人には便利なやつ

audacity
　オーディオ編集してる人に便利なやつ

honeyview
　軽くて高速な画像ビューワー。というかwindowsの標準がゴミすぎる

vlc
　定番の軽快なメディアプレイヤー。というか標準がゴミｒｙ

tablacus
　タブ型のファイラー。というか何で標準は今どきタブじゃないの

microsoft-windows-terminal
　powershellやコマンドプロンプトをタブで使えるやつ。
　ホームをwindows配下という謎仕様でなくマイドキュメント配下に変えたり出来る
　というか標準ｒｙ

#### ▼tips
- chocoでインストールしたアプリの一覧を見る
~~~
> choco list --local
~~~

- ショートカット削除したりで起動のやり方わからなくなった場合
C:\ProgramData\chocolatey\bin
C:\ProgramData\chocolatey\lib
辺りを探してみると幸せになれます

## まとめ
最近PCを買い替えたのですが、大概のアプリのインストールはchocolateyでほぼ事足りました。
コマンド一発でインストール出来るので、コマンドメモって一気に流せば復旧作業も爆速。
package.configを作ればそもそもの機能として一括で流すこと自体も可能。
何かしらのターミナルを常に開きっぱにしてる人には最強のツールかもです。

----
明日は、@wc_asukasaito さんです。よろしくお願いします。

<p>ウェブクルーでは一緒に働いてくれる方を絶賛募集中です！<br>
興味のある方はぜひお問い合わせください。<br>
<a href="https://hrmos.co/pages/1004681658307198976/jobs/214" rel="nofollow noopener" target="_blank">開発エンジニア | 株式会社ウェブクルー</a></p>