Как я устанавливаю LFE на Кармической Ubuntu?

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]

Erlang, кажется, работает:

$ 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 ()

Существует ли пример, как я создал бы привет мировой исходный файл и компиляцию и выполнил бы ее?

5
задан user89021 14 May 2010 в 16:54
поделиться

1 ответ

Нет, вы ничего не упустили. 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

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

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

7
ответ дан 14 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

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