سؤال تثبيت نص برمجي في PATH $


أحاول استخدام yeoman في أوبونتو. يتم تثبيت كل شيء بشكل صحيح ولكن لا يمكنني استخدام الأمر yo من باش. إذا انتقلت إلى الدليل المناسب وركضت node cli.js كل شيء يعمل من موجه الأوامر لذلك أعتقد أن مشكلتي هي أن البرنامج النصي لم يتم تحميله في بلدي $PATH متغير.

الدليل للنص /home/qtrain/.node/lib/node_modules/yo والسيناريو الفعلي هو /home/qtrain/.node/lib/node_modules/yo/cli.js 

حاولت إضافة المسار إلى ملف .bashrc باستخدام

export PATH="$PATH:$HOME/.node/lib/node_modules/yo" 

ولكن عندما أعد تشغيل الجهاز ونوعه $PATH

هذا هو مخرجي:

/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.node/lib/node_modules/yo: No such file or directory

ومن الواضح أن يو لا تعمل.

سؤالي: هل لا أضيف PATH $ بشكل صحيح؟ هل يجب علي إضافة الدليل أو البرنامج النصي الفعلي للحصول على هذا للعمل في سطر الأوامر؟

علاوة على ذلك تم تثبيت يو باستخدام sudo npm install -g yo لذلك يتم تثبيته على مستوى العالم. سيكون موضع تقدير أي مساعدة.


2
2017-08-08 14:58


الأصل


أيضا ، هناك عدم تطابق في اقتباس في export بيان. - Jos
تحرير شكرا جوس - Michael James
على مجرد نقطة من كتابة "$ PATH" والحصول على الإخراج الذي قمت به. أفضل طريقة لمعرفة القيمة الحالية لبيئة PATH الخاصة بك هي: echo $PATH - نشرها Cris Holdorph كإجابة. - Tim


الأجوبة:


المشكلة هي أنه حتى إذا قمت بإضافة هذا الدليل إلى المسار الخاص بك ، لا يوجد برنامج قابل للتنفيذ يدعى "يو" هناك.

أود أن أضيف وظيفة إلى .bashrc الخاص بك:

yo() ( cd ~/.node/lib/node_modules/yo && node cli.js "$@" )

2
2017-08-08 15:27



Oli ، أنا استخدم الأقواس عن قصد ، لذلك cd ينفذ الأمر في subshell: لن يؤثر على PWD الخاص shell الحالي. - glenn jackman
ثم ستحتاج إلى التفاف (...) مع { ...; }. أتلقى خطأ في بناء الجملة إذا حاولت ذلك. - Oli♦
في الواقع. ثابت. شكر. - glenn jackman


أعلم أنه شكل سيء للإجابة على سؤالي ، ولكن يبدو أن هذه مشكلة شائعة جدًا ، لذا نأمل أن يساعد ذلك الآخرين. تلقى المساعدة على قناة irc # ubuntu-pa-us.

حل:

إعطاء أذونات الملف القابل للتنفيذ.

    cd /path/to/directory   
    chmod +x cli.js

قم بإنشاء ارتباط رمزي - يجب استخدام المسار الكامل للدليل - في حالتي

    ln -s /home/user/.node/lib/node_modules/yo/cli.js /usr/bin/yo

يو الآن تعمل من سطر الأوامر.


0
2017-08-08 15:55



إنها ليست شكلًا سيئًا على الإطلاق ، بل يتم تشجيعها أيضًا: askubuntu.com/help/self-answer - glenn jackman
نظرًا لأنه مثبت تحت الدليل الرئيسي ، يجب عليك إضافة الرابط باسم $HOME/bin/yo و أضف $HOME/bin إلى المسار الخاص بك. - glenn jackman
glennjackman توش! ثكس جلين ، سوف تفعل. - Michael James