【ISSUE】【mac】開発環境構築を dotfile + mackup + git + ...etc を使って最短で仕上げる(その1)

0

2024年12月23日 17:28

環境構築ほど面倒なものはない

macを買い換えたときに、開発環境をそっくりそのまま移行するのって、とても面倒なので、どうにか簡潔にできないかって思ったところ「dotfile」「mackup」などがあるらしく。それらの設定ファイルを「git」で管理して、いつでもどこでも同じような開発環境が構築できるようにします。

作業の流れ

homebrewなどを整理する

意外とインストールばっかりで整理しないmacportsやhomebrewを掃除します。これだけで数GBの容量が稼げる場合があるので、容量が足りない人は実行してみる価値ありです。

これらのサイトが参考になりました。
https://qiita.com/billthelizard/items/b0dec28bdb15d4d97921
https://qiita.com/fuqda/items/db8aff0ba4068aea2cc6

masを導入する

https://github.com/mas-cli/mas

App Storeからインストールする必要のあるアプリをCLIからインストールできる仕組み。 homebrew-bundle にも対応しているので、homebrew-bundle経由でインストールを実行することも可能です。 次に説明する homebrew-cask もだが、自分の使う全てのMacで必要なもの(エディタとかSNS, ブラウザとか)はこれで導入することにした。

img

mas listで現在のmacに入っているアプリでApp Store経由でインストールした物が表示される。

img

次に説明する homebrew-bundle と連携させることができるが、直接masを触ることはなく、インストールされていれば自動的にピックアップしてくれるようなので、masに関しては一旦これで終わり。

homebrew-bundleを導入する

https://github.com/Homebrew/homebrew-bundle

Brewfileというファイルを作っておいてその中に必要なものを書いておいてbrew bundleコマンドで複数パッケージをまとめてインストールすることができるみたいです。しかも「mas」のリストを自動的にdumpしてくれるという優秀ぶり。

brewが入っていればbrew bundleと実行するだけで初期設定を行ってくれる。初回起動時は Brewfile が見つからないと言われるが、実行できる状態にはなっている。

img

現在インストールされているパッケージをピックアップするためにdumpを指定して実行すると、ファイルとして書き出してくれるようだ。これをdotfilesで管理することで、どのmacでも同様のパッケージを維持することができる。ファイルの中身は後々編集するとして、dotfilesへファイルを移動して、シンボリックリンクを作ることを忘れないように。

img

masが入っているので、dumpによって生成されたファイルを確認すると、ファイルの下の方にmasの行があることが確認できるはずだ。。。すごい。

img

homebrew-caskを使うようにする

https://github.com/Homebrew/homebrew-cask

App Storeで配信されていないアプリ(.pkgなど外部からインストールするアプリ)をCLIでインストールするために使います。caskの利用設定はこちらの記事が参考になります。
https://qiita.com/swallowtail62/items/61244ea3c7d00f692823

自分のインストールしているアプリがcaskに対応していれば、caskからのインストールに置き換える方が今後簡単に環境を移行することができます。
(※ 基本的に最新バージョンしかインストールすることができないようです。ダウングレードインストールもできるようですが、骨が折れそうな作業をしている方が多数だったためオススメしません。その場合は手動でインストールする方がよさそうです。)

自分のインストールしたいアプリが対応しているか検索してみましょう(例: google chrome)

img

こんな感じで検索結果が出てくるので「Casks」の部分に注目してください。「google-chrome」があると思うので、cask経由でインストールできそうです。caskでインストールするアプリの詳細をみたい場合にはinfoコマンドを利用します。

img
Casksにない場合はCLIインストールができないので、手動インストールになります。
(※ homebrew-caskにプルリク発行して追加してもらうっていうやり方もあるみたいです。)
https://qiita.com/DriftwoodJP/items/2fae455dc04adea17f96

各環境ファイルを保存するディレクトリ作成

とりあえず「~/dotfiles」を管理するファイルを集めるディレクトリとしておきます。このディレクトリに「.zshrc」「.mackup.cfg」とかを入れて、それらのファイル群を「git」で管理します。gitでリポジトリを作成してリポジトリのリンクを取得しておいてください。

img

これでgitにコミットできるようになりました。今後「dotfiles」内のファイルを変更した時にはコミットするようにしましょう。

.zshrc

/.zshrc」を「/dotfiles/.zshrc」にコピーしてシンボリックリンクを作っておきます。

img

いままで「oh-my-zsh」を使ってたんですが、これが死ぬほど重くなって使えなかったので、これを機に使うのをやめました。結果、現在の.zshrcの中身はこんな感じ(※ aliasとかPATH設定は除いて記載してます)

img

mackup

mackupを利用すれば、設定ファイルなどを特定のディレクトリに同期・特定のディレクトリからリストアすることができるので、各アプリケーションの環境設定を1から設定することなく移行することができるみたいです。

とりあえずインストールしておきます。

img

このmackupの設定ファイルが「/.mackup.cfg」を読み込むようになっているので、手動で「/dotfiles/.mackup.cfg」を作ってシンボリックリンクを作っておきます。

img

以下の内容を.mackup.cfgに書き込みます

img

ここで注意が必要で「dotfiles」で「.bashrc」などを管理して、さらに別の場所にインストールしてシンボリックリンクを貼る、 みたいな設定をしてる場合にはちょっと注意が必要で、 mackupをしてしまうと一度mackupのシンボリックになり、uninstallすると 実体そのものが「~/.bashrc」に作られるので元のdotfilesとのリンクが切れてしまいます。

なので、dotfileで管理するものはバックアップしないように指定しておきます。mackup自身もdotfileで管理する場合にはmackupもignore指定してください。

mackup listを実行すれば、対象のアプリケーション名が表示されるので、そこからピックアップして設定してください。[applications_to_ignore]を追記することで、環境設定をバックアップしないアプリケーションを指定することができます。

img

そしてmackup backupを実行します。自分の場合はAdobe Illustratorのバックアップでエラーがでていたので環境設定をバックアップしない方向性にするので.mackup.cfgに以下を追記します。

img

とりあえずここまでにして、時間見つけて「その2」を書き上げます...。

[cv:issue_marketplace_engineer]

0

診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。