إدارة مستودعات البرامج
أضف مستودعات تابعة لجهات خارجية، وافهم مصادر الحزم، وحلّ تعارضات التبعيات لعمليات تثبيت البرامج المعقدة
إدارة مستودعات البرامج درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
ما مستودعات البرامج؟
عندما تثبّت برنامجًا على Linux، لا ينزّله نظامك من مكان عشوائي، بل يستخدم مستودعات البرامج.
المستودع (أو «repo») هو موقع مركزي تُخزَّن فيه حزم البرامج وتُصان. فكّر فيه كأنه متجر تطبيقات لخادم Linux!
- الموثوقية: تُختبر الحزم عادةً للتأكد من عملها مع توزيعة Linux الخاصة بك.
- التحديثات: تسهّل المستودعات إبقاء برامجك محدّثة.
- التبعيات: تتولى تثبيت جميع البرامج الداعمة الضرورية (التبعيات).
المصادر الرسمية ومصادر الجهات الخارجية
تنقسم المستودعات عادةً إلى فئتين:
- المستودعات الرسمية: تتولى توزيعة Linux الخاصة بك صيانتها (مثل Ubuntu وCentOS). وتحتوي على برامج مستقرة ومختبرة جيدًا. تأتي معظم الأدوات الشائعة منها.
- مستودعات الجهات الخارجية: يتولى مطورون أو مؤسسات منفردة صيانتها، وليس توزيعتك. وقد توفر إصدارات أحدث من البرامج أو أدوات متخصصة أو إصدارات تجريبية.
رغم فائدة مستودعات الجهات الخارجية، احرص دائمًا على توخي الحذر. ولا تضف إلا المستودعات الصادرة عن مصادر موثوقة لتجنب المخاطر الأمنية.
إضافة المستودعات باستخدام APT (Debian/Ubuntu)
في الأنظمة المبنية على Debian وUbuntu، تتولى أداة Advanced Package Tool (APT) إدارة البرامج. وتُدرج المستودعات في ملفات ضمن /etc/apt/، وأهمها /etc/apt/sources.list والملفات الموجودة في /etc/apt/sources.list.d/.
بالنسبة إلى مستودعات الجهات الخارجية، ستستخدم غالبًا الأمر add-apt-repository، لا سيما مع Personal Package Archives (PPAs).
بعد إضافة مستودع جديد، شغّل دائمًا sudo apt update لجلب أحدث معلومات الحزم منه.
مستودع APT: مثال على إضافة PPA
لنرَ كيفية إضافة PPA شائع. يضيف هذا المثال PPA يوفر إصدارًا أحدث من Neovim، وهو محرر نصوص. ثم سنحدّث قائمة الحزم.
# Add the Neovim stable PPA
sudo add-apt-repository -y ppa:neovim-ppa/stable
# Update your package list to include the new repo's packages
sudo apt update
echo "Neovim PPA added and package lists updated!"إضافة المستودعات باستخدام YUM/DNF (RHEL/CentOS)
في أنظمة Red Hat أو CentOS أو Fedora، يتولى yum (أو خليفته dnf) إدارة الحزم. وتستخدم هذه الأنظمة ملفات .repo لتعريف المستودعات.
توجد هذه الملفات عادةً في المجلد /etc/yum.repos.d/. ويعرّف كل ملف .repo مستودعًا واحدًا أو أكثر، مع تفاصيل مثل اسمه وعنوان URL الأساسي ومعلومات مفتاح GPG.
بعد إنشاء ملف .repo أو تعديله، قد تحتاج إلى تشغيل sudo dnf clean all (أو yum clean all) ثم sudo dnf update (أو yum update) لتحديث بيانات الحزم الوصفية.
مستودع YUM/DNF: إنشاء ملف .repo
إليك مثالًا على إنشاء ملف .repo لـ Google Chrome، الذي لا يوجد في مستودعات RHEL/CentOS الرسمية. نستخدم tee للكتابة إلى الملف بامتيازات sudo.
# Create a .repo file for Google Chrome
echo "[google-chrome]" | sudo tee /etc/yum.repos.d/google-chrome.repo
echo "name=Google Chrome" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "Google Chrome repository file created!"التحقق من الحزم باستخدام مفاتيح GPG
عند إضافة مستودعات الجهات الخارجية، من الضروري أيضًا استيراد مفاتيح GPG (GNU Privacy Guard) الخاصة بها. وتُستخدم هذه المفاتيح للتحقق تشفيريًا من أصالة الحزم.
ويضمن ذلك عدم العبث بالحزم التي تنزّلها، وأنها جاءت فعلًا من المصدر المُدّعى، مما يحمي نظامك من البرامج الضارة.
- APT: يتولى
add-apt-repositoryالتعامل مع المفاتيح غالبًا، أو تُستورد يدويًا باستخدامapt-key add. - YUM/DNF: تُحدَّد المفاتيح في ملف
.repoباستخدامgpgkey=، وتُستورد باستخدامrpm --import.
wget -qO - https://example.com/KEY.gpg | sudo apt-key add -
# Or for YUM/DNF:
sudo rpm --import https://example.com/KEY.gpgمعالجة تعارضات التبعيات
قد توفر مستودعات مختلفة أحيانًا إصدارات مختلفة من الحزمة نفسها، أو حزمًا ذات تبعيات متعارضة. وقد يؤدي ذلك إلى تعارضات التبعيات.
سينبّهك مدير الحزم عادةً إلى هذه التعارضات، وقد يقترح حلولًا لها. ومن الأدوات الشائعة لتشخيصها:
- APT: يعرض
apt policy <package-name>الإصدارات المتاحة من مستودعات مختلفة. - YUM/DNF: يسرد
dnf deplist <package-name>التبعيات والموفّرين.
من الأفضل الالتزام بالمستودعات الرسمية، إلا إذا كانت لديك حاجة محددة إلى إصدار من جهة خارجية وتفهم المخاطر المحتملة.
apt policy firefox
# Or for YUM/DNF:
dnf deplist firefoxتحديد أولويات المستودعات
إذا كان لديك عدة مستودعات توفر الحزمة نفسها، يمكنك إخبار مدير الحزم بالمستودع المفضّل. ويُسمى ذلك تحديد أولوية المستودعات.
- APT: استخدم أسلوب «pinning» بإنشاء ملفات في
/etc/apt/preferences.d/. وتعيّن قيمة «Pin-Priority» للحزم القادمة من مصادر محددة. وتشير أرقام الأولوية الأعلى (فوق 500) إلى الأفضلية. - YUM/DNF: تتيح إضافة
yum-plugin-priorities(أو الوظيفة المضمّنة في DNF) تعيين قيمةpriority=في ملفات.repo(يشير الرقم الأقل إلى أولوية أعلى).
يتيح لك ذلك استخدام مزيج من المستودعات المستقرة والأحدث بأمان.
# Example for APT pinning:
# File: /etc/apt/preferences.d/my-app
Package: my-app
Pin: origin "example.com"
Pin-Priority: 900تحقق من إدارة المستودعات
لنختبر مدى فهمك لإدارة مستودعات البرامج.
مراجعة: إتقان المستودعات
تهانينا! لقد تعلّمت كيفية إدارة مستودعات البرامج، وهي مهارة أساسية لأي مسؤول Linux.
- أصبحت تفهم الآن الفرق بين المستودعات الرسمية ومستودعات الجهات الخارجية.
- يمكنك إضافة المستودعات باستخدام
add-apt-repository(Debian/Ubuntu)، ومن خلال إنشاء ملفات.repo(RHEL/CentOS). - أصبحت تعرف أهمية مفاتيح GPG للتحقق من أصالة الحزم.
- تعرّفت إلى معالجة تعارضات التبعيات وتحديد أولويات المستودعات.
تذكّر دائمًا إعطاء الأولوية للأمان، وعدم إضافة المستودعات إلا من مصادر موثوقة!
الأسئلة الشائعة
هل درس «إدارة مستودعات البرامج» مجاني؟
نعم — نص درس «إدارة مستودعات البرامج» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
ماذا ستتعلم في «إدارة مستودعات البرامج»؟
أضف مستودعات تابعة لجهات خارجية، وافهم مصادر الحزم، وحلّ تعارضات التبعيات لعمليات تثبيت البرامج المعقدة تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟
لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «إدارة مستودعات البرامج»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟
نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مديرا الحزم APT وYUM
- تثبيت البرامج وتحديثها
- إدارة مستودعات البرامج
- البناء من المصدر واستخدام Snap وFlatpak