Как установить веб-сервер в языке Common LISP?

Несколько месяцев назад я был вдохновлен великолепной книгой язык Common LISP ANSI, записанный Paul Graham и оператором, что Lisp мог использоваться в качестве секретного оружия в Вашей веб-разработке, опубликованной тем же автором на его блоге. Ничего себе, это удивительно. Это - что-то, что я искал долгое время. Автор действительно разработал успешную сеть applcation и продал ее Yahoo.

С теми, которые поощряют изображения, я решил проводить некоторое время (1 год или 2-летний, кто знает) при изучении языка Common LISP. Возможно, когда-нибудь я буду разработка мое веб-приложение и превращаться в великого эксперта Lisp. На самом деле это - второй раз для меня для получения для изучения Lisp. Первый раз был несколько лет назад, когда я был очарован известной книгой SICP, но найден, более поздняя Схема была так невероятно незрелой для реального применения.

После чтения некоторых глав языка Common LISP ANSI я был вполне уверен, который является замечательной книгой, полной подробного исследования языка Common LISP. Затем я начал настраивать веб-сервер в языке Common LISP. В конце концов, это должно быть лучшим способом, если Вы хотите изучить что-то. Демонстрации всегда лучше, чем определения.

Как предложено книгой Практический язык Common LISP (между прочим, это - также замечательная книга), я принял решение установить AllegroServe на некоторой реализации языка Common LISP. Затем от где-то в другом месте, я узнал, что Hunchentoot, кажется, лучше, чем AllegroServe. (Я не помню, от где и кого это слово. Не спорите со мной.)

Как ни странно, Вы знаете то, что, я никогда не мог, установил эти два пакета на любой реализации языка Common LISP. Более раздражающе я даже не знаю почему. Машина всегда слюна много жаргона и приводит меня в хаос. Я попытался искать Интернет и ничего не нашел.

Мог кто-либо, кто успешно установил эти пакеты в Linux, говорят мне, как Вы сделали это? Вы столкнулись с проблемой? Как сделал Вас вычисленный что не так и зафиксировал его? Чем более подробный, тем более полезный.

15
задан Bill the Lizard 25 August 2010 в 14:16
поделиться

3 ответа

Вы пробовали эти инструкции ?

У меня уже была работающая установка SBCL, поэтому я выполнил только вторую половину инструкций. Он устанавливает очень минимальное веб-приложение, поэтому вы можете увидеть, как структурировать собственное веб-приложение.

Эти инструкции могут быть не совсем тем, что вы ищете - они предназначены для настройки веб-сервера (в Ubuntu) с удаленным взаимодействием с emacs / SLIME, но я полагаю, что «удаленное взаимодействие» может быть таким же ну значит localhost.

6
ответ дан 1 December 2019 в 04:40
поделиться

Пол Грэм, для начала: -)

Я тоже обнаружил, что Common Lisp проделал большую работу, чтобы пройти первый шаг. Окружающая среда ужасна, когда вы только начинаете, нет четкого Единого Истинного Пути, чтобы добраться до точки, где вы можете вставить какой-то код и увидеть некоторые результаты (как, например, с Python). Как и вы, я потратил много времени, перескакивая с одной реализации на другую. Итак, мой совет:

Я предлагаю вам просто выбрать один и игнорировать все остальные советы, пока вы не добьетесь успеха.

Если вы не в настроении, просто скачайте Apache и напишите немного PHP: -)

0
ответ дан 1 December 2019 в 04:40
поделиться

По сути, эти шаги по установке взяты из этой статьи Простое веб-приложение на Лиспе для начинающих , рекомендованное Фрэнком Шеараром (еще раз спасибо). Но я не выполнил точных шагов, потому что (1) я хотел бы установить Common Lisp с локальным пользователем; (2) Я не знаком с некоторыми вещами, упомянутыми автором. Вы можете ознакомиться с оригинальной статьей или просто подписаться на меня здесь. Боюсь, моим инструкциям гораздо легче следовать. :)

Перед установкой необходимо загрузить три пакета. Бинарные и исходные пакеты sbcl можно загрузить здесь , а пакет smanek можно загрузить здесь .

  • sbcl-1.0.38-x86-linux-binary.tar.bz2

  • sbcl-1.0.38-source.tar.bz2

  • smanek-trivial-lisp-webapp-3681c1

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

Вот что я делаю ( заменяю YOURPATH на ваш реальный путь, и я предполагаю, что вы используете BASH ):

1. Установите двоичный пакет sbcl

tar jxf sbcl-1.0.38-x86-linux-binary.tar.bz2

cd sbcl-1.0.38-x86-linux

INSTALL_ROOT=YOURPATH sh install.sh

cd ..

Итак, двоичный пакет sbcl установлен. Когда программа установки сообщает что-то вроде «руководство не найдено», это нормально, так как руководство не включено в двоичный пакет. Будь как будет.

2. Установите ПУТЬ и SBCL_HOME

export PATH=YOURPATH/bin/:$PATH

export SBCL_HOME=YOURPATH/lib/sbcl/

3. Установите исходный пакет sbcl

tar jxf sbcl-1.0.38-source.tar.bz2

cd sbcl-1.0.38

sh make.sh

export SBCL_HOME=''

INSTALL_ROOT=YOUROTHTERPATH sh install.sh

cd ..

ПРИМЕЧАНИЕ. Возможно, вам потребуется указать другой каталог для установки, иначе он будет установлен в тот же каталог, в котором находится двоичный файл sbcl.

4. Установите ПУТЬ и SBCL_HOME

export PATH=YOUROTHERPATH/bin/:$PATH

export SBCL_HOME=YOUROTHERPATH/lib/sbcl/

5. Установите пакет smanek

unzip smanek-trivial-lisp-webapp-36816c1.zip

cd smanek-trival-lisp-webapp-36816c1

cd scripts

./startserver.sh

Когда он говорит «Веб-сервер запущен на порту 8080», вы можете посетить « http: // localhost: 8080 » в своем веб-браузере. Он там, правда?

6. Несколько примечаний

  • После помещения трех пакетов в один каталог вы можете запускать вышеуказанные сценарии один за другим или в пакетном режиме. Не забудьте заменить PATH на свои настоящие пути.
  • Я подозреваю, что Шанил Манек много раз взламывал пакеты asdf и hunchentoot, так как я ничего не нашел в $ HOME / .sbclrc и $ HOME / .sbcl. Спасибо, Шанил Манек, вы очень помогли многим людям.
  • Я до сих пор испытываю ненависть к тем, кто всегда много говорит, а делает мало. Даже люди злятся, но очевидно, что важно то, что они говорят, а не то, как они это говорят. Тем не менее, я был неправ, говоря что-то плохое в плохом настроении.
5
ответ дан 1 December 2019 в 04:40
поделиться