الدليل إلى أوامر apt-get

apt-get-commands

يعدّ هذا الدرس مقدمة ودليلًا إلى أوامر apt-get الخاصة بتوزيعة أوبونتو أو التوزيعات المبنية عليها مثل LinuxMint, elementaryOS, إلخ… ويناقش ما يتعلق بهذه الأوامر مثل البحث عن الحزم  وتثبيتها وحذفها وترقيتها وتنظيفها وما إلى ذلك…

يُذكر أننا تناولنا مُسبقًا هذا الموضوع ولكن بشكل مقتضب وبسيط على هذا الرابط، وهذه المرة سوف نناقشه بشكل أكثر تفصيلًا.

ما هو apt-get؟

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

وأمّا apt فهي أداة حزم متقدمة (Advanced Package Tool) وهي أداة سطر أوامر تفاعلية تتفاعل مع نظام التحزيم المذكور سالفًا dpkg فما هي إلا نائب عنه،  بيّد أن apt أكثر سهولة في التعامل مع الحزم…

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

بشكل أساسي فإن apt-get يعمل على قاعدة بيانات تحتوي على مجموعة من الحزم المتوافرة للتنزيل، إذا لم تقم بتحديثها فإن النظام لن يستطيع التعرّف على الحزم والبرامج الجديدة التي سوف تصدر لاحقًا، في الواقع هذا الأمر يُفضّل استخدامه دائمًا بعد عمل تثبيت جديد لتوزيعة لينكس خاصتك، وهذا هو الأمر:

sudo apt-get update

عندما تُشغّل هذا الأمر، سوف ترى مجموعة من المعلومات تم استردادها من سيرفرات مختلفة على هذه الشاكلة:

Using-apt-get-commands-linux-01

سوف ترى ثلاثة أنواع من الأسطر أولهم “ign” والثاني “get” وأما الثالث “hit”، وفيما يلي شرح لهم:

  • hit: تعني عدم وجود تغيير في إصدار الحزمة.
  • ign: وتعني أن الحزمة قد تمّ تجاهلها، ولهذا الأمر أسباب عدّة فإمّا أن تكون الحزمة حديثة جدا فلا يكلف نفسه عناء البحث وإمّا أن يكون هنالك خطأ في استرداد معلومات الملف ولكن الخطأ يكون تافهًا فيتم تجاهله وبالتالي هو ليس خطأ بالمعنى الحقيقي ولا داعي للقلق منه.
  • get: هنالك إصدار جديد متوفر، سوف يقوم بتحميل المعلومات الجديدة (وليس الحزمة نفسها).

ترقية الحزم المثبتة

بمجرد عمل تحديث update لقاعدة بيانات الحزم يمكنك بعدها أن تعمل ترقية upgrade للحزم المثبتة، الطريقة الأمثل لعمل ترقية لكل الحزم التي لديها تحديثات متوفرة هو عبر الأمر التالي:

sudo apt-get upgrade

Using-apt-get-commands-linux-12

لترقية برنامج معيّن دونًا عن غيره، استعمل الأمر التالي، مع استبدال <package_name> باسم البرنامج أو الحزمة:

sudo apt-get upgrade <package_name>

هنالك طريقة أخرى لعمل ترقية كاملة وذلك عبر الأمر التالي، في الواقع يقوم هذا الأمر بالبحث عن الاعتماديات مع البحث عن أحدث إصدار ومحاولة تثبيت، ويالحقيقة ينبغي عليك تجنّب استعماله وسنوضّح هذا في النقطة التالية:

sudo apt-get dist-upgrade

ما الفرق بين upgrade وdist-upgrade؟

يمكنك القول أن الأمر apt-get upgrade هو أمر مُطيع جدًا، فهو لا يحاول أن يحذف الحزم، ولا يحاول تثبيت حزم جديدة من تلقاء نفسه، فيما أن الأمر apt-get dist-upgrade هو أمر استباقيّ، أيّ أنه يبحث عن الاعتماديات مع أجدد نسخة للحزمة ويحاول تثبيتها ويحذف أخرى بنفسه، مما قد يسبب مشاكل في “بعض” الأحيان.

dist-upgrade أكثر قوة وذكاء ولكنه خطير في بعض الحالات؛ حيث يحاول هذا الأمر أن يقوم بعمل تسوية في النظام بذكاء عن طريق ترقية الحزم ذات الأهمية الأكبر على حساب الأقل أهمية وهذا قد يؤدي لإزالة بعض الحزم التي ترغب بقاءها، هذا هو السبب الذي يدعوك لتجنّب استخدامه على حاسوبك اليوميّ.

ما الفرق بين apt-get update وapt-get upgrade؟

هناك خلط شائع بين هذين الأمرين لدى الكثير من الناس، يظن البعض أن apt-get update يقوم بتحديث الحزم وهو أمر غير صحيح.

apt-get update لا يقوم بشيء سوى أنه يحدّث قاعدة البيانات التي تتواجد بها تلك الحزم، لا أكثر؛ على سبيل المثال: لنفرض أن لديك الحزمة المُسمّاة XYZ ولنفترض أنها تحمل الإصدار 1.3 جدلًا وهي مُثبتة على حاسوبك، وبعد القيام بعمل apt-get update فإن قاعدة البيانات سوف تكون على علم بوجود إصدار جديد وستُعطيك معلومات بأن الإصدار الجديد 1.4 قد أصبح متاحًا، ولكنها لن تقوم بتحديث البرنامج نهائيًا.

ولكن عند تشغيل الأمر apt-get upgrade (وذلك بعد عمل apt-get update)، فإنه سوف يقوم بتحديث البرنامج (ترقيته) بشكل فعليّ.

هذا يفسّر لنا السبب لماذا أن apt-get upgrade هو الأمر الأكثر سرعة وفعالية لتحديث نظام حاسوبك، وذلك عبر الأمر التالي:

sudo apt-get update && sudo apt-get upgrade -y

*تشير -y إلى الموافقة التلقائية YES وذلك بدلًا من كتابة y بواسطة المستخدم يدويًا للموافقة على تلك العملية.

استعمال أوامر apt-cache للبحث عن الحزم

قد لا تكون هذه الطريقة المناسبة للبحث عن الحزم لدى الكثير من الناس، هذا صحيح، ولكن بالواقع إنها الطريقة الأمثل للبحث عن المكتبات “lib”.

نستخدم لأجل ذلك الأمر التالي، لاحظ أن لا تحتاج إلى صلاحيات المسؤوول sudo في هذا الأمر عكس الأوامر السابقة التي تتطلب ذلك:

apt-cache search <search term>

استبدل search-term بالحزمة التي تريد البحث عنها…

Using-apt-get-commands-linux-05

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

apt-cache pkgnames <search_term>

سيعطيك قائمة بالحزم التي تبدأ بأول مقطع في الـ search-term خاصتك…

Using-apt-get-commands-linux-03

إذا كنتَ تريد الحصول على معلومات إضافية عن الحزمة بعد أن انتهيت من البحث عنها فاستعمل الأمر التالي:

apt-cache showpkg <package_name>

Using-apt-get-commands-linux-02

تثبيت حزم جديدة

يمكن بسهولة تثبيت الحزم على أوبونتو وبناتها عبر الأمر التالي:

sudo apt-get install <package_name>

مع استبدال <package_name> باسم البرنامج المطلوب تثبيته، على فرض أننا نريد تنصيب برنامج الرسم pinta نستعمل الأمر التالي:

sudo apt-get install pinta

Using-apt-get-commands-linux-11

الشيء  الجميل في هذا الأمر هو أن لديه ميزة إكمال تلقائي auto-completion، بمعنى إذا لم تكن متأكدًا من اسم  الحزمة المطلوبة فيمكنك كتابة بضعة أحرف بسيطة والضغط على tap وسوف يقترح لك أسماء الحزم المتاحة.

Using-apt-get-commands-linux-10

تثبيت أكثر من حزمة

أنت لست مقيدًا بتنصيب حزمة واحدة، فيمكنك كتابة اسم أكثر من برنامج على نفس السطر في ذات الوقت باستخدام أمر واحد:

sudo apt-get install <package_1> <package_2> <package_3>

ماذا إذا قمت بتشغيل الأمر على حزمة مثبتة مسبقًا؟

إذا كان لديك برنامج مثبت مسبقًا على حاسوبك وقمتَ باستخدام الأمر apt-get install عليه مرة أخرى، فإنه سوف يقوم بعمل ترقية upgrade ويُحدّثه إلى آخر نسخة موجودة (إن وُجدت).

التثبيت بدون الترقية

لنفرض أن هنالك أسبابًا خاصة تمنعك من استخدام نسخة أحدث من حزمةٍ ما ولا تريد عمل ترقية له، فيمكنك استخدام الأمر التالي:

sudo apt-get install <package_name> --no-upgrade

Using-apt-get-commands-linux-09

الترقية بدون التثبيت

إذا كنتَ تريد ترقية حزمة ولكن بدون تثبيتها (إذا لم تكن مثبتة مسبقًا)، فيمكنك استعمال الأمر التالي:

sudo apt-get install <package_name> --only-upgrade

Using-apt-get-commands-linux-07

تثبيت نسخة محددة من التطبيق

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

sudo apt-get install <package_name>=<version_number>

إزالة الحزم المثبتة

وذلك باستعمال الأمر التالي:

sudo apt-get remove <package_name>

الإكمال التلقائي يعمل هنا أيضًا، يمكنك كتابة بضعة أحرف بسيطة من اسم الحزمة والضغط على tap وسوف يقترح لك أسماء الحزم المتاحة.

توجد طريقة أخرى للإزالة وهي باستخدام purge:

sudo apt-get purge <package_name>

ما الفرق بين apt-get remove وapt-get purge؟

apt-get remove فقط يزيل ثنائيات الحزم (الحزم بوجهها العامّ (binaries of a package))، ولكنه لا يمسّ ملفات الضبط والتكوين (configuration files).

apt-get purge يزيل كل شيء تمامًا حتى الحزم ذات العلاقة بالحزمة المطلوبة وحتى ملفات الضبط.

فلذلك عندما تحذف حزمة ما باستخدام apt-get remove ثم تعيد تنصيبها فإنك ستلاحظ أن النظام قد استعاد بعض الإعدادات التي كانت موجودة عند أول تثبيت، وقد يسألك النظام إذا كنتَ تريد الكتابة override فوق ملفات الضبط التي كانت موجودة عند التثبيت من جديد.

فيما أن purge مفيد فقط عندما يكون لديك بعض الأشياء الفاسدة في ملفات الضبط والتي تريد محو آثارها تمامًا من النظام والبدء من جديد.

في العموم يظلّ remove أكثر ملاءمة من purge.

تنظيف النظام

باستخدام apt-get clean يمكنك تنظيف مخلفات حاسوبك وإفراغ مساحة حرّة على القرص الصلب…

يستخدم الأمر التالي لتنظيف المستودع المحليّ من ملفات الحزم التي تمّ جلبها:

sudo apt-get clean

على عكس الأمر السابق، نستخدم autoclean لإزالة ملفات الحزم ذات الإصدارة الأحدث التي تمّ جلبها، ولا شيء أكثر:

sudo apt-get autoclean

ولتحرير مساحة على القرص الصلب نستخدم autoremove فهو يزيل المكتبات والحزم التي يتم تثبيتها تلقائيًا استجابة وتلبيةً لأمور الاعتماديات وعادة ما تكون تلك الحزم عديمة الفائدة:

sudo apt-get autoremove

هذه بعض من طرق تنظيف الحاسوب، هنالك طرق أكثر سهولة وتقدمًا عبر الواجهة الرسومية، ولقد شرحنا واحدة منها في هذا الرابط.

كان هذا مجرّد شرح ميسر لأوامر apt-get، يمكنك الحصول على مزيد من المعلومات عبر صفحات man_pages.

[itsfoss]

  • Seeder

    شكرًا أخي حسام على هذا الدليل المفيد والرائع
    لكن أما كان من الأفضل اعتماد أمر apt الجديد؟! حيث أنه مطور ومختصر في كثير من الأمور وتم اعتماده من Ubuntu 14.04/16.04 و Debian 8 حيث أنني استعمله أيضا في Debian

مشاركة