LoginSignup
0
0

Intel MacからApple Silicon Macにそのまま移行したら失敗だった話

Last updated at Posted at 2024-05-31

前書き

業務で使用している MacbookAir で node, python のインストールができなくなっていた。原因としては intel CPU の MackbookAir から Apple Silicon の MacbookAir に移行を行ったことだった。

intel Mac から Apple Silicon Mac への移行

デフォルトで使用できる移行アプリを使用した。
(ローカルに重要なデータは保存してなかったので、ここで一から環境構築すればよかった。)

以降後に必要なライブラリなどが使用できることを確認して問題ないと判断しました。しかし、新たにnodeやpythonをインストールしようとするとエラーがでてインストールできなかった。(ここで問題発覚)

問題はパッケージのインストール先の違い

intel Mac では /usr/local/bin 配下にインストールされる。
Apple Silicon では /opt/homebrew/opt 配下にインストールされる。

私の環境では念の為再インストールを行っていたのか、両方にインストールされていた。Pathも2つ登録されており、どちらが優先されていたのかは不明である。

(Rosettaを使用して2つの環境を使い分けをするなどできるらしいが、今のところ必要性を感じないのでやめておく。)

パッケージ依存問題の解消

解決方法としては、homebrew, nodenv, pyenv を再インストールすることで解決した。

1 . 既存のhomebrew, nodenv, pyenv の削除

commandline
$ rm -r /usr/local/bin/homebrew
$ rm -r /usr/local/bin/nodenv
$ rm -r /usr/local/bin/pyenv

2 . 再インストール
homebrew のインストール(https://brew.sh/ja/)

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

nodenv のインストール

commandline
$ brew install nodenv

# パスの設定(zshの場合)
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(nodenv init -)"' >> ~/.zshrc

pyenv のインストール

commandline
$ brew install pyenv

# パスの設定(zshの場合)
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc

上記の操作によりパッケージが/opt/homebrewに集約され、動作するようになった。

commandline
# nodeのインストール
$ nodenv install 18.16.0

# pythonのインストール
$ pyenv install 3.11.3

まとめ

現在ではintel Macからの移行はレアケースになりつつあるが、intel → Apple Silicon への移行ではパッケージの依存関係で不具合が生じる可能性があることを実感した。このような場合は、移行アシスタントを使用することは避け、一から環境構築を行ったほうがよい。

参考文献

homebrew

pyenv

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0