البحث في الموقع
المحتوى عن 'إدارة الحزم'.
-
يُعتبر مدير الحزم الثنائية لـ FreeBSD والمُسمى pkg أداةً سهلة تمكّننا من إدارة البرامج مُسبقة الترجمة بما في ذلك عمليات التثبيت والحذف، وهو يعادل نظام إدارة الحزم في دبيان Deb أو نظيره RPM في RedHat. وبالمقارنة مع استخدام نظام المنافذ لبناء الحزم من المصدر على FreeBSD؛ فإن استعمال الحزم المُترجمة يُعتبر بديلًا أكثر سهولة وسرعة وملائمًا للعديد من الحالات، باستثناء أنها ليست بمرونة نظام المنافذ للبناء من المصدر نظرًا إلى عدم إمكانية تخصيص التحزيم، لذا ففي تلك الحالات التي تحتاج فيها إلى خيارات مُحدّدة أثناء عملية الترجمة يجدر بك بناء البرنامج من المصدر عوضًا عن استخدام الحزم الثنائية الجاهزة. نستعرض في هذا الدرس أساليب إدارة الحزم على نظام FreeBSD 10.1، بما في ذلك تثبيت وإزالة الحزم وعدد آخر من المهام ذات الصلة. المتطلباتفي هذا الدرس نحن نحتاج إلى إمكانية استخدام صلاحيات الجذر 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يطبع هذا الأمر أسماء جميع الحزم المتوفرة والتي يحتوي وصفها على الكلمة المُحدّدة. كيف تتعلم المزيد حول استخدام PkgPkg هي أداة عالية المرونة حيث يمكن استخدامها بعدّة طرق أخرى لم نُشر إليها في هذا الدرس. ولحسن الحظ فإنها مزودة بأسلوب سهل للإطلاع على الأوامر والخيارات التي تدعمها وطريقة تنفيذها، وذلك من خلال: 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.
-
توفر معظم الأنظمة الشبيهة بيونكس آلية مركزية لإيجاد وتثبيت البرمجيات. تُوزَع البرمجيات عادة في شكل حزم، مُخزنة في مستودعات. التعامل مع الحزم يُعرَف بإدارة الحزم. توفر الحزم المكونات الأساسية لنظام التشغيل، مع المكتبات المشتركة، التطبيقات، الخدمات والوثائق. يقوم نظام إدارة الحزم بأكثر من تثبيت البرمجيات لمرة واحدة. فهو يوفر أيضًا أدوات لترقية الحزم المثبتة حاليًا. تُساعد مستودعات الحزم على التأكد من أن الشيفرة فُحِصَت للاستخدام على نظامك، وأن المطورين والمشرفين وافقوا على نُسخ البرمجيات المُثبتة. عند ضبط الخواديم أو بيئات التطوير، غالبًا ما يكون النظر لما وراء المستودعات الرسمية ضروريًا. فقد تكون الحزم في الإصدار المُستقر من التوزيعة قديمة، خصوصًا عندما تكون البرمجيات المعنية سريعة التغيُر. وبالرغم من هذا، فإن إدارة الحزم هي مهارة حيوية لمدراء الأنظمة والمطورين، ووفرة البرمجيات المُحزّمة للتوزيعات الرئيسية هي مورد هائل. اُعد هذا الدّليل ليكون مرجعًا سريعًا لأساسيات إيجاد، تثبيت وترقية الحزم على مجموعة متنوعة من التوزيعات، وينبغي أن يساعدك على ترجمة هذه المعرفة بين الأنظمة. أنظمة إدارة الحزم: لمحة موجزة معظم أنظمة الحزم تُبنَى من مجموعات من ملفات الحزم. ملف الحزمة هو أرشيف يحتوي على ملفات ثُنائية مُترجمة ومصادر أخرى تُشكل البرنامج، مع سكربتات التثبيت. تحتوي الحزم أيضًا على بيانات وصفية قيّمة، تتضمن اعتمادياتها وقائمة من الحزم الأخرى المطلوبة لتثبيتها وتشغيلها. على الرغم من تشابه وظائف وفوائد تنسيقات وأدوات التحزيم إلى حد بعيد، إلا أنها تختلف باختلاف المنصات: نظام التشغيل التنسيق الأدوات Debian .deb apt, apt-cache, apt-get, dpkg Ubuntu .deb apt, apt-cache, apt-get, dpkg CentOS .rpm yum Fedora .rpm dnf FreeBSD Ports, .txz make, pkg تنسيق الحزم في دبيان والأنظمة المبنية عليها مثل أوبنتو، لينكس منت وراسبيان يكون كملف .deb. تُوفر أداة الحزم المُتقدمة APT أوامر لمعظم العمليات الشائعة: البحث بالمستودعات، تثبيت مجموعات من الحزم واعتمادياتها وإدارة الترقيات. تعمل أوامر APT كواجهة أمامية للأداة منخفضة المستوى dpkg، والتي تقوم بتثبيت ملفات .deb الفردية على النظام محليًا، وأحيانًا تُستدعى مباشرةً. تَستخدم CentOS، فيدورا والتوّزيعات الأخرى في عائلة Red Hat ملفات بتنسيق RPM. يُستخدم yum في CentOS للتفاعل مع ملفات الحزم الفردية والمستودعات. في النُسخ الحديثة من فيدورا حل dnf محل yum، وهو مُشتق حديث يحتفظ بمعظم خصائص واجهة yum النصية. يُدار نظام الحزم الثنائية في FreeBSD بالأمر pkg. ويوفر FreeBSD كذلك ما يُطلق عليه اسم Ports Collection، وهو هيكل مُجلدات محلية وأدوات تسمح للمُستَخدِم بجلب، تجميع وتثبيت الحزم مباشرة من المصدر باستخدام ملفاتMakefile. استخدام pkg مُريح غالبًا، ولكن أحيانًا لا تتوافر حزم مُترجمة مسبقًا، أو قد تُريد تغيير الخيارات بوقت الترجمة. تحديث قوائم الحزم تحتفظ معظم الأنظمة بقاعدة بيانات محلية للحزم المتوافرة بالمستودعات البعيدة. من الأفضل تحديث قاعدة البيانات قبل ترقية الحزم. وكاستثناء جزئي لهذا النمط، سيتحقق yum و dnf من وجود تحديثات قبل القيام ببعض العمليات، لكن يمكنك سؤالها عن توافر التحديثات بأي وقت. النظام الأمر Debian / Ubuntu sudo apt-get update CentOS yum check-update Fedora dnf check-update FreeBSD Packages sudo pkg update FreeBSD Ports sudo portsnap fetch update ترقية الحزم المثبتة التأكد من حداثة البرمجيات المُثبتة على النظام ستكون مهمة ضخمة بدون نظام حزم. ستضطر أن تتتبع تغييرات المنبع والتنبيهات الأمنية لمئات من الحزم المختلفة. على الرغم من أن مدير الحزم لن يحل كل مشكلة ستقابلها عند ترقية البرمجيات، إلا أنه يُمَكِنُك من صيانة معظم مكونات النظام بأوامر قليلة. ترقية الـ port المُثبتة على FreeBSD يمكن أن تُؤدي إلى إدخال أعطال أو تتطلب خطوات ضبط يدوية. من الأفضل أن تقرأ usr/ports/UPDATING/ قبل الترقية باستخدام portmaster. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get upgrade يُرقي الحزم الجديدة فقط، إن كان بالإمكان. sudo apt-get dist-upgrade قد يُضيف أو يحذف حزم لتلبية الاعتماديات الجديدة. CentOS sudo yum update Fedora sudo dnf upgrade FreeBSD Packages sudo pkg upgrade FreeBSD Ports less /usr/ports/UPDATING يُستخدم الأمر less لعرض ملاحظات التحديث للمنافذ. استخدم مفاتيح الأسهم للانتقال، اضغط q للخروج. cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a يُثبت portmaster ويستخدمه لتحديث المنافذ المُثبتة. إيجاد حزمة توفر معظم التوزيعات واجهة رسومية لمجموعات الحزم. هذه طريقة جيدة للتصفح بالفئة واكتشاف برمجيات جديدة. على الرغم من أنه غالبًا تكون الطريقة الأسرع والأكثر كفاءة لإيجاد حزمة هي البحث باستخدام أدوات سطر الأوامر. النظام الأوامر ملاحظات Debian / Ubuntu apt-cache search search_string CentOS yum search search_string yum search all search_string يبحث بجميع الحقول، من ضمنها الوصف. Fedora dnf search search_string dnf search all search_string يبحث بجميع الحقول، من ضمنها الوصف. FreeBSD Packages pkg search search_string يبحث بالاسم. pkg search -f search_string يبحث بالاسم، ويُعيد وصف كامل. pkg search -D search_string يبحث بالوصف. FreeBSD Ports cd /usr/ports && make search name=package يبحث بالاسم. cd /usr/ports && make search key=search_string يبحث في الأسماء، الأوصاف والاعتماديات. عرض معلومات عن حزمة محددة من المفيد قراءة أوصاف تفصيلية عن الحزم التي قررت تثبيتها. إلى جانب نص قابل للقراءة، يتضمن غالبًا بيانات وصفية مثل أرقام النُسخ وقائمة من اعتماديات الحزم. النظام الأمر ملاحظات Debian / Ubuntu apt-cache show package يعرض المعلومات المُخزنة محليًا عن الحزمة package. dpkg -s package يعرض حالة التثبيت الحالية للحزمة package. CentOS yum info package yum deplist package يسرد اعتماديات الحزمة package. Fedora dnf info package dnf repoquery –requires package يسرد اعتماديات الحزمة package. FreeBSD Packages pkg info package يعرض معلومات عن الحزمة المُثبتة package. FreeBSD Ports cd /usr/ports/category/port && cat pkg-descr تثبيت حزمة من المستودعات بمجرد معرفة اسم الحزمة، يمكن تثبيت الحزمة واعتمادياتها بأمر واحد. عمومًا، يمكنك طلب تثبيت حزم عديدة ببساطة عن طريق ذكرها جميعًا. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get install package sudo apt-get install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo apt-get install -y package يُجيب بنعم عندما يطلب apt الاستمرار. CentOS sudo yum install package sudo yum install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo yum install -y package يُجيب بنعم عندما يطلب yum الاستمرار. Fedora sudo dnf install package sudo dnf install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo dnf install -y package يُجيب بنعم عندما يطلب dnf الاستمرار. FreeBSD Packages sudo pkg install package sudo pkg install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … FreeBSD Ports cd /usr/ports/category/port && sudo make install يبني ويُثبت منفذ من المصدر. تثبيت حزمة من نظام الملفات المحلي أحيانًا، بالرغم من عدم تحزيم البرمجيات رسميًا لنظام معين، سيوفر المطور أو البائع ملفات الحزم للتحميل. يمكنك الحصول عليهم عبر المتصفح، أو من خلال curl على سطر الأوامر. بمجرد وجود الحزمة على النظام، يمكن عادة تثبيتها بأمر واحد. يتعامل dpkg مع ملفات الحزم الفردية على الأنظمة الدبيانية. إذا كان هناك اعتماديات ناقصة لحزمة، فيمكن استخدام gdebi لجلب هذه الاعتماديات من المستودعات الرسمية. يُستخدم yum و dnf على أنظمة فيدورا و CentOS لتثبيت ملفات الحزم الفردية، ومُعالجة الاعتماديات المطلوبة أيضًا. النظام الأمر ملاحظات Debian / Ubuntu sudo dpkg -i package.deb sudo apt-get install -y gdebi && sudo gdebi package.deb يُثبت ويستخدم gdebi لتثبيت الحزمة package.deb ويَحصُل على أي اعتماديات ناقصة. CentOS sudo yum install package.rpm Fedora sudo dnf install package.rpm FreeBSD Packages sudo pkg add package.txz sudo pkg add -f package.txz يُثبت الحزمة package حتى وإن كانت مُثبتة. إزالة حزمة واحدة أو أكثر بما أن مدير الحزم يعرف الملفات التي تأتي مع حزمة مُعينة، فيمكن إزالة هذه الملفات بشكل نظيف من النظام إذا لم يعد هناك حاجة لهذه الحزمة. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get remove package sudo apt-get autoremove يُزيل الحزم غير الضرورية. CentOS sudo yum remove package Fedora sudo dnf erase package FreeBSD Packages sudo pkg delete package sudo pkg autoremove يُزيل الحزم غير الضرورية. FreeBSD Ports sudo pkg delete package cd /usr/ports/path_to_port && make deinstall يلغي تثبيت منفذ مُثبت. الحصول على المساعدة بالإضافة إلى التوثيقات المتوافرة على الشبكة، ضع في اعتبارك أن صفحات دليل يونكس (يُشار إليها بصفحات الدليل) متوافرة لمعظم الأوامر من الصدفة. استخدم man لقراءة صفحة page على النّحو التّالي: $ man page يمكنك الانتقال بمفاتيح الأسهم في man. اضغط / للبحث عن نص في الصفحة، و q للخروج. النظام الأمر ملاحظات Debian / Ubuntu man apt-get تحديث قاعدة البيانات المحلية والتعامل مع الحزم. man apt-cache الاستعلام في قاعدة بيانات الحزم المحلية. man dpkg التعامل مع ملفات الحزم الفردية والاستعلام عن الحزم المُثبتة. CentOS man yum Fedora man dnf FreeBSD Packages man pkg التعامل مع الحزم الثنائية المُترجمة مُسبقًا. FreeBSD Ports man ports التعامل مع مجموعات المنافذ. خاتمة ولمزيد من القراءة عرضنا العمليات الأساسية التي يمكن استخدامها كمرجع بين الأنظمة، لكننا لم نتطرّق سوى إلى أساسيات الأمر. للحصول على مزيد من التفاصيل لنظام معين، راجع المصادر التالية: يُغطي هذا الدليل إدارة حزم دبيان وأوبنتو بالتفصيل. هناك دليل CentOS الرسمي لإدارة البرمجيات باستخدام yum. هناك صفحة wiki فيدورا عن dnf، ودليل dnf الرسمي. يُغطي هذا الدليل إدارة حزم FreeBSD باستخدام pkg. يحتوي دفتر FreeBSD على قسم لاستخدام مجموعات المنافذ. ترجمة -وبتصرّف- للمقال Package Management Basics: apt, yum, dnf, pkg لصاحبه Brennen Bearnes.