Подтвердить что ты не робот

Запустите Smalltalk на сервере без GUI?

У меня есть довольно четкий вопрос - я бы хотел запустить Smalltalk на производственном сервере без использования графического интерфейса. Возможно ли это с VW или Pharo (возможно, даже Squeak)?

У меня есть VPS-хостинг без X и хотелось бы иметь несколько сайтов, работающих на Smalltalk, и разрабатывать их локально с полномасштабным Smalltalk env, включая графический интерфейс.

4b9b3361

Ответ 1

Да, можно установить 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

Обычно развертывается образ PharoCore, работающий на Seaside, в режиме безголового и запуска RFBServer (удаленный буферный сервер), который на самом деле является сервером VNC. Затем вы можете подключиться к этому изображению через клиент VNC, и вы можете просматривать и использовать изображение Smalltalk, как если бы оно было локально.

Я предлагаю вам прочитать

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

Или новая приморская книга.

Приветствия

Ответ 3

Если бы у меня был root-доступ к VPS, я бы лично установил Xvnc, это не добавит слишком много раздувания на сервер, и намного проще управлять Squeak и Pharo с помощью графического интерфейса.

Вы можете запустить каждый экземпляр Squeak на своем собственном дисплее Xvnc, не полагаясь на диспетчер окон, запустив Squeak на весь экран.

Вам нужны только минимальные файлы поддержки X. На безголовом Ubuntu apt-get install tightvncserver извлекается только 19,8 МБ пакетов. И в отличие от RFBServer он будет работать с любым изображением Squeak/Pharo.


Вот как я это делаю:

Для каждой виртуальной машины запускается сеанс Xvnc. У вас может быть столько дисплеев, сколько вам нужно. Дисплей :0 работает на порту VNC 5900, отображается :1 на 5901 и т.д.

Чтобы отобразить statrt Xvnc :0

Xvnc :0 -nolisten tcp -geometry 1024x726 -depth 24 &

Затем запустите Squeak на этом дисплее

squeak -display :0 -- ~/fullscreen.st  &

fullscreen.st представляет собой простой Smalltalk statup script, который настраивает Squeak на размер экрана

"fullscreen.st"
ScreenController new fullScreenOn

Заметка о безопасности

По умолчанию Xvnc принимает соединения без пароля, поэтому я предлагаю вам принять хотя бы одну из следующих мер предосторожности.

  • Заставляет Xvnc прослушивать петлю. Для этой цели я использую трюк LD_PRELOAD подобный этому, и подключаться с помощью перенаправления портов ssh.
  • Заблокируйте порт на вашем брандмауэре
  • Прочитайте аргумент -rfbauth, чтобы настроить аутентификацию пароля Xvnc.

Ответ 4

Не забывайте, что существуют также среды Smalltalk, специально разработанные для работы без головок на сервере, например:

  • GNU Smalltalk (стиль сценариев Unix, свободное ПО)
  • GemStone/S (стиль сервера приложений, проприетарный, но бесплатный для небольших установок)

Одна из конкретных целей проектирования Pharo заключается в том, чтобы развести среду разработки с основным изображением, чтобы упростить развертывание, однако я не знаю, как далеко продвинулись эти усилия, и не включает ли это также полное удаление GUI.

Я не уверен в VisualWorks, но я не удивлюсь, если бы у них был режим безголовья.

Немного дальше в левом поле, некоторые считают Ruby "Smalltalk для Unix-сервера". Хотя, конечно, Ruby - это совершенно другой и гораздо менее красивый язык, чем Smalltalk.

Вы пробовали просить Seaside списки рассылки? Они должны заниматься этим материалом все время. Например, компания Avi Bryant Smallthought Systems работает как DabbleDB и trendly от Squeak.