お茶漬けぶろぐ

M1 Macでterminalをx86_64からarm64に切り替える

購入直後は色々試行錯誤した挙げ句にx86_64で使うようにしたのだけど、まぁ暫く時間たったし、arm64で使うように切り替えてみようかなと思い立ったのでやってみる。
現状は、てきとうに導入したHomebrewとMacPortsがギリ共存している状態。
基本はHomebrewで行きたかったのだけど、なんだかごちゃごちゃと色々やった挙げ句MacPortsを入れたという経緯があった気がするので(当時の記録を眺めるとMariaDBだけMacPortsで突っ込んだらしい)、Homebrewのみで環境構築しようと思う。

HomebrewとMacPortsのアンインストール

こいつらはx86_64のつもりで入っているので、インストールし直したほうが良いのでは…の気持ちになったので、アンインストールする。

インストール済みのものの確認

まずは今何が入っているのかを確認する。大したもの入れてないが、後でインストールし直すつもりなので、メモ書きしよう。

$ brew list > ./homebrew
$ sudo port installed > ./macports

アンインストール

まずはMacPortsを消し飛ばそう。
公式のガイドを参考に作業。
2.4. Uninstall MacPorts

# 全パッケージの削除
$ sudo port -fp uninstall --follow-dependents installed
--->  Deactivating cmake @3.19.1_0
--->  Cleaning cmake
〜略
$ sudo port installed
No ports are installed.
# ユーザ/グループの削除
$ sudo dscl . -delete /Users/macports
$ sudo dscl . -delete /Groups/macports
# MacPorts本体の削除
$ sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

お次、Homebrewを消し飛ばす。
やはり公式の記述を参考に作業。
Homebrew/install: 📥 Homebrew (un)installer

# 公式の削除スクリプトを実行
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
Warning: This script will remove:
/Users/tea/Library/Caches/Homebrew/
/Users/tea/Library/Logs/Homebrew/
/usr/local/Caskroom/
/usr/local/Cellar/
/usr/local/bin/brew -> /usr/local/bin/brew
Are you sure you want to uninstall Homebrew? This will remove your installed packages! [y/N] y
===> Removing Homebrew installation...
Warning: Failed to delete /usr/local/Caskroom
rm: /usr/local/Caskroom: Permission denied
Warning: Failed to delete /usr/local/Cellar
rm: /usr/local/Cellar: Permission denied
==> Removing empty directories...
==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Caskroom /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -name .DS_Store -delete
==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Caskroom /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -depth -type d -empty -exec rmdir {} ;
==> Homebrew uninstalled!
The following possible Homebrew files were not deleted:
/usr/local/Frameworks/
/usr/local/Homebrew/
/usr/local/bin/
/usr/local/etc/
/usr/local/include/
/usr/local/lib/
/usr/local/opt/
/usr/local/sbin/
/usr/local/share/
/usr/local/var/
You may wish to remove them yourself.

permission不足で一部削除できなかったっぽいので、手で消そう。

$ sudo rm -rf /usr/local/Caskroom /usr/local/Cellar

terminal.appをRosetta使わないように変更

Finderでterminal.appを探して(/アプリケーション/ユーティリティ/ターミナル.app)その情報を開く(Command+I)
一般情報の中にある「Rosettaを使用して開く」のチェックを外して、terminal.appを再起動すれば良い。

ほんで結果確認。

$ uname -m
arm64

Homebrewのインストール

公式にある通りインストールする。当初は手作業で/opt/homebrew以下にインストールするようにしたりした気がするのだけど(結局Rosetta経由で起動するようにしたから関係ない話だが)、今は勝手にその場所に入るようになったらしい。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/tea/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
$ brew --version
Homebrew 3.1.6
Homebrew/homebrew-core (git revision b6492621ab; last commit 2021-05-10)

なんかてきとうにインストール

取り敢えずMariaDBを突っ込んでみよう。

$ brew install mariadb
$ mysql.server start
$ mysql_secure_installation
〜略
Enter current password for root (enter for none):
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

だめじゃん。なんか初期パスワードが勝手に設定されてるらしい。というわけで無理やりログインしてパスワードを上書きしてリベンジ。

$ sudo mysql -u root -p
# パスワード入力しないでエンター
> use mysql;
> ALTER USER 'root'@'localhost' IDENTIFIED BY "PASSWORD";
> exit;
$ mysql_secure_installation
〜略
Enter current password for root (enter for none):
OK, successfully used password, moving on...
〜あとはいい感じにいつもの初期セットアップ

てきとうにいじってみてそれらしく動いてることを確認。ついでにarm64ですよねという確認もしておくか。

$ lipo -archs /opt/homebrew/Cellar/mariadb/10.5.9/bin/mariadbd
arm64

よさそう!
あとは事前に取得しておいたパッケージ一覧から、必要なものをインストールし直していけばそれで良いかな。

おわり

購入当初はそもそも「Macってどうやってソフトをインストールするんだ〜?」って状態だったので結構訳わからんなかで試行錯誤したのだけど、今となっては多少慣れているのもあったか、スムーズに作業できてよかった(そもそも世界がApple M1に慣れてきたっていうのもある)。
…………あんまりMac特有のなんかがあるワケじゃなかった内容な気もするけど…気にしない……
まだ他のアプリケーションについては全然手を付けてないので、まぁまったりやっていきましょう。うん。おしまい。

< S.M.A.R.T.エラーがちゃんと通知された(?)

node.jsでbcryptを使う >