Выполненный Smalltalk на сервере без GUI?

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

Я имею VPS, размещающий без X, и хотел бы иметь небольшое количество работы веб-сайтов Smalltalk, при разработке их локально с полноценным ENV Smalltalk, включая GUI.

27
задан Craigy 20 August 2012 в 15:13
поделиться

5 ответов

Да, можно развернуть Pharo "безголовым" способом. Просто отправьте -headless и все. Пример:

#!/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/

Или новую книгу seaside.

Будьте здоровы

21
ответ дан 28 November 2019 в 05:12
поделиться

Как указано в Как происходит развертывание на разных языках программирования? :

Smalltalk :
{{ 1}} Развертывание веб-приложений Squeak или Pharo с использованием Seaside и Apache httpd описано в документации, глава Развертывание. с Apache .

9
ответ дан 28 November 2019 в 05:12
поделиться

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

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

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


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

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

Чтобы запустить Xvnc на дисплее : 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

A Примечание по безопасности

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

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

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

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

Один из Конкретные цели проектирования Pharo - отделить среду разработки от основного образа для упрощения развертывания, однако я не знаю, насколько далеко продвинулись эти усилия и включает ли оно также полное удаление графического интерфейса.

Я не уверен насчет VisualWorks, но я бы не удивился, если бы у них был безголовый режим.

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

Вы пробовали задать вопрос в списках рассылки Seaside ? Они должны постоянно заниматься этим. Компания Эви Брайанта Smalloughtt Systems, например, запускает как DabbleDB , так и с тенденцией Squeak.

7
ответ дан 28 November 2019 в 05:12
поделиться

О VW там серия скринкастов с примечаниями по развертыванию. http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_daily_deployment

3
ответ дан 28 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: