ماهو PPA وكيفيه ادارته ؟

ماهو PPA ؟

يرمز PPA إلى أرشيف الحزمة الشخصية.
ضع في اعتبارك ان كلمة “شخصية” هنا يعطي تلميحًا إلى أن هذا شيء خاص بالمطور وليس معتمدًا رسميًا من قبل التوزيعة. يسمح PPA لمطوري التطبيقات ومستخدمي Linux بإنشاء مستودعات خاصة بهم لتوزيع البرامج. باستخدام PPA ، يمكنك بسهولة الحصول على إصدار برنامج أحدث غير متوفر عبر مستودعات التوزيعة الرسمية لـUbuntu .

مفهوم المستودعات وإدارة الحزم

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

  • ( رئيسي - Main):- برنامج مجاني ومفتوح المصدر مدعوم من Canonical.
  • (الكون او العام - Universe) :- برنامج مجاني ومفتوح المصدر يديره المجتمع.
  • (مقيد - Restricted):- برامج تشغيل خاصة للأجهزة.
  • (الأكوان المتعددة - Multiverse):- البرمجيات المقيدة بحقوق النشر أو القضايا القانونية.
    لذلك فالـPPA في الأساس عنوان URL على الويب يحتوي على معلومات حول البرنامج.

كيف يعرف نظامك أين توجد هذه المستودعات؟

يتم تخزين المعلومات الرئيسية والرسمية في ملف sources.list في الدليل etc / apt/ إذا نظرت إلى محتواه ، فسترى أنه يحتوي على عنوان URL للمستودعات. الآن عند تشغيل الأمر sudo apt update ، يستخدم نظامك أداة APT للتحقق من الريبو ويخزن المعلومات حول البرنامج وإصداره في ذاكرة تخزين مؤقت. و عند استخدام الأمر sudo apt install package_name ، فإنه يستخدم المعلومات المخزنة في الذاكرة للحصول على تلك الحزمة من عنوان URL حيث يتم بعدها تخزين البرنامج الفعلي في التوزيعة.
إذا لم يكن المستودع يحتوي على معلومات حول حزمة معينة او برنامج معين، فسترىالخطأ الشائع " غير قادر على تحديد موقع خطأ الحزمة" والذي يكون كالتالي:

E: Unable to locate package

لماذا يتم استخدام PPA؟

على سبيل المثال يتحكم Ubuntu في البرنامج والأهم من ذلك إصدار البرنامج التي تحصل عليها على نظامك. لكن تخيل ما إذا كان مطور البرامج قد أصدر إصدارًا جديدًا من البرنامج.
في هذه الحالة لن تجعله Ubuntu متاحًا على الفور في مستودعاتها الرسمية. اذ ان هناك إجراء للتحقق مما إذا كان الإصدار الجديد من البرنامج متوافقًا مع النظام أم لا ويمر هذا الاصدار للبرنامج على عده اختبارات قبل اضافته الى المسودعات الرسمية وهذا لاجل ضمان استقرار النظام.
ولكن هذا يعني أيضًا أن الأمر سيستغرق بضعة أسابيع أو في بعض الحالات ، بضعة أشهر قبل إتاحته بواسطة Ubuntu. وقد لا يرغب الجميع في الانتظار كل هذا الوقت للحصول على الإصدار الجديد من برنامجهم المفضل. قد تكون هناك حالة أخرى أثناء الاختبار التجريبي. حتى في حالة توفر إصدار ثابت من البرنامج في المستودعات الرسمية ، فقد يرغب مطور البرامج في أن يقوم بعض المستخدمين النهائيين باختبار إصدارهم القادم. والسؤال كيف يمكنهم تمكين المستخدم النهائي من اختبار الإصدار التجريبي القادم؟
الجواب في التالي.

كيفية استخدام PPA؟ كيف يعمل PPA؟

يوفر Ubuntu نظامًا أساسيًا يسمى Launchpad يمكّن مطوري البرامج من إنشاء مستودعاتهم الخاصة. ، أي يمكنك إضافة مستودع PPA إلى قائمة المصادر الخاصة بك وعندما تقوم بتحديث نظامك ، سيعرف نظامك مدى توفر هذا البرنامج الجديد ويمكنك تثبيته باستخدام الأمر sudo apt install وتتم هذه العمليه بثلاث خطوات.
لناخذ على سبيل المثال هذا البرنامج

$ sudo add-apt-repository  ppa:webupd8team/y-ppa-manager
$ sudo apt-get update
$ sudo apt-get install y-ppa-manager

والتفاصيل تكون بهذا الشكل

  • sudo add-apt-repository ppa:webupd8team/y-ppa-manager

السطر أعلاه هو الطريقة التقليدية لإضافة أي مستودعات إلى القائمة الخاصة بك. لكن PPA يقوم بذلك تلقائيًا نيابة عنك ، دون التساؤل والبحث عن عنوان URL الدقيق للمستودع وإصدار نظام التشغيل.
من الأمور المهمة التي يجب ملاحظتها هنا أنه عند استخدام PPA ، فإنه لا يغير قائمة المصادر الأصلية والتي توجد في الدليل sources.list/apt/etc. بدلاً من ذلك ، يقوم بإنشاء ملفين في الدليل /etc/apt/sources.list.d ،
الملف الاول ملف يسمى القائمة"list التي سوف يتم اضافه معلومات البرامج منها
الملف الثاني ملف احتياطي ينتهي بجمله “save”. هذا إجراء أمان للتأكد من أن إضافة PPA لا تعبث بقائمة المصادر الأصلية. كما أنه يساعد في إزالة PPA.

  • sudo apt-get update ← يقوم هذا الأمر بتحديث قائمة الحزم التي يمكن تثبيتها على النظام.
    من المهم استخدام امر التحديث sudo apt update بعد اضافة رابط الحزمة وإلا فلن يتعرف نظامك على توفر حزمة جديدة. تقوم Ubuntu 18.04 والإصدارات الأحدث بتشغيل التحديث تلقائيًا لتحديث قائمة الحزم ولكن؛ من الجيد تشغيل امر التحديث لتفادي اي مشكله.

  • sudo apt-get install y-ppa-manager ← يقوم هذا الأمر بتثبيت الحزمة.

لماذا PPA؟ لماذا لا نستخدم حزم DEB؟

الجواب يكمن في إجراء التحديث. إذا قمت بتثبيت برنامج باستخدام حزمة DEB ، فليس هناك ما يضمن تحديث البرنامج المثبت إلى إصدار أحدث عند تشغيل الامر sudo apt update && sudo apt Upgrade.
ذلك لأن إجراء الترقية المناسب يعتمد على sources.list. إذا لم يكن هناك توفر اصدار لبرنامج ، فلن يحصل على التحديث عبر محدث البرنامج القياسي.
فهل يعني ذلك أن البرامج المثبتة باستخدام DEB لم يتم تحديثها أبدًا؟ لا ليس بالفعل كذلك. يعتمد ذلك على كيفية إنشاء الحزمة.
سوف تسال ماذا تقصد بـ"يعتمد ذلك على كيفية إنشاء الحزمة" ، الجواب سوف ناخذ امثلة لتتضح لك الفكرة .

  • المثال الاول يقوم بعض المطورين تلقائيًا بإضافة إدخال إلى list sources. ثم يتم تحديثه كبرنامج عادي. يعد Google Chrome أحد الأمثلة.
  • المثال الثاني يتم ارسال إشعارات من بعض البرامج بتوفر إصدار جديد عند محاولة تشغيله. سيتعين عليك تنزيل حزمة DEB الجديدة وتشغيلها مرة أخرى لتحديث البرنامج الحالي إلى إصدار أحدث. Oracle Virtual Box هو مثال في هذه الحالة.
  • والمثال الثالث بالنسبة لبقية حزم DEB ، سيتعين عليك البحث يدويًا عن تحديث وهذا ليس مناسبًا ، خاصة إذا كان برنامجك مخصصًا لمختبري الإصدارات التجريبية. تحتاج إلى إضافة المزيد من التحديثات بشكل متكرر.

كيفية ادارة مستودعات PPA وادارة برامجها؟

يمكن ادارتها من سطر الاوامر ولكن ماذا لو كانت هناك الكثير من المستودعات والبرامج ، بالطبع سيكون الامر صعبً قليلا ولاجل ذلك تم توفير برنامج ذو واجهه رسومية يسهل ادارة هذه المستودعات واسم هذا البرنامج هو Y PPA Manager

مميزات Y PPA Manager:

  • رؤيه جميع لـPPA المضافة إلى نظامك. وامكانيه إزالتها مع البرامج المرتبطه بها.
  • تثبيت PPA دون الحاجة إلى تحديث جميع الحزم الموجوده في النظام (مناسبة للأشخاص الذين لديهم اتصال بطيء بالشبكة)
  • البحث عن PPA المتاح في Launchpad
    وإزالة PPA المكرر
  • إصلاح خطأ BADSIG والمشكلات الشائعة الأخرى
  • النسخ الاحتياطي واستعادة PPA الخاص بك

تثبيت Y PPA Manager

  • 1- قم باضافة المستودع التالي :
$ sudo add-apt-repository ppa:webupd8team/y-ppa-manager
  • 2- قم بكتابة امر التحديث :
$ sudo apt update
  • 3- قم بتنزيل البرنامج بالامر :
$ sudo apt install y-ppa-manager

بعد ذلك قم بتشغيل البرنامج

1- الخيار الاول Add a PPA
يستخدم هذا لاضافة مستودعات البرنامج، ضع في هذا الخيار مستودع البرنامج الذي تريد تثبيته كما في الصورة التاليه :

2- الخيار الثاني Search for a PPA يستخدم هذا لمعرفة رابط مستودع البرنامج ، مثلا انت تريد تثبيت برنامج ولا تعرف رابط المستودع الخاص به ، اذن يمكنك البحث هنا وذلك بكتابة اسم البرنامج فقط كما في الصورة التاليه:

وسوف تظهر المستودعات الموجوده لهذا البرنامج وعندها يمكن تحديد المستودع والقيام باضافته مباشرة كما في الصورة التالية:

3- الخيار الثالث Manage Your PPAs يسمح لك هذا الخيار بعرض جميع البرامج المثبته عن طريق PPA ، مع امكانيه حذف هذه البرامج او حذفها مع جميع الحزم المرتبطه بها او تحديثها او تعديل السورس الخاص بها او عرض البرامج المرتبطه بكل مستودع كما في الصورة التالية :

4- الخيار الرابع Advanced يقوم بعرض برامج PPA والسماح لك باصلاح خطأ BADSIG او اخطأ اخرى او عرض GPG keys او عمل نسخه احتياطية او استرجاع لهذه البرامج كما في الصورة التالية:

الـ PPA الرسمية ضد الـPPA غير الرسمية

قد تسمع أيضًا مصطلح PPA الرسمي أو PPA غير الرسمي. ماهو الفرق؟
عندما ينشئ المطورون PPA لبرامجهم ، يطلق عليه PPA الرسمي. من الواضح تمامًا لأنه يأتي من مطوري المشروع.
لكن في بعض الأحيان ، ينشئ الأفراد PPA للمشاريع التي تم إنشاؤها بواسطة مطورين آخرين.
لماذا قد يفعل شخص هذا؟ نظرًا لأن العديد من المطورين يقدمون فقط الكود المصدري للبرنامج وأنت تعلم أن تثبيت البرنامج من الكود المصدري في Linux يمثل ألمًا ولا يمكن لأي شخص القيام بذلك أو سيفعله.
هذا هو السبب في أن المتطوعين يأخذون على عاتقهم إنشاء PPA من تلك الكود المصدري حتى يتمكن المستخدمون الآخرون من تثبيت البرنامج بسهولة. بعد كل شيء ، يعد استخدام هذه الأسطر الثلاثة أسهل بكثير من محاربة تثبيت الكود المصدري.

تأكد من توفر PPA لإصدار التوزيع الخاص بك

عندما يتعلق الأمر باستخدام PPA في Ubuntu أو أي توزيعة آخرى مبنية على Ubuntu ، فهناك بعض الأشياء التي يجب أن تضعها في اعتبارك.
ليس كل PPA متوفر لإصدارك او نوع توريعتك. لذلك يجب أن تعرف اصدار ونوع توزيعتك التي تستخدمها. وتتاكد ان البرنامج الذي تريده متوفر لتوزيعتك
يعد الاسم الرمزي للإصدار مهمًا لأنه عندما تذهب إلى صفحة الويب الخاصة باتفاقية PPA معينة ، يمكنك معرفة إصدارات Ubuntu التي يدعمها PPA.
بالنسبة للتوزيعات الأخرى المستندة إلى Ubuntu ، يمكنك التحقق من الدليل
etc / os-release/ لمعرفة معلومات إصدار نظامك الخاص

كيف تعرف عنوان url الخاص بـ PPA؟ ما عليك سوى البحث على الإنترنت باستخدام اسم PPA يتبعه اسم الاداة مثلا :
ppa:webupd8team/y-ppa-manager
اذا ظهرت لك مقاله عن الاداة من موقع Launchpad ،فهذا يعتبر PPA رسمي لان موقع Launchpad يعتبر النظام الأساسي الرسمي لاستضافة PPA. او يمكنك الانتقال إلى موقع Launchpad والبحث عن PPA المطلوب وستجده هناك مباشرة. او بالبحث في برنامج Y PPA Manager الذي تم شرحة سابقاً.
إذا لم تقم بالتحقق من البرنامج اذا كان يتوافق مع توزيعتك، فقد ترى خطأ عند محاولة تثبيته مثل :

E: Unable to locate package

والأسوأ من ذلك أنه نظرًا لإضافته إلى قائمة source.list.d الخاصة بك ، في كل مرة تقوم فيها بتشغيل أمر تحديث البرامج ، سترى خطأ “فشل تنزيل معلومات المستودع”.

Failed to download repository information

وإذا لم يكن PPA الخاص بالإصدار المحدد متاحًا ، فلن يتمكن مطلقًا من فتح عنوان URL وستحصل على الخطأ 404 الشهير.

لماذا لا تتوفر PPAs لجميع إصدارات إصدار Ubuntu؟

ذلك لأنه يجب على المطور تجميع البرنامج وإنشاء PPA منه على الإصدارات المحددة. بالنظر إلى أن إصدار Ubuntu الجديد يتم إصداره كل ستة أشهر ، فإن تحديث PPA لكل إصدار من Ubuntu مهمة متعبة.و ليس كل المطورين لديهم الوقت للقيام بذلك.

كيفية تثبيت التطبيق إذا لم يكن PPA متاحًا لإصدارك؟

من المحتمل أنه على الرغم من عدم توفر PPA لإصدارك الخاص ، فلا يزال بإمكانك تنزيل ملف DEB وتثبيت التطبيق.
لنفترض أنك ذهبت للبحث عن برنامج وذلك بالطريقة التي تم شرحها سابقاً، باستخدام PPA ، ولاحظت أن PPA غير متاح لإصدار Ubuntu الخاص بك.
ما يمكنك فعله هو النقر فوق “عرض تفاصيل الحزمة”.
كما في الصورة التالية:

وهنا ، يمكنك النقر فوق الحزمة للكشف عن مزيد من التفاصيل. ستجد أيضًا شفرة المصدر وملف DEB للحزمة هنا كما في الصورة التالية:

او يمكنك تثبيته عن طريق اداة Distrobox والتي تم شرحها سابقاً هنا.
أنصح باستخدام Gdebi لتثبيت ملفات DEB هذه بدلاً من Software Center لأن Gdebi أفضل كثيرًا في التعامل مع التبعيات.
تثبيت Gdebi يكون بالامر التالي:

$ sudo apt install gdebi

كيفيه حذف PPA؟

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

  • الطريقة الاولى وهي حذف المستودع بالستخدام الواجهه الرسومية :
    1- قم بالبحث في قائمة البرامج عن برنامج Software & Updates .
    2-قم باختيار Other software
    3- قم بتحديد واختيار رابط المستودع ثم اختر Remove
    كما في الصورة:

  • الطريقة الثانية حذف المستودع عن طريق سطر الاوامر (التيرمنال) :
    1- ادخل الامر التالي :

$ sudo add-apt-repository --remove ppa:"PPA_Name/ppa"

← لاحظ هنا الـ"PPA_Name/ppa" تعني اسم المستودع الذي تريد حذفه.

  • الطريقة الثالثة حذف المستودع من دليل المستودعات .
    اكتب الامر كالتالي:
$ sudo rm -i /etc/apt/sources.list.d/"PPA_Name.list"

هنا ايضا “PPA_Name.list” تعني اسم المستودع الذي تريد حذفه.

  • الطريقة الرابعة عن طريقه اداة ppa-purge.
    ملاحظة مهمه// هذه الاداة تقوم بحذف مستودع الـPPA الذي اخترت حذفه مع حذف البرامج التي ترتبط بهذا المستودع فقط.
    لذلك ان اردت حذف المستودع مع البرامج المرتبطة به استخدم هذه الاداة، وان كنت تريد حذف المستودع فقط قم بتطبيق الطريقه الاولى او الثانية او الثالثة

واستخدامها كالتالي:
اولا امر تثبيت الاداة:

$ sudo apt-get install ppa-purge

امر الحذف سيكون كالتالي:

$ sudo ppa-purge "ppa-url"

الـ"ppa-url" تعني رابط المستودع والذي يمكنك ايجاده عن طريق برنامج Software & Updates او Y PPA Managerالذي تم شرحهما سابقاً.

  • يمكنك ايضا البحث عن الحزم المثبتة بواسطة PPA والقيام بازالتها باستخدام مدير الحزم Synaptic والذي يحتوي على ميزات أكثر تقدمًا.
    يمكنك تثبيت Synaptic في التوزيعات الديبيانية والابنتو عن طريق الامر التالي:
$ sudo apt install synaptic

بمجرد التثبيت ، ابدأ مدير الحزم Synaptic وحدد Origin. سترى مستودعات متنوعة مضافة إلى النظام. سيتم تسمية مستودعات PPA بالبادئة PPA. انقر عليها لرؤية الحزم المتوفرة من طرف PPA. سيكون للبرنامج المثبت رمز مميز امامه. ثم يمكنك تحديد البرنامج وحذفه.

هل من الآمن استخدام PPA؟

معظم الوقت يكون PPA من مطوري الطرف الثالث. ولكن في الوقت نفسه ، تحظى PPA بشعبية في عالم Debian / Ubuntu لأنها توفر خيار تثبيت أسهل.
بقدر ما يتعلق الأمر بالأمان ، فمن غير المرجح أن تستخدم PPA و نظامك Linux قد تم اختراقه أو حقنه ببرامج ضارة. اذ انه لم يحدث مثل هذا الحادث حتى الآن.
يمكن استخدام PPA الرسمية دون قلق. اما استخدام PPA غير الرسمي هو قرارك الخاص.
كقاعدة عامة ، يجب تجنب تثبيت برنامج عبر PPA لجهة خارجية إذا كان البرنامج يتطلب صلاحيات sudo للتشغيل.

قائمة المراجع

1- PPA in Ubuntu Linux [Definitive Guide]

2- Easily Manage PPAs in Ubuntu With Y PPA Manager

3- How to Remove or Delete PPA in Ubuntu Linux

3 إعجابات

موضوع شامل وجم الفائدة. شكر الله لك.
على التوزيعات الدبيانية التي أستخدمها أعد GDebi أداة لا غنى عنها لتثبيت ومعالجة مسائل الاعتماديات.