Help us understand the problem. What is going on with this article?

macOSでのパッケージ管理

しばらく前にMacbook Proを入手したので、有名っぽいアプリをどんどんインストールしていたのですが、Homebrewというパッケージ管理システムを知ったので、そちらでの管理に切り替えることにしました。

パッケージ管理システムを使うメリット

  • ターミナルからインストール、アンインストールができる
  • アップデートをまとめて行える
  • OSの再インストール時など環境移行時に一括でインストールできる

使用ツール

正確には違うのかもしれませんが、下記の考え方をするとわかりやすかったです。

ツール 管理対象
Homebrew CUIアプリ
Homebrew Cask GUIアプリ
mas-cli Mac App Storeにあるアプリ

※Homebrew Caskとmas-cliでは、同じアプリが含まれる場合があるので、その場合どちらで管理するか決めておくと良いです。

パッケージマネージャーのインストール

Xcodeのインストール

意識して使うわけではないため使用ツールには記載していませんが、Homebrewを使うにはXcodeが必要です。
普通にApp Storeからインストールすると時間もかかり、消費する容量もかなり使ってしまうので、Xcodeのコマンドラインツールだけ入れます。

ターミナルを起動し、下記を実行します。

$ xcode-select --install

ダイヤログが表示されインストールするか聞かれるので、インストールを押します。

Homebrewのインストール

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

上記は変更になる場合があるので、Homebrewから最新のものをコピーして実行します。

Homebrewをインストールする場所に権限が無いと表示される場合は、下記を実行します。

 $ sudo chown -R $(whoami):admin /usr/local

whoamiは現在のユーザーという意味です。

Homebrew Caskのインストール

Homebrew CaskはHomebrewのインストールに含まれるので、インストール不要です。

mas-cliのインストール

Homebrewのパッケージとしてインストールします。

$ brew install mas

パッケージマネージャーの使用

インストールするパッケージを探す

Homebrew
パッケージ名を記録しておきます。

Homebrew Cask
パッケージ名を記録しておきます。

Mac App Store
IDを記録しておきます。
IDは、URL末尾の「id406056744?mt=12」のような文字列のidと?の間の数字です。

パッケージのインストール

$ brew install (package name)
$ brew cask install (package name)
$ mas install (package ID)

mas-cliでのインストールは、Apple IDと紐付けるため一度App Storeから入手しておく必要があります。
Affinity DesignerなどのようにApp Storeと販売元が併売している場合、販売元から直接購入するとmasでのインストールはできません。

インストール時にディレクトリが存在しないというエラーが出る場合

フォルダを作成し、権限を付けます。

$ sudo mkdir /usr/local/(directory name)
$ sudo chown -R $(whoami) /usr/local/(directory name)

パッケージのアンインストール

$ brew uninstall (package name)
$ brew cask uninstall (package name)
$ mas uninstall (package ID)

アップデートがあるパッケージ一覧

$ brew outdated
$ brew cask outdated
$ mas outdated

パッケージのアップデート

パッケージマネージャーの管理下から外れてしまうため、パッケージ側のアップデート機能や、Mac App Storeでのアップデートはせず、パッケージマネージャー側でアップデートします。

※ Catalinaにアップデートしたところ、mas outdatedやmas upgradeが動作していないようなので、少し面倒ですが一度アンインストールして再インストールして対応しています。

$ brew upgrade
$ brew cask upgrade
$ mas upgrade

Caskでアップデートしない設定になっているパッケージもアップデートするには、--greedyオプションをつけます。
ugradeの後にパッケージ名やIDを付けると、パッケージを個別にアップデートできます。

インストール済みパッケージ一覧

$ brew list
$ brew cask list
$ mas list

診断

インストールしたパッケージの管理状態を診断します。

$ brew doctor

You have unlinked kags in your Cellarと表示されたらリンクを修正します。

$ brew unlink (package name)
$ brew link (package name)
$ brew cleanup

環境移行

Brewfileの生成

新しい環境に引っ越す前に、インストール済みのパッケージを Brewfileに残します。

$ brew bundle dump

カレントディレクトリ内に Brewfile が生成されるので、ファイルの中を除くと、brew、cask、masが一括で保存されています。

Brewfileからパッケージをインストール

新しい環境にBrewfileをコピーし、同じディレクトリ内に移動して下記を実行

$ brew bundle 

Brewfileサンプル

https://github.com/takeshisakuma/brewfile

brew

アプリ名 パッケージ名
bat bat
carthage carthage
exa exa
ghq ghq
gibo gibo
Git git
lazydocker lazydocker
lazygit lazygit
mas-cli mas
nodebrew nodebrew
peco peco
procs procs
python python
ripgrep ripgrep
tig tig
tmux tmux
tree tree
vim vim

cask

アプリ名 パッケージ名
Adobe Creative Cloud adobe-creative-cloud
Adobe Creative Cloud Cleaner Tool adobe-creative-cloud-cleaner-tool
Alfred alfred
Android Studio android-studio
AppCleaner appcleaner
Blender blender
CheatSheet cheatsheet
Chromium Chromium
Clipy clipy
Cyberduck cyberduck
Dash dash
Diffmerge diffmerge
Discord discord
Docker docker
Docker toolbox docker-toolbox
Dropbox dropbox
Firefox firefox
Firefox Nightly firefox-nightly
Ricty Diminished font-ricty-diminished
Funter funter
GitHub github
Google Chrome google-chrome
Google Chrome Canary google-chrome-canary
Google 日本語入力 google-japanese-ime
Google Web Designer google-web-designer
HyperSwitch hyperswitch
ImageAlpha imagealpha
ImageOptim imageoptim
iTerm2 iterm2
Krita krita
macwinzipper macwinzipper
magicavoxel magicavoxel
Google Play Music Desktop Player marshallofsound-google-play-music-player
ngrok ngrok
Onyx onyx
pg-commander pg-commander
postman postman
Prepros prepros
processing processing
rectangle rectangle
Scroll Reverser scroll-reverser
Sequel Pro sequel-pro
SketchBook sketchbook
Skitch skitch
Skype skype
Slack slack
slate slate
Sourcetree sourcetree
Spotify spotify
tableplus tableplus
The Unarchiver the-unarchiver
tor tor-browser
Turbo Boost Switcher turbo-boost-switcher
VirtualBox virtualbox
Visual Studio Code visual-studio-code
VLC vlc

※Adobe Creative Cloudは、インストーラーを下記にダウンロードするだけです。
/usr/local/Caskroom/adobe-creative-cloud/latest/

mas

アプリ名 ID
1Password 7 1333542190
Amphetamine 937984704
Any.do 944960179
BrowseShot 615916400
Blurred 1497527363
Feedly 865500966
Focus To-Do 1258530160
ForkLift 412448059
Gifski 1351639930
iMage Tools 493949693
Keynote 409183694
HEIC Converter 1294126402
Hidden Bar 1452453066
LINE 539883307
Micro Sniff 1504024265
Microsoft To-Do 1274495053
Monosnap 540348655
motion 434290957
Numbers 409203825
Pages 409201541
Parallels Desktop 1085114709
PDF Converter & Reader 1459989579
Playgrounds 1496833156
Pocket 568494494
QaLL 480452005
RunCat 1429033973
Shazam 897118787
The Unarchiver 425424353
Todoist 585829637
Trello 1278508951
TweetDeck 485812721
Twitter 1482454543
Unsplash Wallpapers 1284863847
WebToLayers 1458124010
Wunderlist 410628904
Xcode 497799835
XMind 1327661892
Yoink 457622435

インストールしたアプリが起動できないとき

Homebrewに限ったことではないのですが、Mac App Store以外からインストールしたアプリを起動しようとすると、「悪質なソフトウェアか確認できないため開けません」と表示される場合があります。

その場合はControlキーを押しながら起動すると、再度「悪質な~」のウィンドウが表示されますが、「開く」ボタンが追加されているので、クリックすると開けます。
一度起動すると、次からは最初から開けるようになります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした