۲۷ مهر ۱۴۰۵ anderegg.ca ۳ دقیقه مطالعه

رمزگشایی از دایرکتوری مرموز pkg/ در macOS؛ آیا اپل به دنبال پکیج منیجر اختصاصی است؟

رمزگشایی از دایرکتوری مرموز pkg/ در macOS؛ آیا اپل به دنبال پکیج منیجر اختصاصی است؟ — What the heck is /pkg?

خلاصه

اخیراً توسعه‌دهندگان متوجه اضافه شدن دایرکتوری جدید pkg/ در ریشه macOS و تزریق خودکار مسیر آن به متغیر محیطی PATH شده‌اند. این تغییر کم‌سابقه در معماری فایل‌سیستم، گمانه‌زنی‌هایی را درباره احتمال معرفی یک ابزار مدیریت بسته رسمی توسط اپل برانگیخته است.

اگر اخیراً هنگام دیباگ محیط ترمینال در نسخه‌های جدید macOS متغیر PATH خود را بررسی کرده باشید، احتمالاً با مقداری ناآشنا مواجه شده‌اید: /pkg/env/global/bin. این دایرکتوری جدید نه حاصل نصب ناخواسته یک بدافزار است و نه اشتباه کاربری؛ بلکه تغییر ساختاری مهمی است که توسط خود اپل اعمال شده، اما هنوز هیچ مستندات رسمی برای آن ارائه نکرده است.

ماجرا از کجا شروع شد؟

سیستم‌عامل macOS از نسخه Mac OS X 10.5 به ابزاری تحت عنوان path_helper مجهز است. این یوتیلیتی هنگام بالا آمدن شل، مقادیر تعریف‌شده در /etc/paths و فایل‌های موجود در دایرکتوری /etc/paths.d را خوانده و آن‌ها را به ابتدای متغیر PATH تزریق می‌کند. با اینکه توسعه‌دهندگان معمولاً مسیرهای سفارشی خود را در فایل‌هایی مثل zshrc. تنظیم می‌کنند، اپل از این سازوکار برای پیکربندی پیش‌فرض سیستم استفاده می‌کند؛ برای مثال در گذشته برای اضافه کردن مسیر ابزار rvictl یا سازوکارهای امنیتی Cryptexes از همین روش استفاده شده بود.

در نسخه‌های اخیر، فایل جدیدی به نام 10-pmk-global در مسیر /etc/paths.d ظاهر شده است. عدد 10 در نام این فایل نشان‌دهنده اولویت بسیار بالای آن است و باعث می‌شود مسیر /pkg/env/global/bin پیش از بسیاری از مسیرهای پیش‌فرض دیگر در PATH قرار گیرد.

دستکاری کم‌سابقه در فایل‌سیستم حفاظت‌شده

تغییر در ساختار ریشه فایل‌سیستم در macOS رویدادی بسیار نادر است. از زمان معرفی معماری Signed System Volume (SSV) و تفکیک دیسک به بخش‌های سیستمیِ فقط‌خواندنی و داده‌های کاربر (Data volume)، ریشه سیستم‌عامل از طریق مکانیزمی به نام firmlink مدیریت می‌شود. هاوارد اوکلی، پژوهشگر شناخته‌شده اکوسیستم مک، اشاره کرده که دایرکتوری pkg ابتدا در macOS 26.4 به ولوم داده اضافه شد و سپس به عنوان یک پیوند دائمی وارد ریشه سیستم شد؛ ساختاری که در طول بیش از شش سال گذشته تقریباً دست‌نخورده باقی مانده بود.

با نگاهی به درون /pkg چهار زیرشاخه مشخص به چشم می‌خورد:

  • env: محیط‌های اجرایی و باینری‌های گلوبال
  • etc: فایل‌های کانفیگ
  • inv: احتمالاً سرواژه Inventory یا مشابه آن
  • var: داده‌های متغیر زمان اجرا

حدس و گمان‌های جامعه مهندسی: اپل در اندیشه ساخت رقیب Homebrew؟

ترکیب نام این دایرکتوری‌ها همراه با نام فایل کانفیگ یعنی pmk، بحث‌های داغی را در میان مهندسان رقم زده است. برخی تحلیل‌گران احتمال می‌دهند که pmk مخفف Package Management Kit باشد؛ سیستمی بومی برای مدیریت بسته‌ها در سطح سیستم‌عامل که می‌تواند نیاز توسعه‌دهندگان را به ابزارهای شخص ثالث محبوبی چون Homebrew یا MacPorts تغییر دهد.

کاربران در بحث‌های Hacker News احتمالات دیگری را نیز مطرح کرده‌اند:

  • الهام یا سازگاری با ابزارهای یونیکسی: برخی کاربران باسابقه ساختار /pkg را شبیه به اکوسیستم pkgsrc در سیستم‌عامل NetBSD می‌دانند و احتمال استفاده اپل از تجارب سیستم‌های سنتی یونیکس را رد نمی‌کنند.
  • سیستم داخلی برای مدیریت وابستگی‌ها: عده‌ای معتقدند این تغییر لزوماً برای کاربران نهایی طراحی نشده، بلکه زیرساختی درون‌سازمانی برای مدیریت ابزارهای CLI جدید و ماژول‌های توسعه‌ای خودِ اپل است.

هرچند هنوز هدف نهایی این تغییر در هاله‌ای از ابهام قرار دارد، اما اضافه شدن مستقیم آن به متغیر PATH نشان می‌دهد که دیر یا زود برنامه‌های اجرایی مستقر در این پوشه، نقش پررنگی در تجربه روزمره کار با خط فرمان macOS ایفا خواهند کرد.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.