最近,とある手持ちのGentooマシンのlibcをglibcからmuslに移行した。 これはそのときの備忘録の一部である。
まずは上流からGHCのバイナリをダウンロードしてくる。 Alpine向けのビルドがmuslとリンクされているのでそれを使う。
% cd /tmp
% curl -L https://downloads.haskell.org/~ghc/9.0.2/ghc-9.0.2-x86_64-alpine3.12-linux-gmp.tar.xz \
| tar xpvJ
% cd ghc-9.0.2-x86_64-unknown-linux
% ./configure --prefix=/opt/ghc-bin CC=clang # ここ重要(特にGCC-freeでないシステムの場合)
% doas make install
ほんでもってportageにパスを通す。
流派によって様々な方法があるが,ここでは/etc/profile.env
を直接編集する。
このファイルはenv-update(1)
によって上書きされるので消し忘れ防止にちょうど良い。
...
export PATH="...:/opt/ghc-bin/bin"
...
そしていよいよghcをemergeする。
EXTRA_ECONF
でCC_STAGE0
とCC
を上書きしているのがミソ。
変数を恒久的に設定したい場合はpackage.env
を使う。
% EXTRA_ECONF="CC_STAGE0=clang CC=clang AR=llvm-ar" USE=ghcbootstrap doas emerge ghc
最後にお掃除をする。
% doas rm -r /opt/ghc-bin
以上
快適な(GCC-free)Gentooライフを!