【ISSUE】【mac】開発環境構築を dotfile + mackup + git + ...etc を使って最短で仕上げる(その1)
2024年12月23日 17:28
macを買い換えたときに、開発環境をそっくりそのまま移行するのって、とても面倒なので、どうにか簡潔にできないかって思ったところ「dotfile」「mackup」などがあるらしく。それらの設定ファイルを「git」で管理して、いつでもどこでも同じような開発環境が構築できるようにします。
意外とインストールばっかりで整理しないmacportsやhomebrewを掃除します。これだけで数GBの容量が稼げる場合があるので、容量が足りない人は実行してみる価値ありです。
これらのサイトが参考になりました。
https://qiita.com/billthelizard/items/b0dec28bdb15d4d97921
https://qiita.com/fuqda/items/db8aff0ba4068aea2cc6
https://github.com/mas-cli/mas
App Storeからインストールする必要のあるアプリをCLIからインストールできる仕組み。 homebrew-bundle にも対応しているので、homebrew-bundle経由でインストールを実行することも可能です。 次に説明する homebrew-cask もだが、自分の使う全てのMacで必要なもの(エディタとかSNS, ブラウザとか)はこれで導入することにした。
mas list
で現在のmacに入っているアプリでApp Store経由でインストールした物が表示される。
次に説明する homebrew-bundle と連携させることができるが、直接masを触ることはなく、インストールされていれば自動的にピックアップしてくれるようなので、masに関しては一旦これで終わり。
https://github.com/Homebrew/homebrew-bundle
Brewfileというファイルを作っておいてその中に必要なものを書いておいてbrew bundleコマンドで複数パッケージをまとめてインストールすることができるみたいです。しかも「mas」のリストを自動的にdumpしてくれるという優秀ぶり。
brewが入っていればbrew bundle
と実行するだけで初期設定を行ってくれる。初回起動時は Brewfile が見つからないと言われるが、実行できる状態にはなっている。
現在インストールされているパッケージをピックアップするためにdump
を指定して実行すると、ファイルとして書き出してくれるようだ。これをdotfilesで管理することで、どのmacでも同様のパッケージを維持することができる。ファイルの中身は後々編集するとして、dotfilesへファイルを移動して、シンボリックリンクを作ることを忘れないように。
masが入っているので、dumpによって生成されたファイルを確認すると、ファイルの下の方にmasの行があることが確認できるはずだ。。。すごい。
https://github.com/Homebrew/homebrew-cask
App Storeで配信されていないアプリ(.pkgなど外部からインストールするアプリ)をCLIでインストールするために使います。caskの利用設定はこちらの記事が参考になります。
https://qiita.com/swallowtail62/items/61244ea3c7d00f692823
自分のインストールしているアプリがcask
に対応していれば、caskからのインストールに置き換える方が今後簡単に環境を移行することができます。
(※ 基本的に最新バージョンしかインストールすることができないようです。ダウングレードインストールもできるようですが、骨が折れそうな作業をしている方が多数だったためオススメしません。その場合は手動でインストールする方がよさそうです。)
自分のインストールしたいアプリが対応しているか検索してみましょう(例: google chrome)
こんな感じで検索結果が出てくるので「Casks」の部分に注目してください。「google-chrome」があると思うので、cask経由でインストールできそうです。caskでインストールするアプリの詳細をみたい場合にはinfoコマンドを利用します。
Casksにない場合はCLIインストールができないので、手動インストールになります。
(※ homebrew-caskにプルリク発行して追加してもらうっていうやり方もあるみたいです。)
https://qiita.com/DriftwoodJP/items/2fae455dc04adea17f96
とりあえず「~/dotfiles」を管理するファイルを集めるディレクトリとしておきます。このディレクトリに「.zshrc」「.mackup.cfg」とかを入れて、それらのファイル群を「git」で管理します。gitでリポジトリを作成してリポジトリのリンクを取得しておいてください。
これでgitにコミットできるようになりました。今後「dotfiles」内のファイルを変更した時にはコミットするようにしましょう。
「/.zshrc」を「/dotfiles/.zshrc」にコピーしてシンボリックリンクを作っておきます。
いままで「oh-my-zsh」を使ってたんですが、これが死ぬほど重くなって使えなかったので、これを機に使うのをやめました。結果、現在の.zshrcの中身はこんな感じ(※ aliasとかPATH設定は除いて記載してます)
mackupを利用すれば、設定ファイルなどを特定のディレクトリに同期・特定のディレクトリからリストアすることができるので、各アプリケーションの環境設定を1から設定することなく移行することができるみたいです。
とりあえずインストールしておきます。
このmackupの設定ファイルが「/.mackup.cfg」を読み込むようになっているので、手動で「/dotfiles/.mackup.cfg」を作ってシンボリックリンクを作っておきます。
以下の内容を.mackup.cfg
に書き込みます
ここで注意が必要で「dotfiles」で「.bashrc」などを管理して、さらに別の場所にインストールしてシンボリックリンクを貼る、 みたいな設定をしてる場合にはちょっと注意が必要で、 mackupをしてしまうと一度mackupのシンボリックになり、uninstallすると 実体そのものが「~/.bashrc」に作られるので元のdotfilesとのリンクが切れてしまいます。
なので、dotfileで管理するものはバックアップしないように指定しておきます。mackup自身もdotfileで管理する場合にはmackupもignore指定してください。
mackup list
を実行すれば、対象のアプリケーション名が表示されるので、そこからピックアップして設定してください。[applications_to_ignore]を追記することで、環境設定をバックアップしないアプリケーションを指定することができます。
そしてmackup backup
を実行します。自分の場合はAdobe Illustratorのバックアップでエラーがでていたので環境設定をバックアップしない方向性にするので.mackup.cfg
に以下を追記します。
とりあえずここまでにして、時間見つけて「その2」を書き上げます...。
[cv:issue_marketplace_engineer]
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。