نام توزیع، glibc یا کامپایلر: نصبکننده چه چیزی را بررسی میکند
نصبکنندهای که مشتق شما را رد میکند ممکن است نام توزیع، نسخهٔ محیط اجرا یا کامپایلر را بخواند. تنها یکی از اینها تعیین میکند که آیا فایل دودویی میتواند اجرا شود.
نصبکننده “unsupported distribution” را چاپ میکند، شما یک رشته را ویرایش میکنید و کار ادامه مییابد تا یک دقیقه بعد با خطای بارگذار شکست بخورد. همین توالی نشانهای است که باید شناخت: شکست اول یک بررسی تشخیص بود و دومی یک مرز سازگاری. اینها دو مشکل متفاوتاند که تصادفاً در یک ترمینال ظاهر میشوند. ویرایش بررسی فقط میتواند شما را از اولی به دومی ببرد.
نشانه: نصبکننده روی مشتق شما متوقف میشود
اسکریپتی که نام توزیع را میخواند و از ادامه خودداری میکند به شما میگوید که نویسندهاش مشتق شما را آزمایش نکرده است. این یک بیانیهٔ پشتیبانی است نه یک واقعیت فنی، و اغلب از این جهت نادرست است که بسته خوب کار میکرد.
مشکل زمانی شروع میشود که راهحل موقت به برنامه تبدیل شود. تغییر یک فایل هویت باعث عبور از بررسی میشود، و بسته سپس در برابر محیط اجرایی که واقعاً نصب شده بارگذاری میشود یا بارگذاری نمیشود. اگر آنجا شکست بخورد، هیچ ویرایش هویت بیشتری کمکی نمیکند.
بنابراین حرکت سودمند این است که بفهمید نصبکننده چه پرسشی پرسیده و سپس بفهمید که آیا پاسخ اهمیت میداشت. اینها دو بررسی جداگانهاند و تنها دومی پیشبینی میکند که بسته کار خواهد کرد یا نه.
سه نسخه که مردم آن را نسخهٔ سیستم مینامند
انتشار یک توزیع نام یک محیط بستهبندیشده را میآورد. نسخهٔ کتابخانهٔ C نام یک پیادهسازی محیط اجرا و انتشارش را میآورد. نسخهٔ کامپایلر نام یک زنجیرهٔ ابزار را میآورد. مردم در گفتگو هر سه را “نسخهٔ سیستم” مینامند، و در نصبکننده اینها قابل جانشینی نیستند.
cat /etc/os-release ldd --version | head -1 gcc --version | head -1 uname -m
یک برنامهٔ از پیش ساختهشده انتظار محیط اجرایی را دارد که هنگام پیوند دادنش وجود داشت. عوض کردن کامپایلرها روی میزبان آن را دوباره پیوند نمیدهد، و زنجیرهٔ ابزار جدیدتر چیزی را در نمادهای بارگذار که فایل دودویی درخواست میکند تغییر نمیدهد. معماری دوباره جداگانه اهمیت دارد، زیرا بستهٔ 32 بیتی روی سیستم 64 بیتی به دلایلی شکست میخورد که هیچ رشتهٔ نسخهای توضیحش نمیدهد.
چهار خروجی را همراه گزارش نگه دارید. جمعآوریشان ده ثانیه طول میکشد و به بیشتر پرسشهایی پاسخ میدهند که نگهدارنده در غیر این صورت با ایمیل از شما میپرسید.
خطا را بخوانید، نه بررسی را
نخستین خطای راهاندازی شاهد است. پیامی دربارهٔ یک شیء مشترک گمشده، یا دربارهٔ نسخهٔ نمادی که بارگذار نمیتواند برآورده کند، یک مشکل وابستگی محیط اجراست. پیامی که نام توزیع را تکرار میکند دوباره همان بررسی تشخیص است، در جای دیگری.
مستندات پیونددهندهٔ پویا توضیح میدهد که جستوجوی کتابخانه چگونه کار میکند و بارگذار کجا جستوجو میکند. تغییر برچسب توزیع هیچ پوشهای به آن مسیر جستوجو اضافه نمیکند، و به همین دلیل شکست دوم بیربط با اولی به نظر میرسد.
به ldd روی یک فایل اجرایی دانلودشده بهعنوان یک گام اول معمولی تکیه نکنید. راهنمای خودش هشدار میدهد که ممکن است در برخی شرایط برنامه را اجرا کند، و اجرای یک نصبکنندهٔ نامطمئن دقیقاً همان حالتی است که آن هشدار دربارهٔ آن است.
چرا ویرایش رشته کمکی نمیکند
جعل هویت سیستمعامل تغییر میدهد که هر برنامه روی دستگاه خود را چگونه ببیند. مدیران بسته، ابزارهای پشتیبانی و برنامههای دیگر همان فایل را میخوانند، و مقداری که یک نصبکننده را راضی میکند میتواند ماهها بعد چیز دیگری را گیج کند.
جایگزین کردن کتابخانههای میزبان با فایلهایی از توزیع دیگر بدتر است. میتواند نرمافزار بیربط را بشکند، برای مدیر بسته نامرئی است، و به برنامهٔ نگهداری نیاز دارد که هیچکس نمینویسد. این تغییرات با یک نصبکنندهٔ محدودکننده توجیه نمیشوند.
اگر بررسی واقعاً یک نقص تشخیص باشد، نگهدارنده میتواند آن را تأیید و اصلاح پشتیبانیشده را شرح دهد. اگر نقص نباشد، مسیر پشتیبانیشده یک ساخت برای پلتفرم شماست، و آن پاسخ تغییر نمیکند چون رشته ویرایش شده است.
گزارشی بنویسید که نگهدارنده بتواند بر اساس آن عمل کند
توزیع و انتشار، معماری، انتشار VPN، شرط دقیقی که رد شد و نخستین خطای محیط اجرا را در صورت رسیدن به آنجا ثبت کنید. ذکر کنید که آیا چیزی را تغییر دادهاید، زیرا گزارشی از یک سیستم تغییریافته گزارش دیگری است.
نصبکنندهٔ اصلی را بدون تغییر بگذارید و بررسی را توصیف کنید بهجای دور زدن آن. این تمایز به نگهدارنده اجازه میدهد یک قاعدهٔ تشخیص بیش از حد باریک را از یک مرز واقعی سازگاری دودویی جدا کند، که دو باگ بسیار متفاوت با دو اصلاح بسیار متفاوتاند.
اگر پاسخ این باشد که پلتفرم شما پشتیبانی نمیشود، این نتیجهٔ قابل استفادهای است. به شما میگوید بهجای گذراندن یک عصر دیگر روی فایلهای هویتی که هرگز مشکل نبودند، دنبال یک ساخت پشتیبانیشده بگردید.