20240318114756 raspi4 guileのインストール

techraspi4

$ sudo apt install guile-3.0 guile-3.0-libs guile-3.0-dev

slibのインストールと設定

20240318 に raspberry pi OSのbookworm で試したところ、guile3に対応していないバージョンだったため、手動でインストールする。

$ sudo apt install slib

raspberry pi OSの場合、インストールされる先は /usr/share/slib/ 。 ンストール先をSCHEME_LIBRARY_PATH として環境変数に追加。 下記を ~/.profileに追加

export SCHEME_LIBRARY_PATH=/usr/share/slib/

slibは実装ごとにslibcatなるカタログファイルが必要。下記の手順で生成。

$ sudo mkdir -p /usr/share/guile/site/3.0
$ sudo touch /usr/share/guile/site/3.0/slibcat
$ sudo chmod a+rw /usr/share/guile/site/3.0/slibcat
$ sudo guile
GNU Guile 3.0.8
Copyright (C) 1995-2021 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (use-modules (ice-9 slib))
scheme@(guile-user)> (require 'new-catalog)
scheme@(guile-user)> (quit)

この後、通常ユーザーで

$ guile
.
.
.
$ scheme@(guile-user)> (use-modules (ice-9 slib))

をしてエラーが発生、 "WARNING: compilation of /usr/share/slib/guile.init failed:" などと表示されることがあったが、再現しなくなってしまった。 SCHEME_LIBRARY_PATH の反映ができていなかったかもしれない。

動作確認

$ guile
$ (use-modules (ice-9 slib))
$ (require 'primes)
...
$ (prime? 13)
$ $1 = #t

とかなっていればOK。

Ref.