書いた.
anyenvというのはおなじみナントカenv系のツール(xxenvと呼ぶことにする)をインストールすることができるツールで,rbenvとかplenvとかをインストールすることができるのだが,なんとCommon lispの処理系であるRoswellをインストールできないではないか!!これはいけない.roswellをインストールできるようにせねばならない.
しかしながらanyenvはインストールするxxenv系ツールに一定の慣習を要求しており,例えばXXENV_ROOT
といった環境変数を渡してインストール先を教えたり,xxenv init -
といった呼び出しを行ってxxenvの初期化を行おうとしたり,bin/
以下にxxenvといった実行ファイルがあることを期待するなど,既存のxxenv系ツールの挙動や設計にかなり依存している.しかしRoswell自体はxxenv系の慣習通りに動くわけではないので,その仲介を行う必要がある.例えば何もしないとRoswellはインストール先ではなく~/.roswell
配下に様々な処理系をインストールしようとするし,roswell init
というコマンドは存在しない.代わりにros
コマンドがあるが,ros init
は全く別の動作をするコマンドだ.したがってros
コマンドの代わりにanyenvからの呼び出しを受けて,種々の下準備を行ってros
を呼び出すためのラッパーを今回用意したのである.
このラッパーが有効であれば,anyenv install roswell
でroswellがインストールされ,パスが通されるし,次回ログイン時にroswellが要求する初回起動処理が行われ,~/.anyenv/env/roswell/
以下に種々のライブラリなどが配置されるようになる.
またアンインストールもanyenv uninstall roswell
で行え,ほぼ環境を汚さない.
今のところanyenvの提供元にこのラッパーを呼び出してくれるようにP-Rを出しているところなので,そのうち使えるようになると思う.