Homebrew 6.0 يُحدث ثورة في طريقة تثبيت البرامج على جهاز Mac الخاص بك

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00قبل بضعة أشهر وعلى هذه القناة تحديدًا، نشرنا مقطع فيديو وصفنا فيه Homebrew
00:00:05بأنه أداة من العصر الحجري نستخدمها بينما يتفوق عليه Nix بمراحل. لذا من العدل تمامًا
00:00:12أن أعود إليكم هنا لأخبركم بهذا: تلك الأداة التي اعتبرناها من العصر الحجري قد أطلقت للتو أول
00:00:17إصدار رئيسي لها منذ سنوات، وهو Homebrew 6.0. وإليكم الخبر الأهم: العنوان الرئيسي ليس مجرد مجموعة من
00:00:23الميزات الجديدة، بل إعادة هيكلة أمنية شاملة. لقد نضج Homebrew أخيرًا.
00:00:30دعوني أشرح لكم ما الذي تغير بالفعل، لأن الأمر أكثر إثارة من مجرد تغيير رقم الإصدار.
00:00:38على مدى تاريخ Homebrew بأكمله تقريبًا، عندما كنت تضيف “Tap” من طرف خارجي (مستودع حزم لشخص آخر)،
00:00:45كان Homebrew يشغل كود Ruby الخاص بهم دون تردد. كان ينفذ أكوادهم ببساطة. أي Tap،
00:00:51وأي كود عشوائي، دون طرح أي أسئلة تقريبًا. الآن، فكروا في العالم الذي نعيش فيه اليوم.
00:00:56مديرو الحزم هم الهدف الأول لهجمات سلاسل التوريد في الوقت الحالي. NPM وغيره
00:01:01يتعرضون للضربات مرارًا وتكرارًا. لذا فإن تشغيل أي كود يقدمه لنا المستودع هو إعداد افتراضي سيئ. وميزة
00:01:08Homebrew 6.0 جاءت للقضاء على ذلك، وتسمى “Tap Trust”. إذا كنتم تستمتعون بنصائح وحيل البرمجة هذه،
00:01:15احرصوا على الاشتراك، فلدينا مقاطع فيديو تصدر باستمرار. ولكن دعوني أبدأ بالجزء الذي
00:01:19ستشعرون به يوميًا: أمر Brew version. ها هو، 6.0. والآن انتبهوا لما يحدث عندما أقوم بتثبيت
00:01:25شيء يتطلب بعض التبعيات. بدلاً من القيام بذلك بصمت، يعرض Brew الآن
00:01:31ملخصًا لجميع العناصر التي يوشك على تثبيتها وينتظر مني الموافقة. هذا هو وضع Ask الجديد،
00:01:38وهو مفعّل افتراضيًا للمطورين الآن. تغيير بسيط، لكنه يعني أنك سترى الخطة دائمًا قبل أن يمس Brew
00:01:44أي شيء على جهازنا. والآن إلى الميزة الكبرى: Tap Trust. انظروا ماذا يحدث عندما أضيف Tap من طرف خارجي.
00:01:50يوقفني Homebrew تمامًا. ويقول إن هذا الـ Tap غير موثوق به بعد، ولن ينفذ سطرًا واحدًا من الكود
00:01:56حتى أمنحه الثقة صراحةً. أنحه الثقة عمداً باستخدام أمر Brew Trust، وعندها فقط يبدأ في
00:02:03التنفيذ بالفعل. الـ Taps الرسمية لـ Homebrew موثوقة تلقائيًا. لذا فإن تجربتك المعتادة في التثبيت
00:02:09ستبقى كما هي تمامًا. لكن هذا الـ Tap المشبوه من شخص غريب على GitHub وجدته في ملف readme،
00:02:16أصبح الآن يشبه بابًا مغلقًا؛ يتوجب عليك الموافقة عليه بنفسك. وبصراحة،
00:02:20هذا قرار ممتاز للغاية في هذه المرحلة. وتلك ليست الترقية الحقيقية الوحيدة هنا.
00:02:25نظام البيانات الوصفية الداخلي أصبح هو الافتراضي الآن، مما يعني أن جميع معلومات الحزم تنزل في
00:02:30تنزيل واحد نظيف بدلاً من عشرات الطلبات الشبكية الصغيرة. لذا فإن أمر Brew update أصبح أسرع بكثير. وهناك
00:02:37أمر جديد تمامًا هو Brew execute، والذي يعتبر بمثابة NPX لـ Homebrew. يتيح لك تشغيل أداة مرة واحدة دون
00:02:45تثبيتها بشكل دائم على نظامك. كما يوجد أمر Brew vulns، الذي يفحص الحزم المثبتة لديك بالفعل
00:02:51مقارنة بالمشاكل الأمنية والتنبيهات المعروفة. وقد أصلح الإصدار 6.0 بصمت ثلاث ثغرات أمنية، بما فيها ثغرة كان يمكنها
00:02:58تشغيل الكود بصلاحيات root من خلال حزمة تثبيت Mac. هذا إصدار ذو بنية قوية بحق. حسناً، والآن إليكم
00:03:04العقبة في كل هذا. وللبعض منكم، قد تكون عقبة كبيرة. لذا سأوضحها لكم مباشرة.
00:03:09خاصية Tap trust تُعد تغييرًا جذريًا قد يكسر التوافق. إذا كان لديك أنابيب CI تعتمد على Taps من طرف خارجي،
00:03:14فإن أمر Brew doctor سيعطي خطأً بمجرد اكتشاف Tap غير موثوق. وعدد كبير من إجراءات GitHub القياسية
00:03:20تشغل Brew doctor كخطوة أولى أساسية. لذلك، عندما قام الناس بالترقية، بدأت عمليات البناء تفشل فورًا.
00:03:28والحل هو تحديد تلك الـ Taps كـ موثوقة في إعداداتك، ولكن يتعين عليك القيام بذلك بنفسك.
00:03:35فلن يقوم أحد بذلك نيابة عنك. والقضية ذاتها تنطبق على وضع Ask. إذا كانت لديك سكربتات تفترض ضمناً
00:03:41أن Brew يثبت بدون سؤال، فإن مطالبة التأكيد الجديدة قد تجعلها معلقة إلى الأبد. وبالنسبة للمظهر العام ككل،
00:03:46إذا كنت مستخدمًا عاديًا تثبت التطبيقات يوميًا، فلن تلاحظ فرقًا كبيرًا.
00:03:51فهذا إصدار يستهدف الأمان والبنية التحتية، وليس مجرد تحسينات سطحية للمظهر. وهناك خرافة سريعة هنا أيضًا.
00:03:58كثير من الأشياء يتم إعادة كتابتها بلغة Rust. ولكن لا، Homebrew لا تتم إعادة كتابته بلغة Rust،
00:04:04على الأقل ليس الآن. كان ذلك مجرد تجربة. فالتركيز عاد تمامًا إلى قاعدة كود Ruby كما
00:04:10كانت دائمًا. إذًا، هل ينبغي عليك الترقية إلى Homebrew 6.0؟ بالنسبة للجميع تقريبًا، الإجابة هي نعم.
00:04:16ستحصل على ثلاثة إصلاحات أمنية، وبصراحة، فإن أمر Brew update سينقلك إلى الإصدار 6.0
00:04:22سواء خططت لذلك أم لا. أما الأشخاص الذين قد يحتاجون إلى التمهل قليلاً هنا، فهم
00:04:27أي شخص يدير أنابيب CI تتعامل مع Taps من أطراف خارجية أو أتمتة تتوقع تثبيتًا صامتًا. قم بمعالجة تلك
00:04:33أولاً وستكون في أمان. وإذا كنت لا تزال تستخدم جهاز Mac بمعالج Intel، فانتبه: الإصدار 6.0 يوضح الجدول الزمني
00:04:40لإنهاء دعم أجهزة Intel خلال العامين المقبلين. أما مستخدمو Apple Silicon، في الأجهزة الحديثة،
00:04:46فنحن في أمان تام. حتى إنه يضيف دعمًا لشرائح M5 الجديدة. وإليكم كيف أود اختتام هذا الموضوع.
00:04:53لسنوات طويلة، كان Homebrew مجرد أداة مريحة إن صح التعبير، أسرع طريقة لتنزيل البرامج على جهاز
00:04:59Mac. ولكن مع الإصدار 6.0، يبدو أنه تحول إلى نقطة تفتيش، مكان يتعين فيه على الكود
00:05:05القادم إلى الجهاز أن يثبت أخيرًا أنه موثوق. هذه خطوة كبيرة. لقد تدارك مدير الحزم
00:05:10نموذج التهديدات الأمنية الذي كنا نعيش في ظله جميعًا لسنوات. هذا هو الجوهر الحقيقي
00:05:15هنا، وليس مجرد رقم الإصدار 6.0 أو 6.1، بل ما جاء معه. إذا كنتم تستمتعون بنصائح وحيل البرمجة
00:05:21كهذه، احرصوا على الاشتراك في قناة BetterStack. نراكم في فيديو آخر.

Key Takeaway

يحول Homebrew 6.0 إدارة الحزم على Mac من الأتمتة الصامتة إلى نموذج أمني مشدد يعتمد على ميزة Tap Trust ووضع Ask لحماية سلاسل التوريد ومعالجة الثغرات البرمجية.

Highlights

  • يقدم Homebrew 6.0 إعادة هيكلة أمنية تتطلب الموافقة الصريحة عبر أمر Brew Trust قبل تنفيذ كود أي Tap من طرف خارجي.

  • يتضمن الإصدار وضع Ask الافتراضي للمطورين لعرض ملخص التبعيات وانتظار موافقة المستخدم قبل التثبيت.

  • يعتمد النظام الجديد آلية بيانات وصفية داخلية تنزل المعلومات في طلب شبكي واحد لترقية سرعة أمر Brew update.

  • يتيح أمر Brew execute الجديد تشغيل الأدوات لمرة واحدة دون تثبيتها نهائيًا على النظام.

  • عالج Homebrew 6.0 ثلاث ثغرات أمنية، بينها ثغرة تسمح بتشغيل الكود بصلاحيات root عبر حزم تثبيت Mac.

  • يؤدي غياب التوثيق الصريح للـ Taps إلى فشل أنابيب CI التي تعتمد على أمر Brew doctor.

  • يحدد الإصدار خطة لإنهاء دعم أجهزة Mac المزودة بمعالجات Intel خلال العامين القادمين مع إضافة الدعم لشرائح Apple M5.

Timeline

إعادة الهيكلة الأمنية وميزة Tap Trust

  • يتحول Homebrew من التنفيذ التلقائي للكود إلى نموذج أمني يحد من هجمات سلاسل التوريد.
  • تمنع ميزة Tap Trust تشغيل أي كود من مصادر خارجية دون موافقة صريحة من المستخدم.
  • يعرض وضع Ask الجديد ملخص التبعيات وينتظر تأكيد المستخدم قبل إجراء أي تعديل على الجهاز.

استهدف النظام القيم معالجة أكواد Ruby الخاصة بالمستودعات الخارجية دون التحقق منها، مما جعل الأنظمة عرضة لمخاطر سلاسل التوريد المشابهة لما يحدث في NPM. تعالج أداة Tap Trust هذا الخلل بإيقاف تنفيذ أكواد Taps الخارجية حتى صدور أمر Brew Trust. تظل Taps الرسمية موثوقة تلقائيًا للحفاظ على تجربة الاستخدام الأساسية.

الأوامر الجديدة وتحديثات البنية التحتية

  • تسهم آلية البيانات الوصفية الموحدة في تسريع عملية تحديث الحزم.
  • يوفر أمر Brew execute إمكانية تشغيل البرامج المؤقتة على غرار أداة NPX.
  • يفحص أمر Brew vulns الحزم المثبتة للكشف عن الثغرات الأمنية المعروفة.

تستبدل آلية البيانات الوصفية الجديدة طلبات الشبكة المتعددة بتنزيل واحد نظيف لمختلف معلومات الحزم. يتيح إضافة أمر Brew execute تشغيل التطبيقات والأدوات دون الحاجة لتثبيتها بشكل دائم على قرص النظام. كما أصلح التحديث ثلاث ثغرات أمنية في البنية الأساسية، شملت ثغرة كان بإمكانها تصعيد الصلاحيات إلى مستوى root عبر حزم Mac.

تأثير التحديث على أنظمة CI ولغة التطوير ودعم العتاد

  • تتسبب قيود Tap Trust الجديدة في توقف مسارات العمل في أنظمة Integration Continuous التي تشغل Brew doctor.
  • تستمر قاعدة بيانات Homebrew بالاعتماد على لغة Ruby دون الانتقال إلى Rust.
  • ينتهي دعم معالجات Intel رسميًا خلال عامين مع توفير الدعم المباشر لشرائح Apple M5.

يتطلب الانتقال إلى Homebrew 6.0 تعديل سكربتات الأتمتة وأنابيب CI لإضافة التوثيق الصريح للـ Taps وتفادي توقف العمليات عند مطالبات التأكيد. تراجعت إدارة 프로젝트 عن تجارب إعادة الكتابة بلغة Rust للتركيز الكامل على تطوير قاعدة كود Ruby الحالية. يضع الإصدار جدولاً زمنياً لإيقاف الدعم عن أجهزة Intel Mac القديمة بحلول عام 2028.

Community Posts

View all posts