Libsass: facepalm: فشل التثبيت لأن $ (PREFIX) / lib موجود بالفعل

تم إنشاؤها على ١٢ نوفمبر ٢٠١٨  ·  13تعليقات  ·  مصدر: sass/libsass

فشل التثبيت لأن $ (PREFIX) / lib موجود بالفعل

[stephan<strong i="6">@host</strong>:~/cvs/libsass]$ m install PREFIX=$HOME
mkdir /home/stephan/lib
mkdir: cannot create directory ‘/home/stephan/lib’: File exists
Makefile:263: recipe for target '/home/stephan/lib' failed
make: *** [/home/stephan/lib] Error 1

الإصلاح تافه: استخدم mkdir -p بدلاً من mkdir .

هذا هو نفس رقم 1992 ، لكن هذه التذكرة مغلقة لسبب غير مفهوم.

ملاحظة: عند محاولة استخدام الإصدار الذي تم إنشاؤه من أدوات آلية ، من خلال تشغيل autoconf لتحويل configure.ac إلى configure ، يفشل الناتج ./configure للأسباب التالية:

[stephan<strong i="18">@host</strong>:~/cvs/libsass]$ ./configure --prefix=$HOME
configure: error: cannot find install-sh, install.sh, or shtool in script "."/script

لذا فأنا أستخدم ملف makefile الذي تم إيداعه في الشجرة ، بدلاً من الملف الذي تم إنشاؤه بواسطة الأدوات الآلية (المعروف أيضًا باسم أدوات GNU "Auto، my ass!").

ال 13 كومينتر

لقد ظهر استخدام mkdir عدة مرات وتم رفضه لأنه ليس كذلك
محمول. نحن منفتحون على الحلول المحمولة.

يوم الاثنين ، 12 نوفمبر 2018 ، الساعة 6:55 مساءً ، كتب ستيفان بيل < [email protected] :

فشل التثبيت لأن $ (PREFIX) / lib موجود بالفعل

[ stephan @ host : ~ / cvs / libsass] $ m تثبيت PREFIX = $ HOME
مكدير / الصفحة الرئيسية / ستيفان / ليب
mkdir: لا يمكن إنشاء دليل '/ home / stephan / lib': الملف موجود
Makefile: 263 : وصفة للهدف '/ home / stephan / lib' فشلت
make: * [/ home / stephan / lib] خطأ 1

الإصلاح تافه: استخدم mkdir -p بدلاً من mkdir.

هذا هو نفسه # 1992 https://github.com/sass/libsass/issues/1992 ،
لكن هذه التذكرة مغلقة لسبب غير مفهوم.

ملاحظة: عند محاولة استخدام الإنشاء الذي تم إنشاؤه بواسطة أدوات آلية ، عن طريق تشغيل autoconf
لتحويل config.ac إلى التكوين ، يفشل ./configure الناتج
لأن:

[ stephan @ host : ~ / cvs / libsass] $ ./configure --prefix = $ HOME
تكوين: خطأ: لا يمكن العثور على install-sh أو install.sh أو shtool في البرنامج النصي "." / script

وبالتالي فأنا أستخدم ملف makefile الذي تم إيداعه في الشجرة بدلاً من
الأداة التي تم إنشاؤها بواسطة الأدوات الآلية (المعروفة أيضًا باسم أدوات GNU "Auto، my ass!").

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/sass/libsass/issues/2727 ، أو كتم صوت الموضوع
https://github.com/notifications/unsubscribe-auth/AAjZWC46FJREYZk3iPIdWpGiuKuKlkJ4ks5uuSlkgaJpZM4YZIEz
.

من المؤكد أن mkdir -p أكثر قابلية للنقل من مجرد الفشل في التثبيت على أي نظام أساسي على الإطلاق؟

إليك حل محمول مأخوذ من دليل الأدوات الآلية:

من تسجيل الخروج libsass:

autoreconf --install
...
configure.ac:15: installing 'script/install-sh'
...
[stephan<strong i="7">@host</strong>:~/cvs/libsass]$ l ./script/install-sh
-rwxr-xr-x 1 stephan stephan 15155 Nov 12 10:07 ./script/install-sh

هذا البرنامج النصي للتثبيت هو محمول كما يحصل. (ببساطة تخلص من كل الناتج autoreconf بعيدًا عن هذا الملف ، ثم قم بإيداع هذا الملف.)

من المضحك أنه يستخدم mkdir -p (والذي تم تحديده على ما يبدو بواسطة POSIX mkdir) ، ولكنه يعمل أيضًا حول مشكلات قابلية النقل المختلفة.

قابلية النقل لـ Apropos: يستخدم الكود المصدري C ++ 0x ، مما يعني أنه يتم تجميعه على نظام أساسي حديث نسبيًا (أقل من 10 سنوات). أراهن على خصيتي اليسرى بأن جميع هذه المنصات تدعم mkdir -p .

تم شرح كل شيء بالتفصيل عدة مرات في السابق
القضايا المغلقة. سننظر في العلاقات العامة التي تعالج المخاوف التي لديها
أثيرت سابقا.

في يوم الاثنين ، 12 نوفمبر 2018 ، الساعة 8:13 مساءً ، كتب ستيفان بيل < [email protected] :

قابلية النقل لـ Apropos: يستخدم كود المصدر C ++ 0x ، مما يعني أنه
التجميع على منصة حديثة نسبيًا (أقل من 10 سنوات). كنت أراهن
خصيتي اليسرى أن كل هذه المنصات تدعم mkdir -p.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/sass/libsass/issues/2727#issuecomment-437808279 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/AAjZWDztL9XVhyClKwxTr7QVoEu2Oie3ks5uuTvQgaJpZM4YZIEz
.

xzyfer هل يمكنك من فضلك ربط القضية المغلقة؟ # 1992 لا يناقشها.

أرغب في قراءة المناقشة لفهم ادعاءات عدم قابلية النقل ، لأن دعم mkdir -p هو أحد متطلبات POSIX: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mkdir.html

ما القيد الملحوظ الذي _not_ يتم معالجته باستخدام نص التثبيت الذي تم إنشاؤه بواسطة autoconf (يظهر 4 تعليقات من هنا)؟ يستخدم هذا المشروع autotools ، وبالتالي فهو محدود في إمكانية النقل إلى الأنظمة الأساسية التي تدعمها مجموعة الأدوات. لذلك فإن استخدام البرنامج النصي للتثبيت autotool's هو الحل الطبيعي والمحمول لجميع الأنظمة الأساسية التي يمكن بناء المشروع عليها باستخدام ملفات makefiles المتوفرة.

sgbeal بينما ما زلت غير قادر على العثور على المشكلة ، بالنظر إلى Makefile ، يبدو أنه يدعم Windows. في نظام التشغيل Windows ، يعد mkdir اسمًا مستعارًا لـ md ، وهو لا يدعم -p .

ربما ترسل PR الذي يحدد MKDIR مختلف على Windows مقارنة بغير Windows؟

الكثير من التفاصيل أدناه. لست على دراية جيدة بالمشكلة لكني رأيت أنها تظهر مرارًا وتكرارًا.

https://github.com/sass/libsass/pull/795#discussion_r22396485
https://github.com/sass/libsass/pull/2486
https://github.com/sass/libsass/pull/2109
https://github.com/sass/libsass/issues/1433
https://github.com/sass/libsass/pull/1365#issuecomment -123325642

glebm ما هو "Windows"؟

يستخدم الإصدار أدوات آلية ، و "يجب" حقًا استخدام أداة التثبيت التي يتم توزيعها مع الأدوات الآلية. إذا كان _that_ برنامج التثبيت غير محمول بدرجة كافية ، فإن استخدام الأدوات التلقائية يعد سببًا ضائعًا.

sgbeal لم يتم إنشاء الأدوات التلقائية . إنها طريقة بديلة للبناء عندما لا تكون الأدوات الآلية متاحة (على سبيل المثال عند تجميع هذا للحصول على امتداد C لـ Ruby أو Python).

"Windows" في هذه الحالة هو عندما يكون لديك مثل gcc و gmake ولكنك تقوم بتشغيله من CMD (على عكس Cygwin Bash أو بيئة POSIX مشابهة).

بغض النظر ، أعتقد أن العلاقات العامة الخاصة بي # 2728 تحل هذه المشكلة ، كما هو الحال مع ذلك PR make لم يعد يحاول إنشاء أدلة موجودة بالفعل.

xzyfer شكرا! يبدو أنني خمنت بشكل صحيح أن هذا يتعلق تحديدًا بتوافق Windows. أرسل # 2728 والذي يجب أن يمنع make من محاولة إنشاء أدلة موجودة بالفعل.

glebm اعتذاري الصادق: "ما هو" Windows "كان مقصودًا (لم يكن Windows شيئًا في منزلي منذ الألفية الماضية) ، وليس

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات