2010-05-14 14 views
5

Erlang è già stato installato:Come installo LFE su Ubuntu Karmic?

$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 sembra funzionare:

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

ho scaricato LFE da github e controllato 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/ 

Deve essere qualcosa di stupido io perse: 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() 

Esiste un esempio su come creare un file sorgente di Hello World e compilarlo ed eseguirlo?

risposta

7

No, non c'è nulla che ti sia sfuggito. Il Makefile in LFE è "meno che perfetto" e deve essere ignorato, sarà migliorato nella prossima versione. Per compensare tutti i file necessari sono già stati compilati e i file .beam si trovano nella directory ebin. Dato che non fa parte di OTP, non penso che dovrebbe mai installarsi lì.

Il modo più semplice per gestirlo per creare una directory di libreria erlang privata e puntare la variabile di ambiente ERL_LIBS su di essa. Quindi basta trascinare l'intera directory LFE lì. All'avvio di erlang il code server aggiungerà automaticamente le directory lfe/ebin nel percorso e i file .beam verranno automaticamente trovati e caricati. Funzionerà con qualsiasi pacchetto che contenga una directory ebin. Funziona anche su Windows. Quindi:

  1. Fai directory libs, dicono ~/erlang/lib
  2. Impostare la variabile d'ambiente ERL_LIBS, export ERL_LIBS=~/erlang/lib
  3. mettere l'intera directory LFE ci

Quando si inizia a Erlang si vedrà, quindi /Users/rv/erlang/lib/lfe/ebin (o ovunque tu l'abbia) nel percorso del codice (code:get_path()). Sarà quindi anche in grado di avviare la shell LFE direttamente con

erl -noshell -noinput -s lfe_boot start 

Ci sarà un lfe e un lfe.bat che fa questo incluso anche in futuro.

Come con erlang qualsiasi editor di testo funzionerà per modificare LFE. Per emacs c'è una modalità LFE che è ancora piuttosto semplice ma funziona. Non è ancora possibile eseguire LFE in una finestra. Presto. Il modo migliore per includere questo è quello di mettere la seguente nel vostro file .emacs:

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

Ci sono alcuni file di esempio in lfe/examples, tutto dovrebbe funzionare. In lfe/test/visual ci sono alcuni miei file di test che sono stati inclusi come file di esempio. Per compilare un file LFE dalla shell erlang normale fare

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

mentre dalla shell LFE fare:

(c '"foo")    ;This will autoload 

C'è un po 'di documentazione lfe/docs che è abbastanza preciso, ma le user_guide.txt ha bisogno di essere esteso.C'è anche un gruppo Google per LFE a

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

che contiene alcune discussioni interessanti e la gente hanno scritto un bel po 'nel wiki github LFE.

Questo è tutto ciò che penso. contattami se/quando hai altre domande.

+0

Grazie mille per avermi guidato. - karlthorwald - aka – user89021