يتطلب ant build.xml مدخلات المستخدم ، لكن Eclipse لا يوجد لديه tty
سؤال
أحاول دمج Eclipse بشكل أفضل مع Build.xml. يدعو ملف إنشاء GNU إلى الجزء الأصلي من البرنامج ، ويستخدم Makefile sudo لتجميع libs في مسار النظام. لسوء الحظ ، يتطلب ذلك إدخال كلمة مرور ، ولا تقبل محطة Eclipse إدخال المستخدم. لذا فإن النتيجة من تشغيل البناء في Eclipse هي:
[exec] sudo: no tty present and no askpass program specified
[exec] make: *** [install] Error 1
بأي طريقة حول هذه المشكلة؟ هل يمكن رفع البناء النملة إلى الجذر بطريقة أخرى؟
المحلول
إعداد حساب منفصل ، على سبيل المثال النشر. تعديل /etc/sudoers
لتشمل الأسماء المستعارة التي تسمح النشر لتنفيذ أمر واحد ، على سبيل المثال نشر, ، كما الجذر. يصنع النشر NOEXEC:
. تخزين النشر كلمة المرور في ملف غير مرئي ، على سبيل المثال .deployconf امتلاك المستخدم فقط: على سبيل المثال 400
أو 600
. تحميل كلمة المرور في ant
, واستخدام كما هو مطلوب:
u003Cloadfile srcfile="${user.home}/.deployconf" property="deployconf"/>
هذا يعمل بشكل جيد معu003Csignjar/> ، لكنني لم أجربها معu003Cexec/> . قد تكون هناك حاجة لبعض الجهد لإبعاد خطوط الخطوط .deployconf.
نصائح أخرى
يمكنك إعداد ملف /etc /sudoers الخاص بك بحيث يحدد nopasswd: بالنسبة للمستخدم الذي يتم بموجبه تشغيل Eclipse ، وللأمر الذي تستخدمه لتحريك libs. باستخدام أمر Visudo ، يمكنك إضافة هذا إلى نهاية /etc /sudoers:
eclipseuser ALL = NOPASSWD: /bin/cp
كن على دراية بأن هذا يمثل خطرًا على الأمان لأن Eclipseuser سيكون لديه القدرة على الكتابة فوق أي ملف على النظام.
ربما "حل" غبي ، ولكن لماذا لا تجعل النشر خطوة منفصلة؟ اطلب من البناء جعل قطعة أثرية للتغليف: DEP ، RPM أو شيء من هذا القبيل.