ديف أوبس

إدارة الحزم في FreeBSD

إدارة الحزم على نظام FreeBSD 10.1 باستخدام أداة pkg: دليل شامل ومفصل

المقدمة

FreeBSD هو نظام تشغيل مفتوح المصدر مشتق من نظام يونكس، ويُعرف بثباته العالي، وأمانه، وأدائه الممتاز، مما يجعله خياراً مثالياً للخوادم ومحطات العمل. من أهم الجوانب التي تميّز FreeBSD عن غيره من الأنظمة هو أسلوبه في إدارة الحزم والبرمجيات، والذي تطوّر بشكل كبير خلال السنوات الماضية. منذ الإصدار 10.0 من FreeBSD، أصبحت أداة pkg هي الوسيلة الافتراضية والمُوصى بها لإدارة الحزم الثنائية، لتحل تدريجياً محل النظام القديم المعروف باسم “pkg_*”.

في هذا المقال الموسع، سيتم التطرق بالتفصيل إلى كيفية إدارة الحزم باستخدام أداة pkg على نظام FreeBSD 10.1، من التثبيت الأولي إلى التحديث والصيانة، مع التركيز على الجوانب العملية والخيارات المتقدمة التي تتيح تحكمًا دقيقًا للمستخدمين والمسؤولين عن النظام.


ما هي أداة pkg؟

أداة pkg هي أداة لإدارة الحزم الثنائية في نظام FreeBSD. تم تصميمها لتكون سهلة الاستخدام، قوية ومرنة، وتدعم جميع المهام المتعلقة بالحزم مثل التثبيت، الإزالة، التحديث، البحث، والتحقق من التكامل.

تتكون بنية النظام من قواعد بيانات محلية يتم تخزين معلومات الحزم المثبتة فيها، ومستودعات بعيدة يتم تحميل الحزم منها. وتتميز pkg بكونها تعتمد على ملفات حزم مضغوطة جاهزة (عادة بصيغة .txz)، مما يقلل من وقت التثبيت ويضمن استقرار النظام.


تهيئة pkg على FreeBSD 10.1

عند تثبيت FreeBSD 10.1 لأول مرة، قد لا تكون أداة pkg مثبتة بشكل تلقائي. لتثبيتها، يمكن استخدام الأمر التالي:

sh
# pkg

عند تنفيذ هذا الأمر لأول مرة، سيقوم النظام بتنزيل الحزمة الثنائية للأداة وتثبيتها تلقائيًا، وهي الخطوة التي تؤسس لبداية استخدام هذه الأداة في إدارة النظام.


إعداد مستودعات الحزم

يتم تعريف مستودعات الحزم في FreeBSD داخل مجلد /etc/pkg/ و/usr/local/etc/pkg/repos/. الملف الافتراضي FreeBSD.conf يحتوي على إعدادات الوصول إلى مستودع الحزم الرسمي للنظام.

المثال التالي يوضح ملف إعداد المستودع:

ini
FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", enabled: yes }

يمكنك تخصيص هذا الإعداد من خلال إنشاء ملفات أخرى داخل /usr/local/etc/pkg/repos/ لتعطيل أو تمكين مستودعات إضافية، أو استخدام مستودعات خاصة في بيئة مغلقة أو مؤسساتية.


الأوامر الأساسية لإدارة الحزم

1. تثبيت الحزم

لتثبيت حزمة باستخدام pkg:

sh
# pkg install اسم_الحزمة

مثال:

sh
# pkg install nginx

سيقوم النظام بتنزيل جميع التبعيات المطلوبة وتثبيتها تلقائيًا.


2. إزالة الحزم

لإزالة حزمة من النظام:

sh
# pkg delete اسم_الحزمة

مثال:

sh
# pkg delete nginx

يمكن استخدام الخيار -f للإجبار على الإزالة في حالة وجود تعارضات.


3. البحث عن الحزم

للبحث عن حزمة معينة:

sh
# pkg search كلمة_مفتاحية

مثال:

sh
# pkg search php

يعرض هذا الأمر قائمة بجميع الحزم التي تحتوي على الكلمة المفتاحية في اسمها أو وصفها.


4. عرض معلومات الحزمة

لعرض معلومات مفصلة حول حزمة:

sh
# pkg info اسم_الحزمة

مثال:

sh
# pkg info nginx

يعرض هذا الأمر إصدار الحزمة، التبعيات، ملفات التثبيت، وغيرها من التفاصيل المهمة.


5. تحديث الحزم

لتحديث قاعدة بيانات الحزم:

sh
# pkg update

ولتحديث جميع الحزم المثبتة إلى أحدث إصدار:

sh
# pkg upgrade

ينبغي تنفيذ هذا بشكل دوري لضمان بقاء النظام محدثًا وآمنًا.


6. التحقق من سلامة الحزم

للتحقق من تكامل الملفات المثبتة:

sh
# pkg check -s -a

وللتحقق من التبعيات المفقودة:

sh
# pkg check -d -a

هذه الأوامر تساعد في اكتشاف المشكلات وتصحيحها في وقت مبكر.


الاستخدام المتقدم لأداة pkg

تثبيت حزم معينة من ملف محلي

يمكن تثبيت حزمة تم تنزيلها محليًا باستخدام:

sh
# pkg add /المسار/إلى/الحزمة.txz

قفل حزمة لمنع تحديثها

يمكن قفل حزمة لمنع تحديثها أو حذفها:

sh
# pkg lock اسم_الحزمة

ولإلغاء القفل:

sh
# pkg unlock اسم_الحزمة

هذا مفيد في البيئات التي تتطلب ثبات إصدار معين من برنامج.


الجدول التالي يوضح أهم أوامر pkg ووظيفتها:

الأمر الوظيفة
pkg install تثبيت حزمة جديدة
pkg delete إزالة حزمة موجودة
pkg update تحديث قاعدة بيانات الحزم
pkg upgrade تحديث جميع الحزم المثبتة
pkg search البحث عن حزمة معينة
pkg info عرض معلومات حزمة معينة
pkg check -s -a التحقق من سلامة ملفات الحزم
pkg check -d -a التحقق من التبعيات المفقودة
pkg lock / pkg unlock قفل أو إلغاء قفل الحزم لتجنب التحديث أو الحذف
pkg add تثبيت حزمة من ملف محلي

إدارة التبعيات والمكتبات

أداة pkg تدير التبعيات بشكل تلقائي، ولكن في بعض الأحيان قد يحتاج المستخدم لفحص التبعيات يدوياً أو معرفة الحزم التي تعتمد على مكتبة معينة.

لعرض الحزم التي تعتمد على حزمة معينة:

sh
# pkg rquery "%n" -r اسم_الحزمة

لعرض تبعيات حزمة:

sh
# pkg info -d اسم_الحزمة

تخصيص السلوك عبر ملف إعدادات pkg.conf

يقع ملف إعدادات أداة pkg في /usr/local/etc/pkg.conf ويمكن من خلاله تخصيص العديد من الخيارات مثل:

  • تفعيل التحقق من التواقيع الرقمية

  • تغيير المسارات الافتراضية

  • تخصيص سلوك التحديثات

مثال على إعداد:

ini
PKG_ENV: { ASSUME_ALWAYS_YES: true }

هذا يمنع الأداة من مطالبة المستخدم بتأكيد التثبيت أو التحديث.


دمج pkg مع أدوات أخرى

يمكن استخدام pkg مع أدوات مثل cron لأتمتة مهام التحديث، ومع أدوات مراقبة النظام لاكتشاف أي تغييرات في الحزم. كما يمكن التكامل مع أنظمة إدارة التكوين مثل Ansible وSaltStack لتوحيد إعدادات الحزم عبر خوادم متعددة.


مقارنة بين pkg وطرق التثبيت الأخرى

في FreeBSD، توجد طريقتان رئيسيتان لتثبيت البرمجيات:

  1. الحزم الثنائية (Binary packages) – باستخدام pkg.

  2. المنافذ (Ports Collection) – التي تتيح بناء البرمجيات من المصدر.

الفرق الجوهري يكمن في المرونة مقابل السرعة. pkg أسرع وأسهل للمستخدمين العاديين أو في بيئات الإنتاج، بينما توفر المنافذ تحكمًا أوسع في خيارات الترجمة والتكوين.


الخلاصة

تُعد أداة pkg نقطة تحول في طريقة إدارة الحزم على FreeBSD، حيث جمعت بين سهولة الاستخدام، السرعة، والمرونة، مما جعل إدارة البرمجيات أكثر كفاءة وموثوقية، خاصة على أنظمة مثل FreeBSD 10.1. بفضل واجهتها البسيطة وأوامرها الغنية، يمكن للمستخدمين الجدد والمتمرسين على حد سواء التحكم الكامل بالحزم دون الحاجة إلى بناء البرمجيات من المصدر، مما يوفر الوقت ويقلل من أخطاء التكوين.

من خلال الالتزام بالممارسات الصحيحة مثل التحديث الدوري، التحقق من التبعيات، وأتمتة المهام، يمكن ضمان بيئة مستقرة وآمنة باستخدام pkg. وفي بيئات المؤسسات، توفر الأداة وسائل قوية لإدارة آلاف الحزم على مئات الأنظمة بكفاءة وفعالية.


المراجع: