M1で.NET Core3.1 と Node.js 12.16.0 を動かしたい
2022年 06月 06日 月曜日
ここ2ヶ月くらいで嵌った話
ここ2ヶ月くらいで嵌ったことで覚えてること
1. M1で.NETCore 3.1 を実行する
嵌りどころ
-
.NET 6
はarmがサポートされているが、.NET Core 3.1
がサポートされていないためRosetta2経由でsetupしたがいろいろ手間がかかる- 厳密には Linux+armは
.NET Core 3.1
がサポートされている
- 厳密には Linux+armは
-
Rosetta2 + brew経由で
.NET 6
をinstallした後 .NETCore 3.1 をinstallするがその際にlinkがいい感じに設定されないのでlinkを設定しなおす必要がある -
Rosetta2 + brew経由で
.NET Core3.1
をinstallしたところdotnet build
でエラーが発生してしまう- 目ぼしい解決方法が見つからない・・・
解決手法
- https://github.com/dotnet/sdk をclone して自前でinstallする
# 実行したコマンド
cd ~/git/github
git clone [email protected]:dotnet/sdk.git
cd sdk
git checkout v3.1.419
./build.sh
tee ~/.zshrc <<'EOF'
# switch arch path
arch=`uname -m`
if [ "$arch" = "x86_64" ]; then
export PATH="/opt/homebrew/bin:$PATH"
export PATH="/usr/local/bin/:$PATH"
# dotnet core 3.1 is not supported by arm
export PATH="/dotnet-sdk-clone-full-path/git/github/sdk/.dotnet:$PATH"
else
export PATH="/opt/homebrew/bin:$PATH"
fi
EOF
2. M1で、Node 12.16.0 を動かす
嵌りどころ
- Node.jsのversionが古いとarmよりもx64のアーキテクチャで動かした方が早い
解決手法
- Rosetta2経由でNode.jsを使うようにしとく
- それでも時間がかかる・・
結論
- 古い環境は捨て去って新しいやつを使いましょう
この記事をシェア