Dam*_*vat 27 user-interface smalltalk
我有一个相当明显的问题 - 我想在不使用图形界面的情况下在生产服务器上运行Smalltalk.这可能与大众或Pharo(甚至可能是Squeak)?
我有一个没有X的VPS托管,并希望在Smalltalk上运行很少的网站,同时使用功能齐全的Smalltalk env在本地开发它们,包括GUI.
小智 21
是的,可以以"无头"的方式部署Pharo.只需发送无头,即可.例:
#!/bin/sh
NOHUP="/usr/bin/nohup"
SQUEAK_VM="/usr/bin/squeakvm"
SQUEAK_OPTS="-mmap 100m -vm-sound-null -vm-display-X11 -headless"
SQUEAK="$SQUEAK_VM $SQUEAK_OPTS"
IMAGES_HOME="/home/miguel/squeak/images/azteca"
SCRIPTS_HOME="/home/miguel/squeak/scripts/azteca"
LOGS_HOME="/home/miguel/squeak/logs/azteca"
START_PORT=8080
END_PORT=8093
# Start the Magma image
echo "Starting Magma image"
$NOHUP $SQUEAK $IMAGES_HOME/magma.image $SCRIPTS_HOME/magma.st >> $LOGS_HOME/magma.nohup &
# Start the Seaside images
for PORT in `seq $START_PORT $END_PORT`; do
echo "Starting Seaside image on port: $port"
$NOHUP $SQUEAK $IMAGES_HOME/seaside.image $SCRIPTS_HOME/seaside.st
port $PORT >> $LOGS_HOME/seaside.nohup &
done
Run Code Online (Sandbox Code Playgroud)
通常在无头模式下部署运行Seaside的PharoCore映像并运行RFBServer(远程缓冲服务器),它实际上是VNC服务器.然后,您可以通过VNC客户端连接到该图像,您可以浏览并使用Smalltalk图像,就像它在本地一样.
我建议你看看
http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
或者新的海边书.
干杯
如果我在VPS上有root访问权限,我会亲自安装Xvnc,它不会在服务器上添加太多膨胀,并且使用GUI管理Squeak和Pharo要容易得多.
您可以启动在它自己的Xvnc显示每个佳乐实例,而不会因为佳乐占据整个屏幕依靠窗口管理器.
您只需要最少的X支持文件.在无头Ubuntu上apt-get install tightvncserver只提供19.8 Mb的包.与RFBServer不同,它只适用于任何Squeak/Pharo图像.
这是我如何做到这一点:
为每个VM启动一个Xvnc会话.您可以根据需要使用任意数量的显示器.显示屏:0在VNC端口5900上运行,显示:1在5901上,依此类推.
要在显示器上显示Xvnc :0
Xvnc :0 -nolisten tcp -geometry 1024x726 -depth 24 &
Run Code Online (Sandbox Code Playgroud)
然后在该显示屏上启动Squeak
squeak -display :0 -- ~/fullscreen.st &
Run Code Online (Sandbox Code Playgroud)
fullscreen.st 是一个简单的Smalltalk statup脚本,可以将Squeak调整为屏幕大小
"fullscreen.st"
ScreenController new fullScreenOn
Run Code Online (Sandbox Code Playgroud)
默认情况下,Xvnc接受没有密码的连接,因此我建议您至少采取以下预防措施之一.
-rfbauth设置Xvnc密码身份验证的参数.不要忘记,Smalltalk环境专门设计用于服务器上的无头操作,例如:
Pharo的一个特定设计目标是将开发环境与核心映像分开,以便更容易部署,但是我不知道这项工作已经进行了多远,也不知道它是否还包括完全删除GUI.
我不确定VisualWorks,但如果他们有无头模式我也不会感到惊讶.
在左侧领域稍微进一步,有些人认为Ruby是"Unix服务器的Smalltalk".虽然Ruby当然是一种与Smalltalk截然不同且不那么美丽的语言.
您是否尝试过在Seaside 邮件列表上询问?他们必须一直处理这些事情.阿维科比的公司Smallthought系统,例如,同时运行DabbleDB和trendly关闭吱吱声.