فا نیکسی

autoPatchelfHook

این یک setup hook ویژه است که به بسته‌بندی نرم‌افزارهای انحصاری کمک می‌کند؛ به این صورت که به طور خودکار تلاش می‌کند وابستگی‌های کتابخانه اشتراکی مفقودشده در فایل‌های ELF را بر اساس buildInputs و nativeBuildInputs داده‌شده پیدا کند.

همچنین می‌توانید یک متغیر runtimeDependencies مشخص کنید که فهرست وابستگی‌هایی را شامل می‌شود که باید بدون شرط به rpath تمام فایل‌های اجرایی اضافه شوند. این ویژگی برای برنامه‌هایی که از dlopen برای بارگیری کتابخانه‌ها در زمان اجرا استفاده می‌کنند، مفید است.

در شرایط خاصی ممکن است بخواهید دستور اصلی (autoPatchelf) این setup hook را به جای پچ کردن بدون شرط تمام خروجی‌ها، روی یک فایل یا مجموعه‌ای از پوشه‌ها اجرا کنید. این کار با مقداردهی متغیر محیطی dontAutoPatchelf به یک مقدار غیرخالی امکان‌پذیر است.

به طور پیش‌فرض، به محض اینکه هر فایل ELF به وابستگی‌ای نیاز داشته باشد که از طریق ورودی‌های ساخت داده‌شده قابل حل نباشد، autoPatchelf با خطا مواجه می‌شود. در برخی شرایط ممکن است ترجیح دهید وابستگی‌های مفقودشده را بدون پچ رها کرده و به پچ کردن باقی‌مانده موارد ادامه دهید. این امر با تنظیم متغیر محیطی autoPatchelfIgnoreMissingDeps به یک مقدار غیرخالی قابل دستیابی است. autoPatchelfIgnoreMissingDeps می‌تواند روی لیستی مانند autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ]; یا [ "*" ] برای نادیده گرفتن تمام وابستگی‌های مفقودشده تنظیم شود.

دستور autoPatchelf همچنین پرچم خط فرمان --no-recurse را می‌شناسد که از پیمایش بازگشتی آن به پوشه‌های فرعی جلوگیری می‌کند.