Apple Silicon MacでNimの開発環境を構築してみる
はじめに
こんにちは、春から高校生になるNeoです。
先日、M1搭載のMacBook Airが届きました。使ってみた感想としては、とても早くて快適!!!!って感じです。しかもバッテリーの持続が超長いので、3時間ずっと使っていてもバッテリーがほとんど減りません。買って損はないと思います。
さて本題に入ります。この記事は、一筋縄ではいかないM1でのNimの環境構築をしてみようという記事です。ややこしい部分が多かったので、記事として残しておこうと思います。
Nimのインストール
前のmacと同様にchoosenim
で、、と思いましたがM1には対応していない模様。
さらに少し調べると、M1ではNimのコンパイルがうまくいかないというissueが報告されていて、コンパイルするにはNimのソースコードを少しだけイジらなければいけないようです。
git clone
し、次のような操作をします。
git clone https://github.com/nim-lang/Nim # ソースコードをclone
echo 'export $PATH="$HOME/Nim/bin:$PATH"' >> ~/.zshrc # pathを通す
cd Nim
git clone -q --depth 1 https://github.com/nim-lang/csources_v1.git csources
./build_all.sh
これで本当にコンパイルできるようになったのか心配なので、試しにプロジェクトを作り、cligen
[1]を用いて適当なコマンドを作ってコンパイルしてみると……(プロジェクト名は気にしないでください[2])
ちゃんとコンパイルできました!これでM1上でのNimの開発環境は整った…と思っていた矢先に、あることに気がつきました。
VS CodeのNimの拡張機能が動かない
セーブして明らかにエラーになるところがあっても一切指摘してくれないし、入力補完すら効きません。そしてセーブすると右下のポップアップにはNo 'nim' binary could be found in PATH environment variable
の文字が……
このNo 'nim' binary could be found in PATH environment variable
についてググってみると、環境はWin10ですがまったく同じエラーメッセージを受け取っているというissueを見つけました。詳しく覗くと、Linux環境でも同じエラーを吐いている方がいて、その方が提示してくれた解決方法を参考にしてやってみることにしました。
sudo ln -s ~/Nim/bin /usr/local/bin # usr/local/binにNimバイナリのシンボリッリンクを貼る
これでいけると思ったら、今度はOperation not permitted
というメッセージが返ってきて、コマンドが失敗してしまいました。
このメッセージでさらにググると、どうやら最近のMacはセキュリティ強化のためroot権限でも干渉できないディレクトリが設定されているらしく、変更するにはリカバリーモードでコマンドを打ち込む必要があるようです。やり方の解説はこちらのサイトが分かりやすかったです。
設定の変更が終わり、再び↑のコマンドを実行してみると、ちゃんとシンボリックリンクが貼られました。
VS Codeの画面に戻ってエラーや補完を確認してみたところ、しっかり動作しました!
inim
おまけですが、NimのREPLであるinim
もインストールします。
nimble install inim
echo 'export $PATH="$HOME/.nimble/pkgs/inim-0.6.1:$PATH"' >> ~/.zshrc
おわりに
結構時間をかけてしまいましたが、その結果、超快適な開発環境にすることができました。皆さんもぜひ、M1とNimで最高の開発環境をお楽しみください!
-
高校の新入生への課題で百人一首を覚えなければいけないので、おぼえるためのCLIツールを作っています。 ↩︎
Author And Source
この問題について(Apple Silicon MacでNimの開発環境を構築してみる), 我々は、より多くの情報をここで見つけました https://zenn.dev/neo/articles/86cd1432675321著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol