# 20240318114756 raspi4 guileのインストール #tech #raspi4 ``` $ 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` の反映ができていなかったかもしれない。 動作確認 ```scm $ guile $ (use-modules (ice-9 slib)) $ (require 'primes) ... $ (prime? 13) $ $1 = #t ``` とかなっていればOK。 ## Ref. - [The SLIB Portable Scheme Library](https://people.csail.mit.edu/jaffer/SLIB.html) - [SLIB (Guile Reference Manual)](https://www.gnu.org/software/guile/manual/html_node/SLIB.html) - [SLIB installation (Guile Reference Manual)](https://www.gnu.org/software/guile/manual/html_node/SLIB-installation.html)