اذهب إلى المحتوى

كيف تدير الحزم على نظام FreeBSD 10.1 بواسطة Pkg


طريف العتيق

يُعتبر مدير الحزم الثنائية لـ FreeBSD والمُسمى pkg أداةً سهلة تمكّننا من إدارة البرامج مُسبقة الترجمة بما في ذلك عمليات التثبيت والحذف، وهو يعادل نظام إدارة الحزم في دبيان Deb أو نظيره RPM في RedHat. وبالمقارنة مع استخدام نظام المنافذ لبناء الحزم من المصدر على FreeBSD؛ فإن استعمال الحزم المُترجمة يُعتبر بديلًا أكثر سهولة وسرعة وملائمًا للعديد من الحالات، باستثناء أنها ليست بمرونة نظام المنافذ للبناء من المصدر نظرًا إلى عدم إمكانية تخصيص التحزيم، لذا ففي تلك الحالات التي تحتاج فيها إلى خيارات مُحدّدة أثناء عملية الترجمة يجدر بك بناء البرنامج من المصدر عوضًا عن استخدام الحزم الثنائية الجاهزة.
نستعرض في هذا الدرس أساليب إدارة الحزم على نظام FreeBSD 10.1، بما في ذلك تثبيت وإزالة الحزم وعدد آخر من المهام ذات الصلة.

freebsd.thumb.png.3924cabd2f3cc453720184

المتطلبات

في هذا الدرس نحن نحتاج إلى إمكانية استخدام صلاحيات الجذر root على خادوم FreeBSD، إما عن طريق تسجيل الدخول كمستخدم جذر أو باستعمال مستخدم آخر يملك صلاحيات الجذر عبر الأمر sudo. إذا كنت تنوي الولوج كجذر إلى خادومك فعليك إهمال البادئة sudo كلّما وردت في الأمثلة هنا.

كيفية تركيب الحزم باستخدام Pkg

إذا كنت تعرف اسم الحزمة التي ترغب بتثبيتها فما عليك سوى استخدام الأمر pkg مع الخيار install بالشكل التالي:

sudo pkg install package

لتثبيت عدّة حزم دفعةً واحدة افصل بين أسمائها بمسافات فارغة:

sudo pkg install package1 package2 ...

مثلًا؛ لتركيب خادوم الويب الشهير Nginx باستخدام pkg:

sudo pkg install nginx

يُطلق الأمر السابق عملية تثبيت الحزمة المطلوبة. حيث يتحقق النظام في البداية من تاريخ تحديث فهرس مستودع الحزمة، فإذا كان مطابقًا لأحدث نسخة يبحث عن الحزمة المطلوبة ويضعها ضمن قائمة مع اعتمادياتها المطلوبة (في حال كانت موجودة) ليُظهر لك أخيرًا رسالة تأكيديّة.
في مثالنا هنا لا تحتاج حزمة nginx لأية اعتماديات أخرى، نكتب y للموافقة على رسالة التأكيد:

New packages to be INSTALLED: 
    nginx: 1.6.2_1,2 

The process will require 654 KB more space. 
244 KB to be downloaded. 

Proceed with this action? [y/N]: y

بعد ذلك يبدأ pkg بجلب الحزم(ة) اللازمة من الخوادم ثم تركيبها على النظام. بعض الحزم قد تعرض معلومات "ما بعد التثبيت" أو تعليمات بشأن استخدام البرنامج، احرص على تطبيق أية ملاحظات مذكورة هنا بعد الانتهاء. إذا كنت تستخدم صدفة tcsh الافتراضية أو csh، فلا تنس إعادة بناء قائمة الحزم الثنائية في PATH بواسطة الأمر:

rehash

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

كيفية تشغيل الخدمات

عند تثبيت حزمة لخدمة ما في FreeBSD فإنها تكون مُزوّدة بسكربت تهيئة الخدمة مُضمّنًا على المسار usr/local/etc/rc.d/، وفي مثالنا هنا لتركيب Nginx والتي تعمل كخدمة فإن سكربت تشغيلها يُدعى nginx. انتبه لاستبدال هذا الاسم بما يتناسب مع الخدمة التي قمتَ بتثبيتها أثناء تنفيذ الأوامر التالية.
لتوضيح ما يحدث عند محاولتك بدء خدمة لم تقم بتفعيلها لنجرّب استخدام الأمر service لبدء خدمة nginx (أو الخدمة التي قمتَ بتثبيتها في حالتك) بعد تركيبها فورًا ودون تفعيلها:

sudo service nginx start

لن تبدأ الخدمة بالطبع، بل ستحصل على رسالة خطأ شبيهة بما يلي:

Cannot 'start' nginx. Set nginx_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.

لتفعيل الخدمة؛ اتّبع المسار الموضّح في الرسالة السابقة وأضف السطر التالي إلى الملف etc/rc.conf/:

nginx_enable="YES"

تستطيع فعل ذلك إما بتحرير الملف etc/rc.conf/ عبر محرّر نصي (مثل vi) وإضافة السطر السابق، أو باستعمال الأداة sysrc لتحديث الملف كما يلي:

sudo sysrc nginx_enable=yes

هكذا تكون الخدمة قد فُعّلت وسوف تبدأ بالعمل عند إعادة إقلاع النظام، أو باستخدام الأمر start لتشغيلها في الحال:

sudo service nginx start

إذا كنتَ ترغب بتشغيل الخدمة لمرّة واحدة فقط ودون تفعيلها يمكنك استخدام الأمر onestart والذي سيُطلق سكربت بدء تشغيل الخدمة في الحال لكن بدون إعادة تشغيلها عند كل إقلاع للنظام:

sudo service nginx onestart

يُستفاد من الأمر onestart في تجريب إعدادات ضبط الخدمة قبل تفعيلها.

كيفية عرض معلومات الحزم بواسطة Pkg

لاستعراض معلومات عن الحزم المُثبّتة يمكنك استعمال الأمر pkg info:

pkg info package_name

يطبع الأمر السابق معلومات متنوعة حول الحزمة المُختارة بما في ذلك وصفها، الخيارات التي تُرجمت وفقها، وقائمة بالاعتماديات التي تحتاجها للعمل.

كيفية ترقية الحزم المثبتة بواسطة Pkg

لتثبيت الإصدارات الأحدث من البرامج التي تمّ تركيبها من قبل يمكن تنفيذ الأمر التالي:

sudo pkg upgrade

يُقارن الأمر السابق أرقام إصدارات الحزم المثبتة بتلك الموجودة في المستودعات ويُعيد قائمة بأسماء الحزم التي يمكن تحديثها:

Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 2 packages will be affected (of 0 checked):

Installed packages to be UPGRADED:

python27: 2.7.8_6 -> 2.7.9 perl5: 5.18.4_10 -> 5.18.4_11
The process will require 2 MB more space.
23 MB to be downloaded.

Proceed with this action? [y/N]: y

لبدء عملية الترقية أجب بنعم y على سؤال التحقّق السابق.

كيفية حذف الحزم بواسطة Pkg

إذا كنت تعرف اسم الحزمة التي ترغب بحذفها يمكنك استخدام الأمر pkg مع الخيار delete كما يلي:

sudo pkg delete package_name

لحذف عدد من الحزم دفعةً واحدة افصل بين أسمائها بمسافات فارغة:

sudo pkg delete package1 package2 ...

كمثال على ذلك لنجرّب حذف حزمة Nginx التي قمنا بتثبيتها للتو:

sudo pkg delete nginx

يُعيد الأمر السابق رسالة تحقّقية تشبه التالي:

Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:

nginx-1.6.2_1,2
The operation will free 654 KB.

Proceed with deinstalling packages? [y/N]: y

لحذف الحزمة السابقة أجب بنعمy` على السؤال السابق.

كيفية إزالة الاعتماديات غير المستخدمة

عند حذف حزمة ما فإن الاعتماديات الخاصة بها (في حال وجودها) لن تُحذف بشكل تلقائي معها. لحذف الحزم التي لم تعد لازمة لأية حزمة مُثبتة نفّذ الأمر التالي:

sudo pkg autoremove

يُعيد الأمر السابق قائمة بالحزم التي ستُحذف مع رسالة تحقّقية، أجب بنعم y إذا كنت ترغب بحذف هذه الحزم.

كيف تجد حزمة ما بواسطة Pkg

للبحث عن حزمة ما ضمن الحزم المتوفرة في المستودعات نستخدم الأمر pkg search.

البحث بواسطة الاسم

الطريقة الأولى للبحث عن حزمة ما هي استخدام اسمها مع الأمر التالي:

pkg search package_name

على سبيل المثال للبحث عن الحزم باسم "nginx" نستخدم الأمر التالي:

pkg search nginx

يطبع الأمر السابق قائمة بالحزم التي يحتوي اسمها على nginx مُضمنة بأرقام الإصدارات:

nginx-1.6.2_1,2 
nginx-devel-1.7.8 
p5-Nginx-ReadBody-0.07_1 
p5-Nginx-Simple-0.07_1 
p5-Test-Nginx-0.24 

إذا كنت ترغب بقراءة المعلومات التفصيلية عن هذه الحزم استعمل الخيار f-:

pkg search -f package_name

يُعيد الأمر السابق معلومات الحزم التي يطابق اسمها الاسم المُحدّد في الأمر.

البحث بواسطة الوصف

إذا لم تكن متأكدًا من اسم الحزمة التي ترغب بتثبيتها عندها يمكنك البحث في وصف الحزم المتوفرة في المستودعات من خلال الخيار D- والذي لا يراعي حالة الأحرف بشكل افتراضي:

pkg search -D pattern

على سبيل المثال للبحث عن جميع الحزم التي تضم كلمة "java" في وصفها نستعمل الأمر التالي:

pkg search -D java

يطبع هذا الأمر أسماء جميع الحزم المتوفرة والتي يحتوي وصفها على الكلمة المُحدّدة.

كيف تتعلم المزيد حول استخدام Pkg

Pkg هي أداة عالية المرونة حيث يمكن استخدامها بعدّة طرق أخرى لم نُشر إليها في هذا الدرس. ولحسن الحظ فإنها مزودة بأسلوب سهل للإطلاع على الأوامر والخيارات التي تدعمها وطريقة تنفيذها، وذلك من خلال:

pkg help

للقراءة أكثر حول أمر ما من الأوامر التي تتضمنها الأداة يمكننا أن نكون أكثر تحديدًا بكتابة:

pkg help subcommand

فعلى سبيل المثال للتعلّم أكثر حول استخدامات الأمر pkg search نُنفّذ:

pkg help search

هذا سيأخذنا مباشرة إلى القسم الخاص باستخدام pkg search من دليل الاستعمال man الخاص بـ pkg.

الخلاصة

إلى هنا يُفترض أنك تعلمت ما يكفي من مهارات لاستخدام pkg في إدارة الحزم الثنائية على نظام FreeBSD ضمن خادومك.

ترجمة -وبتصرف- للمقال: How To Manage Packages on FreeBSD 10.1 with Pkg لصاحبه: Mitchell Anicas.


تفاعل الأعضاء

أفضل التعليقات

كان هذا درسا مفيدا ، انا مستخدم جديد للنظام وابحث عن محتوى عربي لتعلم freeBSD وللاسف المحتوى العربي عن النظام يكاد يكون معدوم

فلا توجد سوى مقالات مقارنات بين النظام او تاريخ النظام اتمنى ان يت ترجمة كتاب شرح النظام باللغة العربية يوما ما فلقد ظلم هذا النظام ولم ياخذ حقه رغم قوته وسلاسته

رابط هذا التعليق
شارك على الشبكات الإجتماعية



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...