سؤال

أريد أن أكون قادرًا على الحصول على قذائف erlang للتحدث. أنا أركض على OS X.

جربت مثال TUT17 هنا.

لقد حاولت أيضًا:

$ erl -sname foo

ثم في محطة جديدة:

$ erl -sname bar

(bar@elife)1> net_adm:ping(foo@elife).
pang

أيه أفكار؟

هل كانت مفيدة؟

المحلول

إنه نوع من المكسور على ماك. بشكل افتراضي ، لا يمكن لـ MAC حل اسمه القصير. اسم مضيفك هو على الأرجح "elife.local".

إذا بدأت ERL مع -name FQDN ، فستنجح الأصوات.

IE: سوف تبدأ به

$ erl -name foo@elife.local

ربما يمكن إصلاح هذا عن طريق جعل جهاز Mac قادرًا على حل اسمه القصير الخاص

فيما يلي مثال على الإخراج من جهاز Mac الخاص بي. عندما أفعل ، أحصل على نفس النتيجة مثلك.

العقدة الأولى:

$ erl -name foo@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
(foo@mookie.local)1> 

العقدة الأخرى:

$ erl -name bar@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
(bar@mookie.local)1> net_adm:ping('foo@mookie.local').
pong

نصائح أخرى

قد يكون الإصلاح الأكثر بساطة هو تحرير ملف /etc /hosts وتأكد من أن لديك شيء مثل هذا السطر:

127.0.0.1 LocalHost Elife

يعمل MAC بشكل جيد مع أسماء قصيرة ، وأعتقد أن هذا هو ما فعله.

بالنسبة للعقد التواصل مع بعضها البعض ، يجب أن يكون كلاهما نفس ملف تعريف الارتباط. على نفس المربع ، ينتهي الأمر باستخدام ملف تعريف الارتباط من ملف $ home/.erlang.cookie. إذا لم يكن هذا الملف موجودًا ، فإنه ينشئ ملفًا جديدًا ووضع بعض ملفات تعريف الارتباط العشوائية فيه. تستخدم قذائف المستقبل نفس ملف تعريف الارتباط. ولكن من الأفضل دائمًا تحديد ملف تعريف الارتباط على سطر الأوامر عبر معلمة setCoookie.

erl -name node1@foo.local -setcookie mycookie

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top