CUIで管理!アプリケーション管理ツールのWinMac比較


窓もリンゴもチョコレートや自家製でアナコンダを!

はい!無理に日本語化すると意味が分かりませんよね。

アプリケーションソフトウェアをCUIで管理するためのソフトウェアが存在します。
これらを使用すると、1ライナーのコマンド一発でアプリケーションを複数インストールできたりして、
この1ライナーを仕事終わりや休憩前にやると素敵です。

例えば、以下の1ライナーはjs系とPython系の開発環境が同時に構築出来たりします。

choco install vscode github nodist miniconda nginx filezilla -y

ところがチームで開発をしていたりする場合には個人でOSが違うことも。
こうなると管理ツールが同じものを使用できません。
そんなときのために、チーム内での説明用も兼ねて相違点をまとめました。

チーム内の個人環境の差異を吸収する方法についてはこちらもぜひ

インストール方法

  • WindowsのChocolateyをインストール
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  • MacでHomebrewをインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

どちらもコマンド1ライナーで完了します。
実行後にCUIアプリケーションの再起動が必要な点も同じです。

アイコン

「素早く片付けて、おやつでも食べよう。」
「素早く片付けて、ビールを飲もう。」
という思いがどちらからも感じられてステキですよね。

Chocolatey

Windowアイコンの4つに分かれた窓のマークを板チョコに見立てたもの。
日本語直訳:チョコレートのような

Homebrew

Macアイコンのリンゴがジョッキに注がれたビールの上に浮かんでいる。
日本語直訳:自家製・家の醸造

アプリケーションの管理単位

一つのアプリケーションをまとめた単位をPackageと呼ぶらしいです。

開発言語

開発言語

C# 開発言語

開発言語

Rubyで開発されている→https://github.com/Homebrew/brew

コマンド

基本的にはどちらも

  • Chocolatey→choco
  • Homebrew→brew

どちらもいい感じに略したコマンドですね。

  • create
  • activate
  • install
  • upgrade
  • uninstall

そして、この5つを覚えれば使用できるようになるはずです。

Chocolatey特有

Chocolatey特有

Chocolateyでは、パッケージ名の後ろに.を付けてinstallやpotableなどとメソッドチェーンみたいになっている場合があるんです。
https://chocolatey.org/packages で検索すると7-Zipは

PS > choco install 7zip
PS > choco install 7zip.commandline
PS > choco install 7zip.portable
PS > choco install 7zip.install

と4種あることがわかります。(参考:installとportableのどちらを選択するか)

コマンド ショートカット

  • choco installcinst
  • choco upgradecup

Note : 便利ではあるけど、Powershellなどでスクリプトを組んでインストールするときは控えましょう。
公式非推奨です。短いと他のコマンドと被る恐れがあるからではないでしょうか。

Homebrew特有

GUIアプリケーションをインストールするためにはbrew cask installを使います。
CUIならbrew installですね。※caskは日本語直訳でビール樽

コマンドリファレンス

Chocolatey → https://github.com/chocolatey/choco/wiki/CommandsReference

Homebrrew → https://docs.brew.sh/Formula-Cookbook#homebrew-terminology

願い

HomebrewがWindowsで使えるようになるか、ChocolateyがMacで使えるようになるかして欲しいです。
PowerShellがMacで使えるようになったし、WindowsにWSL2が登場したし可能な気がします。
ユーザー目線で見てクロスプラットフォーム最高だと思うのでRubyかC#できる人はお願いします。

Excelsior!