أساسيات التعامل مع مدراء الحزم

نشره طريف في

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

نظرة سريعة

عادة ما تكون الحزمة عبارة عن ملف أرشيف يحتوي على ملفات ثنائية مُصنّفة compiled binaries وملفات تتضمن تعليمات أخرى ضرورية للتثبيت، مثل قائمة الاعتماديات، والبيانات الوصفية metadata الخاصة بها.
في العموم تتفاوت صيغ وأساليب التحزيم (Deb, Rpm, Tar.gz..) ومدراء الحزم المسؤولة عنها. نعرض في هذا الجدول أشهر الخيارات المتوفرة:

| التوزيعة | صيغة الحزم | مدير الحزم | | -------- | ---------- | ------------ | | دبيان/أوبونتو/منت | DEB | apt-get/aptitude | | فيدورا | RPM | dnf | | أوبن سوزا | RPM | zypper | | آرش لينكس | PKG.TAR.XZ | pacman |

دبيان

تُدار الحزم في توزيعة دبيان (وما بني عليها) باستخدام الأداة APT، وهي اختصار لـ ‫‪Advanced‬‬ ‫‪Package‬‬ ‫‪Tool‬‬، والتي تستخدم قائمة بالمستودعات أو المصادر المتاحة من المسار ‫‪/etc/apt/sources.list‬‬، وقد بنيت العديد من الواجهات (النصيّة والرسوميّة) للتعامل مع APT، كان أولها apt-get ثم apt الذي جاء لتغطية بعض الأخطاء التصميمة في الأول، وكذلك لدينا ‫‪aptitude‬‬ (والذي يزكيه مشروع دبيان للتعامل مع مدير الحزم ضمن سطر الأوامر) وَ ‫‪synaptic‬‬ (التطبيق المُزكى للواجهة المرئية).
نعرض في الجدول التالي أبرز الأوامر لإدارة الحزم عبر aptitude‬‬:

| الوظيفة | الأمر | | ------- | ----- | | تحديث قوائم الحزم* | aptitude update | | تثبيت حزمة | aptitude install Package | | حذف حزمة | aptitude remove Package | | حذف الاعتماديات غير المستخدمة | aptitude autoremove | | حذف الحزمة وإعداداتها | aptitude purge Package | | تحديث الحزم دون تغيير قائمة الاعتماديات** | aptitude upgrade | | تحديث الحزم التي تتطلب تغيير قائمة الاعتماديات | aptitude dist-upgrade | | حذف ملفات التثبيت deb | aptitude clean | | تنظيف الحزم الموجودة في الكاش | aptitude autoclean | | البحث عن حزمة | aptitude search Package | | عرض معلومات عن الحزمة | aptitude show Package |

ملاحظات:

  • * في دبيان يجب تحديث قوائم الحزم Package Lists بشكل يدوي قبل تثبيت أو ترقية الحزم، كي لا تظهر مشاكل عدم توفر حزمة ما أثناء عملية التنزيل من الإنترنت نتيجة تغيّر إصدارها.
  • ** يعمل الأمر upgrade أو ‫‪safe-upgrade‬‬ على ترقية جميع الحزم المثبتة والتي لا تتطلب إصدارتها الجديدة تغييرًا في قائمة الإعتماديات (كتثبيت حزم جديدة أو حذف أخرى قديمة)، وهذا ما يؤدي في بعض الأحيان إلى تجاهل تثبيت بعض الحزم، حينها يمكنك استخدام dist-upgrade لترقية الحزم حتى لو احتاجت إلى اعتماديات جديدة.
  • معظم الأوامر السابقة تتطلب صلاحيات الجذر root، باستثناء عمليات البحث وعرض المعلومات.
  • المزيد عن Aptitude.
فيدورا

تستخدم فيدورا 22 والنسخ التالية لها مدير الحزم dnf بشكل افتراضي (والذي كان متاحًا منذ الإصدار 18)، وهو خلف yum بهدف معالجة بعض القضايا مثل إمكانية تشغيله على بايثون 3 و2، تقليل استهلاك الموارد، تسريع أداء عملية الترقية إلخ.
نعرض في الجدول التالي أبرز الأوامر لإدارة الحزم عبر dnf:

| الوظيفة | الأمر | | ------- | ----- | | تحديث قوائم الحزم* | dnf check-update | | تثبيت حزمة | dnf install Package | | حذف الحزمة وإعداداتها** | dnf remove Package | | حذف الاعتماديات غير المستخدمة | dnf autoremove | | تحديث الحزم | dnf upgrade | | حذف ملفات التثبيت rpm والكاش الخاص بها ومخلفات أخرى | dnf clean all | | البحث عن حزمة | dnf search Package | | عرض معلومات عن الحزمة | dnf info Package |
| عرض اعتماديات حزمة ما | dnf list Package |

ملاحظات:

  • * يقوم dnf بتحديث قوائم الحزم تلقائيًا (مثلًا عند تثبيت حزمة ما أو طلب الترقية)، لكن إن رغبت فقط بمعرفة ما إذا كان هناك تحديثات متوفرة فيمكنك استخدام هذا الأمر.
  • ** حذف الحزمة في فيدورا يحذف معها جميع إعداداتها بشكل تلقائي.
  • المزيد عن dnf .
أوبن سوزا

تستخدم أوبن سوزا مدير الحزم zypper بشكل افتراضي، بالاستناد إلى المكتبة Libzypp، وهي المكتبة التي يستخدمها YaST مدير التوزيعة في الوضع الرسومي. نعرض في الجدول التالي أبرز الأوامر لإدارة الحزم عبر zypper:

| الوظيفة | الأمر | | ------- | ----- | | تحديث قوائم الحزم* | zypper refresh | | تثبيت حزمة | zypper install Package | | حذف الحزمة وإعداداتها | zypper remove Package | | تحديث الحزم من مصادرها | zypper update | | ترقية الحزم إلى أحدث إصدار حتى لو تغيّر المصدر** | zypper dup | | البحث عن حزمة | zypper search Package | | عرض معلومات عن الحزمة | zypper info Package |
| عرض اعتماديات حزمة ما | zypper list Package |

ملاحظات:

  • * يقوم Zypper بتحديث قوائم المستودعات تلقائيًا (إلا في حال إبطال ذلك)، لكن تحتاج إلى تحديث القوائم عقب إضافة مستودع جديد.
  • ** الترقية العادية في أوبن سوزا باستخدام update أو up تبحث عن الإصدارات الأحدث لكل حزمة من طرف مزودها الأصلي فقط، فإذا توفّرت الحزمة في مصدرين وكان الآخر يحتوي نسخة أحدث من المزود الأصلي فهنا تحتاج إلى استخدام الأمر dup للحصول على هذا الإصدار. رغم أن ذلك غير مُزكّى به من قبل أوبن سوزا.
  • المزيد عن Zypper .
أرش لينكس

تستخدم أرش لينكس مدير الحزم pacman والذي تعتبره واحدة من مزاياها، كتب البرنامج باستخدام لغة البرمجة C ليتعامل مع صيغة التحزيم pkg.tar.xz. نعرض في الجدول التالي أبرز الأوامر لإدارة الحزم عبر pacman:

| الوظيفة | الأمر | | ------- | ----- | | تثبيت حزمة | pacman -S Package | | حذف حزمة بدون اعتمادياتها | pacman -R Package | | حذف حزمة مع اعتمادياتها التي لم تعد تلزم | pacman -Rs Package | | حذف حزمة مع اعتمادياتها وجميع الحزم التي تعتمد عليها* | pacman -Rsc Package | | حذف الحزمة المطلوبة من قبل حزمة أخرى بدون حذف الحزم التي تعتمد عليها | pacman -Rdd Package | | تحديث قوائم الحزم وترقية النظام | pacman -Syu | | تنظيف ملفات التثبيت والكاش | pacman -Sc | | الاستعلام عن حزمة | pacman -Q Package | | عرض معلومات عن الحزمة | pacman -Si Package |
| البحث عن حزمة ما ضمن قاعدة البيانات | pacman -Ss Package |

ملاحظات:

  • * قد يُنفّذ هذا الأمر بشكل تكراري مؤديًا إلى حذف الكثير من الحزم بما في ذلك الأساسية لعمل النظام!
  • المزيد عن pacman .