यहाँ मैं क्या कर समाप्त हो गया है
$ git clone https://github.com/rebar/rebar3.git
$ cd rebar3
.../rebar3$ ./bootstrap
और अब आप स्क्रिप्ट rebar3 है और पिछले अनुभाग में वर्णित के रूप में अपने $ पथ में कहीं करने के लिए इसे कॉपी कर सकते हैं ।
या, आप .zip file
डाउनलोड कर सकते हैं, इसे अनज़िप करें, तो rebar3 निर्देशिका में बदल सकते हैं और ./bootstrap
आदेश जारी।
जो /rebar3
निर्देशिका के अंदर निष्पादन योग्य rebar3
बनाता है। मैं /usr/local/bin
में rebar3
निष्पादन में ले जाया गया है, जो मेरे पथ वातावरण चर में सूचीबद्ध एक निर्देशिका (विभिन्न संभव पथ स्थानों here चर्चा कर रहे हैं) है:
.../rebar3$ sudo mv rebar3 /usr/local/bin
मुझे किसी भी प्रॉम्प्ट पर rebar3 आदेश का उपयोग करने की अनुमति देता है। an alternative
के रूप में, आप अपने अनुप्रयोग बनाने के बाद (अगला चरण देखें) आप अपने ऐप के निर्देशिका में और इस तरह है कि निर्देशिका मुद्दा rebar आदेशों से rebar3 कॉपी कर सकते हैं:
$ ./rebar3 .....
तब मैं created a new app:
~/erlang_programs$ rebar3 new app myapp
तब:
~/erlang_programs$ cd myapp
~/erlang_programs/myapp$
: (MyApp के स्थान पर अपने अनुप्रयोग नाम स्थानापन्न)
निर्भरता deps कुंजी के अंतर्गत rebar.config
फ़ाइल में सूचीबद्ध हैं::
{erl_opts, [debug_info]}.
{deps, [
{jsx, "2.8.0"}
]}.
rebar.config
यहाँ रहता 91,363,210
आदेश jsx
उपयोग करने के लिए एक तीसरी पार्टी JSON पुस्तकालय, मैं jsx
एक dependency के रूप में जोड़ा :
~/erlang_programs/myapp$ ls
LICENSE _build rebar.lock
README.md rebar.config src
फिर मैंने अपना एरलांग प्रोजेर जोड़ा
my_app/src/my.erl:
-module(my).
-export([test/0]).
test() ->
jsx:decode(<<"{\"data\": [1, 2, 3]}">>).
अंत: myapp/src
निर्देशिका के लिए कर रहा हूँ
~/erlang_programs/myapp$ rebar3 shell
===> Verifying dependencies...
===> Fetching jsx ({pkg,<<"jsx">>,<<"2.8.0">>})
===> Version cached at /Users/7stud/.cache/rebar3/hex/default/packages/jsx-2.8.0.tar is up to date, reusing it
===> Compiling jsx
===> Compiling myapp
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V6.4 (abort with ^G)
1> my:test().
[{<<"data">>,[1,2,3]}]
यदि आप मेरे मामले फ़ाइल में अपने .erl फ़ाइल में परिवर्तन कर, मेरे .erl, आपको खोल से बाहर निकलने की आवश्यकता नहीं है - बस सामान्य रूप से संकलित करें, उदाहरण के लिए c(my)
।
समस्या यह है कि मैं एक ऐसा फ़ंक्शन कॉल करना चाहता हूं जो erlang में मौजूद न हो। जिस फ़ंक्शन को मैं कॉल करना चाहता हूं वह तीसरे पक्ष के मॉड्यूल में है।आप देखते हैं, जब कोई एरलांग (साथ ही साथ किसी भी अन्य भाषा में) प्रोग्रामिंग कर रहा है, और वे कुछ जटिल करना चाहते हैं, अक्सर वे मॉड्यूल में अपना समाधान पोस्ट करते हैं और इसे आसानी से उपलब्ध कराते हैं। अधिकांश भाषाएं, उदा। पर्ल, पायथन, रूबी, * मॉड्यूल इंस्टॉलर्स * है, जो आपको तीसरे पक्ष के मॉड्यूल को डाउनलोड और स्थापित करने की अनुमति देता है जो सभी प्रकार की जटिल चीजें करता है। उदाहरण के लिए, एक JSON स्ट्रिंग को एक erlang मानचित्र में कनवर्ट करें। – 7stud
एक और विकल्प जो आप कर सकते हैं वह एक एस्क्रिप्ट बनाने के लिए है, यह आपको एरलांग कोड लिखने और कंसोल से स्क्रिप्ट चलाने देता है जो आपके कार्यों में कोड जो कुछ भी करता है वह करेगा। क्या यह आपकी मदद करेगा? –
इसे आज़माएं: 'func() -> jsx: decode (<<" {\ "हैलो \": \ "world \"} ">>)।" क्या यह काम करता है? – 7stud