Vagrant で Swank-serverを動かしてみる
元ネタは、https://stackoverflow.com/questions/37634881/connecting-to-a-remote-lisp-without-ssh
Swank-server/Xenial (192.168.24.33) の PORT 4005へ Emacsのslime-connectで接続するだけ
Vagrantfileを用意する
こんな内容のVagrantfileを用意する。
元ネタはtrusty64だったが、今はxenial64かなーと変更。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/xenial64" config.vm.network "forwarded_port", guest: 4005, host: 4005 config.vm.network "private_network", ip: "192.168.33.24" config.vm.provider "virtualbox" do |vb| vb.name = "lisp_host" vb.gui = false vb.memory = "1024" end config.vm.provision "shell", inline: "apt-get update if which apt-get > /dev/null; then sudo apt-get -y install git build-essential automake libcurl4-openssl-dev;fi git clone -b release https://github.com/roswell/roswell.git cd roswell sh bootstrap ./configure make sudo make install sudo ros setup" # SHELL end
やっぱりroswelはいいね。
それから、Linuxを起動。
vagrant up
久しぶりだったので、新しいxenialあるよといわれたので、起動後すぐに、
vagrant halt vagrant destroy
してから
vagrant box update
してからもういちど
vagrant up
したけど、まあ、あまり変化はない。そらそうか。
Xenial64にはいる
vagrant ssh
でxenial64にはいって、
ros run -Q
でsbclを起動する。
あとは、sbcl のプロンプトがでるので、Vagrantfileで指定したアドレスと転送ポートを指定して、swank-serverを起動する。
;;load swank (ql:quickload :swank) ;;loopback interface (setf swank::*loopback-interface* "192.168.33.24") ;;swank-start :4005 (swank:create-server)
として、PORT 4005で slime-connectを待つ