singularityを使ったRustのデバッグビルド
--sandbox と --writable を使って段階的にビルドするのがいいらしい
/ie-ryukyu/singularity/rust-debugで作業
ssdの方がはやそう
とりあえずaptのupdateだけするファイルを生成
code:rust-debug.def
BootStrap: docker
From: ubuntu:20.04
%post
apt-get -y update
apt-get -y upgrade
ビルド
singularity build --sandbox --fakeroot rust-debug rust-debug.def
sifではなくディレクトリが生成される
シェルログインして環境を作る
singularity shell --fakeroot --writable rust-debug
Singularity> apt install -y cmake python3 clang ninja-build lldb gdb curl git
とりあえず必要そうなものをinstall
cmake
python3
clang
ninja-build
ninjaはaptだとこの名前
lldb
curl
git
python
pythonでpython3を優先させる
update-alternatives --install /usr/bin/python python /usr/bin/python3 10
/rootは実行ユーザーの$HOMEとマウントされるので適当なディレクトリをつくる
mkdir /rust
cd /rust
rustのリポジトリもってくる
git clone https://github.com/rust-lang/rust.git
初期設定
cp config.toml.example config.toml
vimで開いて
#debug = falseをdebug = true
#ninja = falseをninja = true
#prefix = "/usr/local"を prefix = "/usr/local"
Rustのビルドとインストール
./x.py build && ./x.py install
ビルドした結果をsifに変換する
singularity build --fakeroot debugging-rust-compiler.sif rust-debug
[debugging-rust-compiler.sif