- IT Tips
READ MORE
High Sierra向けの記述を追加しました
新年あけましておめでとうございます。hachi8833です。
2017年を迎えるにあたり、年末年始にかけて、Macbook Proの内蔵SSDをフォーマット、Sierraでクリーンインストール、環境復元したので、作業中の注意点などをメモします。
Ruby on Rails開発を意識した環境設定です。
通常であれば環境復元はMac標準のTimeMachineで行うのが圧倒的に楽なので、クリーンインストールを行う必要はまずありません。今回は自分の環境にインストールされていた大量の余分なソフトウェアを整理するのと、新規でRubyとRailsの環境を構築するときの参考にするために、あえてクリーンインストールを行いました。
この手順はクリーンインストールと環境復元用ですが、Macへの新規インストールでも参考になると思います。
Gmailのおかげで巨大なメールアーカイブをえっちらおっちら復元せずに済むようになったのは、本当にありがたいことです。
本当はリンクを参考にAnsibleで全自動セットアップしたかったのですが、うまくいかなかったので普通にHomebrew中心にやりました。でもこのぐらいきれいにしておけば今後のAnsible化は相当やりやすくなったはずなので、次回挑戦してみます。
今さらなことばかりですが指差し確認用に。
(知らないうちに補助容量用の外付けSDカードでバックアップがオンになっていたのでそっとオフにした)
(たまたま他にパソコンがない状況だったので危うく詰むとこだった)
brew leaves > brewlist.txt
)
brew list
だと依存パッケージまで出力されて邪魔なのでbrew cask list > brewcasklist.txt
もls -l /Applications > applist.txt
)/usr/local/var/
以下を復元する手もあるlaunchctl -w list > launchctllist.txt
で保存High Sierraで導入されたAPFSには「暗号化あり」と「なし」がある。これはFileVaultによる暗号化とは別物らしい(少なくとも設定は分かれている)ので、両方オンにはしない方がよさそう。
R
キーを押しながらMacbookの電源をオンにする
以上でクリーンインストールは完了。あとはひたすら環境設定
,
)J
)グリッド間隔を変えないと、以下のディスク容量表示が途中で省略されてしまう。
ショートカットは自分の好みで変更する。以下は自分の場合。
すごく奥まったとこにある設定だけど、3本指でドラッグをオンにしないと超不便。
書類フォルダのiCloud同期はやめておいた。
実際の手順は以下の順序よりもっと要領が悪かったので、今後のために整理した。
TotalFinderを使うためにSIPの一部をオフにする作業。ただしSIPは原則オフにするべきではないので、リスクを十分に理解してから行うこと。
csrutil enable --without debug
追記: High Sierraではcsrutil disable
でいったん無効にし、TotalFinderインストール後にcsrutil enable
で有効にする。詳しくはマニュアルを参照
homebrewの指示どおりにインストールする。インストールスクリプトはちょくちょくアップデートされているのでここには貼らない。
なお、インストール後に以下を実行して自分用にggrepをインストールした(なくてもよい)。
brew tap homebrew/dupes
brew install homebrew/dupes/grep
homebrewについての説明は省略。Homebrewは最近置き場所などがいろいろ変わっているので、長く使っている人は注意。
せっかくなので、インストールするソフトウェアをなるべく絞り込んでからbrew install
した。今回は以下のとおり。
brew install pyenv ansible rbenv rbenv-default-gems readline git git-flow tig mysql postgresql sqlite passenger nginx go v8 nodebrew vim mecab graphviz sshrc wget curl tree ggrep grc gmp peco memcached coreutils moreutils terminal-notifier htop-osx iproute2mac the_silver_searcher watch ccat multimarkdown tmux z
なお、最近のHomebrewは、XCode Command Line Toolsを自動でインストールしてくれるようになっていた。XCodeを使わない人がCommand Line Toolsをインストールしようとしてじたばたする必要がなくなったのが地味にありがたい。
以下は結果的に別途インストールした。
brew install openssl # OpenSSLのインストール
brew link openssl --force
brew install homebrew/dupes/grep # ggrepのインストール
brew tap homebrew/services # MySQLとPostgreSQLの自動起動管理用
このhomebrew/servicesは今回知ったけど、すごく便利。
以下のようにRictyフォントをビルドしてインストールした。ターミナルフォントはRictyが好きなんです。
brew cask install xquartz
brew install fontforge ricty
cp -f $(brew --cellar ricty)/*/share/fonts/Ricty*.ttf ~/Library/Fonts/
fc-cache -vf
ついでにNotoフォントをインストールした: 「Download All Fonts」をクリックして解凍し、Library/Fonts/
にコピーするだけ。
追伸: 自分だけかもしれないけど、Rictyフォントはなぜか何回か微妙にビルドが失敗して特定の文字だけおかしくなったりした。rが~
と表示されたり、iとjだけものすごく大きいフォントになったり。ビルドのたびに結果が異なっていたので、おかしいと思ったら再ビルドしてみるとよいかも。
先にApp Storeで有料で購入したアプリを手動で再インストールし、次にそれ以外をbrew caskでインストールする、という順序が楽だと思う。
それ以外は次のcaskに送った。
ファイルメーカーやOfficeなどは正規のCDから取ったイメージでインストールした。
なお、Microsoft製品は作業前に完全にアンインストールしてライセンスを解放する必要があるかもしれない。今回は同じMacbookで再インストールしたせいかアンインストールなしでも問題は生じなかったが、別のMacbookにインストールする場合は事前にアンインストールしておくとよいかも。
Adobe製品でも同じようなことが起こる可能性がある(今回はReaderしかインストールしなかった)。
最近のMac OSではKeynoteがデフォルトでインストールされない。以下の手順に従えばほとんどの場合無料で正規に利用できるはず。
最終的に以下のようなcaskリストでインストールした。
brew cask install 1password dash2 handbrake nvalt totalfinder adobe-air disk-inventory-x iexplorer opera vagrant adobe-reader docker iterm2 p4merge validator-sac alfred2 dropbox imagemagick itsycal rubymine virtualbox appcleaner firefox kindle sequel-pro vlc bettertouchtool flux kitematic slack xmind beyond-compare genymotion kiwix sourcetree xquartz blisk go2shell licecap sqlitebrowser cd-to google-chrome macdown sublime-text cyberduck google-japanese-ime mpeg-streamclip thunderbird
メジャーなMacアプリの多くはcask化されているので、brew cask
でインストールしておくとbrew upgrade;brew cleanup
で一括アップグレードできて便利。
必要なら、caskで1つ前のメジャーバージョンなどを指定してインストールすることもできる。
brew cask search
でアプリの全リストを取れるし、アプリ名を与えて部分一致で検索もできる。マイナーなアプリでもbrew tap <tap名>
でtapを追加すると利用できたりするので、tapがあるかどうかググってみよう。
今後アプリをインストールする場合は、caskに見つかればそちらでインストールするようにしようと思う。
ドットファイルなどを何もかも復元すると環境の汚れまで持ち込まれるので、復元は最小限にとどめた。
今回はTimeMachineから以下を復元した。
.rbenv/
以下にRubyをビルド&インストールしていた場合、OpenSSLやreadlineなどのライブラリとのリンクが失われている可能性がある。
その場合、rbenvでインストールしたRubyはすべて再ビルドが必要になるかもしれない。自分の場合も結局rbenvのRubyを削除して再ビルドした。
rbenv uninstall 2.3.3
rbenv install 2.3.3
ビルドインストールされる他のソフトウェアパッケージでも類似の作業が必要になるかもしれない。
ここから先は完全に人それぞれとなるので、役に立ちそうな点のみメモ。
自分の場合、重要なアプリはDropboxに設定を保存していたので、設定ファイルへのパスをシンボリックリンクに置き換えることでスムーズに置き換えられた。
1Passwordを使うために真っ先に復元。
アプリやサービスを使えるようにするために真っ先に復元。
もろもろの作業で必要になるので真っ先に復元。プロファイル同期機能のおかげでほぼ世話いらず。
細かいけど、Sierraではdmgをマウントしてインストールした後、OSが「インストーラを片付けますか?」と聞くようになった。地味に便利。
以下を含むたいていのアプリは、~/Library/Application\ Support/
以下にある設定ファイルをTimeMachineで復元できる。
なお、Dockerの場合は~/Library/Containers/com.docker.docker/
以下にイメージファイルが置かれる(参考: Stackoverflow)。
TimeMachineから以下のファイル・フォルダを復元すれば完了。
~/Library/Preferences/<PRODUCT><VERSION>
~/Library/Application Support/<PRODUCT><VERSION>
brew tap homebrew/services
が実行済みであることが前提。今回はなりゆきでTimeMachineで以下のデータディレクトリを復元したが、dumpから復元する方が後々楽。
/usr/local/var/mysql/
を復元する/usr/local/var/postgres
を復元する復元が正しければ、以下を順に実行するだけで、今後Macの起動時に自動で起動するようになる。従来のlaunchctlを使う方法よりずっと使いやすい。
brew services start postgresql
brew services start mysql
brew services list
を実行すれば現在のステータスがわかる。servicesが複数形なのが地味に間違えやすい。
開発環境の場合、不意に更新されたくないデータベースソフトウェアなどをbrew pin <パッケージ名>
でバージョン固定できる。今回は以下をピン留めした。
brew pin postgresql
brew pin mysql
brew pin imagemagick
これで多い日でも安心してbrew upgrade
を実行できる。
最後はフルバックアップで締めくくると思うけど、セーフモード(Shiftキーを押しながら起動)にした状態でフルバックアップする方が余計なプログラムが動いていない状態なので早く終ると思う。