首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有GUI的服务器上运行Smalltalk?

在没有GUI的服务器上运行Smalltalk?
EN

Stack Overflow用户
提问于 2010-03-15 02:46:30
回答 5查看 3.1K关注 0票数 28

我有一个相当独特的问题--我想在生产服务器上运行Smalltalk,而不使用图形界面。对于大众或Pharo (甚至是Squeak),这是可能的吗?

我有一个没有X的VPS主机,希望有几个网站运行在Smalltalk上,同时在本地用成熟的Smalltalk环境开发它们,包括GUI。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-15 18:16:37

是的,可以以一种“无头”的方式部署Pharo。只需发送-headless就行了。示例:

代码语言:javascript
复制
#!/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

在无头模式下运行PharoCore镜像并运行RFBServer (远程缓冲服务器)是很常见的,它实际上是一个VNC服务器。然后,您可以通过VNC客户端连接到该图像,并且可以像在本地一样浏览和使用Smalltalk图像。

我建议你读一读

http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/

或者是最新的海滨书。

干杯

票数 21
EN

Stack Overflow用户

发布于 2010-03-15 05:52:56

How is the Deployment in different Programming Languages?中回答

Smalltalk

文档Deployment with Apache一章中介绍了如何使用SeasideApache httpd部署SqueakPharo web应用程序。

票数 9
EN

Stack Overflow用户

发布于 2010-03-15 02:58:51

如果我在VPS上有root访问权限,我会亲自安装Xvnc,它不会在服务器上添加太多的膨胀,而且使用GUI管理Squeak和Pharo要容易得多。

通过让Squeak占据整个屏幕,您可以在其自己的Xvnc显示中启动每个Squeak实例,而不依赖于窗口管理器。

您只需要最少的X支持文件。在无头Ubuntu上,apt-get install tightvncserver只能拉取19.8Mb的包。与RFBServer不同的是,它只适用于任何Squeak/Pharo镜像。

我是这样做的:

对于每个VM,启动一个Xvnc会话。您可以根据需要使用任意数量的显示器。在VNC端口5900上运行Display :0,在5901上运行display :1,依此类推。

在display :0上声明Xvnc

代码语言:javascript
复制
Xvnc :0 -nolisten tcp -geometry 1024x726 -depth 24 &

然后在该显示器上启动Squeak

代码语言:javascript
复制
squeak -display :0 -- ~/fullscreen.st  &

fullscreen.st是一个简单的Smalltalk statup脚本,可以根据屏幕的大小调整Squeak

代码语言:javascript
复制
"fullscreen.st"
ScreenController new fullScreenOn

关于安全性的说明

默认情况下,Xvnc接受没有密码的连接,因此我建议您至少采取以下预防措施之一。

  • 强制Xvnc侦听回送。为此,我使用了一个Xvnc技巧端口,并使用ssh port forwarding.
  • Block firewall
  • Read上的端口连接到-rfbauth参数上,以设置Xvnc密码authentication.

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2443281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档