Hatena::ブログ(Diary)

そんな話はいつでもできる このページをアンテナに追加 RSSフィード

ひま〜じ〜ん! きっと何者にもなれないfu7mu4が告げる!

2017-06-14 世界にちらばった愛すべき人たちに会いにゆこう

[][][] Remote Swank Server on Linux/Vagrant

Vagrant で Swank-serverを動かしてみる


元ネタは、https://stackoverflow.com/questions/37634881/connecting-to-a-remote-lisp-without-ssh

Swank-server/Xenial (192.168.24.33) の PORT 4005へ Emacsslime-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を待つ

Emacsからslime-connect

Emacsから普通にslime-connectで繋ぐ

M-x sline-connect入力し、ホストに 192.168.33.24 ポートに 4005 とする。

これで接続できた。

Emacsslime側で例えば関数定義すると、4005 ポートを通じて送られているので、先のSwank-server側でその関数使用できる。また、グローバルな変数を実行中に書き換えたりもできる。

一旦終了

このswank-server側は普通Vagrantなので、sbclから

(quit)

で抜けて、さらに Xenialからexitしてから、

vagrant halt

で一旦終了させておける。

また遊ぶときは、vagrant upすればいいのかなー。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/fu7mu4/20170614/1497452408
おとなり日記
Read the top page of this blog in English (Translated by Google) ここの文章は無断リンク(トラックバック含む)、無断引用可。トラックバックは無断で削除することもあります。 All code on this blog without some notation is released Creative Commons 0 v1 or MIT License.