タイトルのことを実現するのは,ちょっと前まで手間がかかったし,あまり綺麗じゃない回避策って感じでした.最近調べ直したところ,手軽に実現する方法が提示されていたため共有します.
項目 | 詳細 |
---|---|
目的 | NixOS上で(正道な感じの設定で)Juliaが動くようにしたい |
注意 | 私はNixOSおよびNixは素人という点をご留意ください |
問題点
NixOSはFHSを準拠としたOSの設計になっておらず, /lib64/ld-linux-x86-64.so.2
等の
動的リンクへアクセスできないことが原因となり素直には動いてくれません.
このことは他の方の 過去記事1 や 過去記事2 でも指摘されていますが,私はNix特有のoverlay等をまだ把握しておらず,メンテが難しそうな解決策は避けたい気持ちです.
この問題はより一般的な視点として,NixOS向けにパッチがあてられたJuliaバイナリが配布されていないことに起因するようです (参考,動的リンクあたりよくわからん).
解決策
nix-ld というものを使ってこの問題を解決します.実際に必要な対応は リンク先L.250-252 を追記の上,
$ sudo nix-channel --add https://github.com/Mic92/nix-ld/archive/main.tar.gz nix-ld
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
を実行・再起動した後, Juliaup のインストールをして julia
を実行すれば動くかと思います.
未確認な事
- vscodeでの実行に問題がないか
- Plot関連含め,色々なライブラリの挙動に問題ないか
蛇足
日本語入力やLUKS on LVM等は簡単に実現できるので,自分みたいなちょっといじる程度のLinuxユーザにとっては,相当便利なOSになってきてると思います.
既に色んな記事で紹介されていると思いますが
- 日本語入力は こちらのL.48-52
- LUKS on LVM (with usb key) は L.15-29
あたりで実現しています.自動生成される hardware-configuration.nix
との兼ね合いで hardware-configuration.nix
の記述の一部をコメントアウトする必要がありますが,その点を除けばリンク先の設定ファイルをコピーして nixos-install
すればほぼ私の環境が再現できます(i3の設定等は別).