我有一个相当明显的问题 - 我想在不使用图形界面的情况下在生产服务器上运行Smalltalk。 VW或Pharo(甚至是Squeak)可以实现吗?
我有一个没有X的VPS托管,并希望在Smalltalk上运行很少的网站,同时使用功能齐全的Smalltalk env在本地开发它们,包括GUI。
答案 0 :(得分:20)
是的,可以以“无头”的方式部署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
通常以无头模式部署运行Seaside的PharoCore映像并运行RFBServer(远程缓冲服务器),这实际上是VNC服务器。然后,您可以通过VNC客户端连接到该图像,您可以浏览并使用Smalltalk图像,就像它是本地的一样。
我建议你阅读
http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
或者新的海边书。
干杯
答案 1 :(得分:9)
正如How is the Deployment in different Programming Languages?中所述:
Smalltalk:
文档“{3}}”中介绍了使用Squeak和Pharo部署Seaside或Apache httpd Web应用程序。
答案 2 :(得分:7)
如果我在VPS上有root访问权限,我会亲自安装Xvnc,它不会在服务器上添加太多膨胀,并且使用GUI管理Squeak和Pharo要容易得多。
您可以通过让Squeak占用整个屏幕而不依赖于Window Manager来在其自己的Xvnc显示中启动每个Squeak实例。
您只需要最少的X支持文件。在无头的Ubuntu apt-get install tightvncserver
上只有19.8 Mb的包。与RFBServer不同,它只适用于任何Squeak / Pharo图像。
我是这样做的:
为每个VM启动一个Xvnc会话。您可以根据需要使用任意数量的显示器。显示:0
在VNC端口5900上运行,在5901上显示:1
,依此类推。
在展示:0
Xvnc :0 -nolisten tcp -geometry 1024x726 -depth 24 &
然后在该显示屏上启动Squeak
squeak -display :0 -- ~/fullscreen.st &
fullscreen.st
是一个简单的Smalltalk statup脚本,可将Squeak调整为屏幕大小
"fullscreen.st"
ScreenController new fullScreenOn
默认情况下,Xvnc接受没有密码的连接,因此我建议您至少采取以下一种预防措施。
-rfbauth
参数以设置Xvnc密码身份验证。答案 3 :(得分:7)
不要忘记还有Smalltalk环境专为服务器上的无头操作而设计,例如:
Pharo的一个具体设计目标是将开发环境与核心映像分开,以便更容易部署,但是我不知道这项工作的进展有多远,也不包括完全删除GUI。
我不确定VisualWorks,但如果他们有无头模式,我不会感到惊讶。
在左侧字段中稍微远一些,有些人认为Ruby是“Unix服务器的Smalltalk”。虽然Ruby当然是一种与Smalltalk完全不同且不那么美丽的语言。
您是否尝试过询问Seaside mailing lists?他们必须一直处理这些事情。例如,Avi Bryant的公司Smallthought Systems在Squeak上运行DabbleDB和trendly。
答案 4 :(得分:3)