kdnakt blog

hello there.

macOSをMojaveに更新したら/etc/bashrcがリセットされた話とか

先日macOSをHigh SierraからMojaveに更新した際に、普段使っていたbashエイリアスが使えなくなって困ったので復旧手順をメモしておく。

 

f:id:kidani_a:20181028175357j:plain

 

[Mojave以前に設定したエイリアスが使えなくなった]

React Nativeアプリの開発をしている時に、シミュレータでiOSを起動することがよくある。その際、毎回react-native run-iosというコマンドを打ち込むのが面倒だったので、riosというエイリアスを設定していた。

 

ところが。

f:id:kidani_a:20181028180202p:plain

Mojave様をお迎えした直後、いつものようにriosコマンドを入力してiOSシミュレータを起動しようとすると、command not foundと表示されてしまった。

 

エイリアス/etc/bashrcで設定していたので、cat /etc/bashrcで確認すると、エイリアスの設定が消えていた。

f:id:kidani_a:20181028180523p:plain

どこにもaliasの文字が見当たらない。

そういえば、 プロンプトの表示フォーマットも変わっている。カレントディレクトリのフルパスが表示されるように設定していたのに……。

 

[/etc/bashrc~previousから復旧する]

もしかしてバックアップファイルのようなものが残っていないかと、/etcディレクトリの中をls /etc/ | grep bashrcのコマンドで確認する。

f:id:kidani_a:20181028181153p:plain

 

/etc/bashrc~previousなるそれっぽいファイルがあるので、中身を確認する。

f:id:kidani_a:20181028181442p:plain

以前設定したエイリアス環境変数が諸々残っていた!

そういえば、GOPATHとかもこの辺で設定したので、今度Goを触った時にビルドできなくて困るところだった。

 

/etcディレクトリに移動して、mv bashrc bashrc~defaultで退避を試みると、Permission deniedのエラーが出たので、sudo mv bashrc bashrc~defaultにしてパスワードを入力して、まずは退避完了。

f:id:kidani_a:20181028181723p:plain

 

次にmv bash-previous bashrcで復旧を試みる。アホなのでまたPermission deniedのエラー。同じくsudoをつけて復旧完了。

復旧が完了したのでそのままriosコマンドを実行しようと試みるも、やはりcommand not found。そういえば再起動が必要なのでした。

f:id:kidani_a:20181028182313p:plain

 

別のターミナルを起動し、React Nativeアプリのプロジェクトのディレクトリに移動してriosコマンドを実行すると、無事iOSシミュレータの起動ログが流れ始めた。めでたしめでたし。

f:id:kidani_a:20181028182647p:plain

 

[まとめ]

macOSのバージョンアップ時には/etc/bashrc/etc/bashrc~previousから復旧できる。

 

今日のブログ執筆BGMはこちら。 

www.youtube.com