Как мне установить LFE на Ubuntu Karmic? - PullRequest
5 голосов
/ 14 мая 2010

Erlang уже установлен:

$dpkg -l|grep erlang
ii  erlang                          1:13.b.3-dfsg-2ubuntu2            Concurrent, real-time, distributed function
ii  erlang-appmon                   1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application monitor
ii  erlang-asn1                     1:13.b.3-dfsg-2ubuntu2            Erlang/OTP modules for ASN.1 support
ii  erlang-base                     1:13.b.3-dfsg-2ubuntu2            Erlang/OTP virtual machine and base applica
ii  erlang-common-test              1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application for automated testin
ii  erlang-debugger                 1:13.b.3-dfsg-2ubuntu2            Erlang/OTP application for debugging and te
ii  erlang-dev                      1:13.b.3-dfsg-2ubuntu2            Erlang/OTP development libraries and header
[... many more]

Эрланг, кажется, работает:

$ erl
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> 

Я скачал lfe с github и проверил 0.5.2:

git clone http://github.com/rvirding/lfe.git
cd lfe
git checkout -b local0.5.2 e207eb2cad

$ configure
configure: command not found

$ make
mkdir -p ebin
erlc -I include -o ebin -W0 -Ddebug +debug_info src/*.erl
#erl -I -pa ebin -noshell -eval -noshell -run edoc file src/leex.erl -run init stop
#erl -I -pa ebin -noshell -eval -noshell -run edoc_run application "'Leex'" '"."' '[no_packages]'
#mv src/*.html doc/

Должно быть, я что-то глупо пропустил: o

$ sudo make install
make: *** No rule to make target `install'.  Stop.

$ erl -noshell -noinput -s lfe_boot start
{"init terminating in do_boot",{undef,[{lfe_boot,start,[]},{init,start_it,1},{init,start_em,1}]}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

Есть ли пример, как я мог бы создать исходный файл hello world, скомпилировать и запустить его?

1 Ответ

7 голосов
/ 14 мая 2010

Нет, ты ничего не пропустил. Makefile в LFE «менее чем совершенен» и должен игнорироваться, он будет улучшен в следующем выпуске. Для компенсации все необходимые файлы уже скомпилированы, а файлы .beam находятся в каталоге ebin. Поскольку он не является частью OTP, я не думаю, что он должен когда-либо устанавливаться там.

Самый простой способ справиться с этим - создать частный каталог библиотеки erlang и указать для него переменную среды ERL_LIBS. Затем просто поместите туда весь каталог LFE. Когда запускается erlang, сервер кода автоматически добавит каталоги lfe/ebin в путь, и файлы .beam будут автоматически найдены и загружены. Это будет работать с любым пакетом, который содержит каталог ebin. Это также работает на Windows. Итак:

  1. Создайте каталог libs, скажем ~/erlang/lib
  2. Установить переменную среды ERL_LIBS, export ERL_LIBS=~/erlang/lib
  3. Поместите туда весь каталог LFE

Когда вы запустите erlang, вы увидите /Users/rv/erlang/lib/lfe/ebin (или там, где он у вас есть) в пути кода (code:get_path()). После этого вы также сможете запустить оболочку LFE непосредственно с

erl -noshell -noinput -s lfe_boot start

Будут lfe и lfe.bat, которые также включают это в будущем.

Как и в случае с erlang, любой текстовый редактор будет работать для редактирования LFE. Для emacs есть режим LFE, который все еще довольно простой, но работает. Вы еще не можете запустить LFE в окне. Скоро. Лучший способ включить это - поместить в файл .emacs следующее:

;; LFE mode.
(setq load-path (cons "/Users/rv/erlang/lib/lfe/emacs" load-path))
(require 'lfe-start)

В lfe/examples есть несколько примеров файлов, все должны работать. В lfe/test/visual есть куча моих тестовых файлов, которые были включены в качестве файлов примеров. Чтобы скомпилировать файл LFE из обычной оболочки erlang, выполните

lfe_comp:file("foo").
l(foo).                 %No autloload here, do this to ensure loading

а из оболочки LFE сделать:

(c '"foo")              ;This will autoload

В lfe/docs есть куча документации, которая довольно точна, но user_guide.txt необходимо расширить. Также есть группа Google для LFE на

http://groups.google.se/group/lisp-flavoured-erlang

, который содержит некоторые интересные обсуждения, и люди довольно много написали в вики-сайте github.

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

...