البحث في الموقع
المحتوى عن 'rpm'.
-
تستخدم بعض توزيعات لينكس، خصوصا تلك المعتمدة على Fedora مثل CentOS وRed Hat Enterprise Linux، حزم RPM لتثبيت البرامج وإدارتها. ملف rpm. هو عبارة عن تجميع لبرامج ومكتبات تحتاجها هذه البرامج في حزمة تُستخدَم أداة باسم rpm لتثبيتها. الأداة rpm هي أداة مفتوحة المصدر تحتفظ ببيانات الحزم المثبّتة على النظام في المجلّد var/lib/rpm/. من المهم الانتباه إلى أن أداة rpm لا تستطيع التعامل مع البرامج التي ثُبِّتت انطلاقا من المصدر Source. يحتوي ملفّ rpm. على معلومات من قبيل ماهية الحزمة، من أين تأتي، الاعتماديات التي تحتاجها للعمل، الإصدار… إلخ. توجد خمسة أوضاع أساسية لأداة rpm: التثبيت i-: يُستخدَم لتثبيت حزم RPM. الحذف e-: يُستخدَم لحذف حزمة وإلغاء تثبيتها. الترقية U-: يُحدّث حزمة مثبّتة (تثبيت إصدار جديد من الحزمة). التحقق V-: يُستخدَم للتحقّق من حزمة RPM. الاستعلام q-: يُستخدَم للاستعلام عن حزم RPM. حزم RPM هي حزم قائمة بذاتها؛ تمكن الاستفادة من المواقع التالية للحصول على حزم RPM الخاصّة ببرنامج تريده: redhat.com rpmfind.net. rpm.pbone.net rpmseek.com يقدّم هذا المقال أمثلة لأوامر RPM من أجل المساعدة في تثبيت البرامج، تحديثها أو حذفها على توزيعة تستخدم RPM للتحزيم. ملحوظة: يجب أن تكون لديك صلاحيات الجذر حتى تستطيع إدارة الحزم. التحقق من توقيع حزمة يجب أولا التحقّق من مصدر الحزمة وموثوقيتها قبل تثبيتها. يُستخدم الخيار checksig-- مع الأمر rpm لهذا الغرض. لكي نستطيع التحقق من حزمة فإنه يجب أولا استيراد المفاتيح العمومية Public keys الخاصّة بالنظام الذي نعمل عليه (Fedora، CentOS، RHEL أو غيرها). بالنسبة لتوزيعة Red Hat Enterprise Linux فالأمر على النحو التالي: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-* نطلب في الأمر التالي التحقق من الحزمة pidgin-1.5.1-6.el3.x86_64.rpm: [root@academy1 ~]# rpm --checksig pidgin-1.5.1-6.el3.x86_64.rpm pidgin-1.5.1-6.el3.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK لاحظ أن نتيجة التحقق هي OK. تثبيت حزمة يطلُب الأمر التالي تثبيت الحزمة pidgin-1.5.1-6.el3.x86_64.rpm التي تحققنا من موثوقيتها أعلاه: [root@academy1 ~]# rpm -ivh pidgin-1.5.1-6.el3.x86_64.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%] تظهر في الأمر أعلاه الخيارات التالية: i-: وضع التثبيت، v-: طلب إظهار رسائل بتقدم عملية التثبيت، h-: طلب إظهار علامات # للدلالة على التقدم الحاصل في تنفيذ خطوات التثبيت. الخياران الأخيران v- وh- ليسا ضروريين. التحقق من اعتماديات حزمة قبل تثبيتها تتيح أداة rpm التحقق من اعتماديات حزمة قبل تثبيتها، مثلا للتحقق من اعتماديات الحزمة pidgin-2.11.0-1.fc24.x86_64.rpm: [root@academy1 ~]# rpm -qpR pidgin-1.5.1-6.el3.x86_64.rpm /bin/sh /bin/sh glib2 >= 2.2 htmlview libICE.so.6()(64bit) libSM.so.6()(64bit) libX11.so.6()(64bit) libXext.so.6()(64bit) libao.so.2()(64bit) libatk-1.0.so.0()(64bit) libaudiofile.so.0()(64bit) (...) يشير الخيار q- إلى أننا في وضع الاستعلام عن الحزمة. يطلب الخيار p- معلومات عن حزمة غير مثبّتة ويسرُد الخيار R- اعتماديّات الحزمة. تثبيت حزمة بغض النظر عن اعتمادياته لا يقبل rpm في الحالة العادية تثبيت حزمة إلا إذا كانت جميع اعتمادياتها مثبتة؛ إلا أنه يمكن إجباره على ذلك باستخدام الخيار nodeps--: [root@academy1 ~]# rpm -ivh --nodeps pidgin-1.5.1-6.el3.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:pidgin-1.5.1-6.el3 ################################# [100%] يُثبّت الأمر أعلاه الحزمة بتجاهل الأخطاء المتعلقة باعتماديّاتها؛ إلا أن البرنامج لن يعمل إلا بعد تثبيت الاعتماديات المطلوبة. التحقق من أن حزمة مثبّتة استخدم وضع الاستعلام q- للتأكد من أن حزمة مّا مثبتة على النظام: [root@academy1 ~]# rpm -q BitTorrent package BitTorrent is not installed [root@academy1 ~]# rpm -q pidgin pidgin-1.5.1-6.el3.x86_64.rpm سرد قائمة بجميع ملفات حزمة مثبتة أضف خيار السرد l- إلى وضع الاستعلام q- للحصول على قائمة بملفات حزمة مثبتة على النظام: [root@academy1 ~]# rpm -ql pidgin /etc/gconf/schemas/purple.schemas /usr/bin/gaim /usr/bin/pidgin /usr/lib64/pidgin /usr/lib64/pidgin/convcolors.so /usr/lib64/pidgin/extplacement.so /usr/lib64/pidgin/gestures.so /usr/lib64/pidgin/gtkbuddynote.so (...) سرد الحزم المُثبتة يسرُد الخيار a- عند استخدامه في وضع الاستعلام قائمة بأسماء جميع الحزم المثبتة: [root@academy1 ~]# rpm -qa libsss_nss_idmap-1.13.0-40.el7_2.9.x86_64 pygobject3-base-3.14.0-3.el7.x86_64 libfprint-0.5.0-3.el7.x86_64 man-pages-3.53-5.el7.noarch redhat-release-server-7.2-9.el7.x86_64 rsyslog-7.4.7-12.el7.x86_64 libsane-hpaio-3.13.7-6.el7_2.1.x86_64 (...) يمكن ترتيب القائمة لتظهر الحزم المثبتة مؤخرا في الأعلى باستخدام الخيار last--: [root@academy1 ~]# rpm -qa --last pidgin-1.5.1-6.el3.x86_64.rpm Sun 04 Sep 2016 09:47:32 PM GMT glibc-devel-2.17-106.el7_2.8.x86_64 Tue 02 Aug 2016 11:42:29 PM GMT nss-pam-ldapd-0.8.13-8.el7.x86_64 Tue 02 Aug 2016 11:42:23 PM GMT nscd-2.17-106.el7_2.8.x86_64 Tue 02 Aug 2016 11:42:17 PM GMT glibc-headers-2.17-106.el7_2.8.x86_64 Tue 02 Aug 2016 11:42:14 PM GMT glibc-common-2.17-106.el7_2.8.x86_64 Tue 02 Aug 2016 11:42:01 PM GMT (...) تحديث حزمة يُستخدَم وضع الترقية U- لتحديث إصدار حزمة مثبتة. يحتفظ أمر rpm عند تحديث حزمة بنسخة احتياطية من الإصدار المثبت للعودة إليها في حال لم تعمل الحزمة حسب المطلوب بعد تحديثها: [root@academy1 ~]# rpm -Uvh pidgin-1.5.1-6.el3.x86_64.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%] حذف حزمة استخدم الخيار e- مع الأمر rpm لحذف حزمة بذكر اسمها. مثلا؛ لحذف حزمة pidgin السابقة: [root@academy1 ~]# rpm -e pidgin تمكن أيضا إضافة الخيار v إلى الأمر لعرض رسائل بما يحدُث: [root@academy1 ~]# rpm -ev pidgin Preparing packages... pidgin-1.5.1-6.el3.x86_64.rpm كما يمكن الإبقاء على اعتماديات الحزمة باستخدام الخيار nodeps-- مع أمر الحذف وهو ما ينتج عنه حذف الحزمة فقط دون اعتمادياتها: [root@academy1 ~]# rpm -ev --nodeps pidgin انتبه إلى أن حذف حزمة من النظام يمكن أن يؤدي إلى عدم استقراره؛ لذا تأكد من حاجتك فعلا لحذف الحزمة. معرفة الحزمة التي ينتمي إليها ملف استخدم الخيار f- في وضع الاستعلام لمعرفة الحزمة التي ينتمي إليها ملف. مثلا؛ تخبرنا نتيجة الأمر التالي أن الملف usr/bin/htpasswd/ ينتمي للحزمة httpd-tools-2.4.6-40.el7_2.4.x86_64. [root@academy1 ~]# rpm -qf /usr/bin/htpasswd httpd-tools-2.4.6-40.el7_2.4.x86_64 الحصول على معلومات عن حزمة يعرض الخيار i- عند استخدامه في وضع الاستعلام معلومات عن حزمة مثبتة؛ مثلا بالنسبة لحزمة vsftpd: [root@academy1 ~]# rpm -qi vsftpd Name : vsftpd Version : 3.0.2 Release : 11.el7_2 Architecture: x86_64 Install Date: Thu 21 Jul 2016 03:29:37 PM GMT Group : System Environment/Daemons Size : 355788 License : GPLv2 with exceptions Signature : RSA/SHA256, Fri 18 Mar 2016 01:08:35 AM GMT, Key ID 199e2f91fd431d51 Source RPM : vsftpd-3.0.2-11.el7_2.src.rpm Build Date : Wed 24 Feb 2016 11:06:41 AM GMT Build Host : x86-019.build.eng.bos.redhat.com Relocations : (not relocatable) Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Vendor : Red Hat, Inc. URL : https://security.appspot.com/vsftpd.html Summary : Very Secure Ftp Daemon Description : vsftpd is a Very Secure FTP daemon. It was written completely from scratch. أما إن أردت الحصول على معلومات عن حزمة قبل تثبيتها فالأمر هو التالي: [root@academy1 ~]# rpm -qip pidgin-1.5.1-6.el3.x86_64.rpm Name : pidgin Version : 1.5.1 Release : 6.el3 Architecture: x86_64 Install Date: (not installed) Group : Applications/Internet Size : 11168813 License : GPL Signature : DSA/SHA1, Thu 29 Oct 2009 08:14:44 AM GMT, Key ID 219180cddb42a60e Source RPM : pidgin-1.5.1-6.el3.src.rpm Build Date : Wed 28 Oct 2009 03:52:51 PM GMT Build Host : x86-003.build.bos.redhat.com Relocations : (not relocatable) Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Vendor : Red Hat, Inc. URL : http://www.pidgin/im/ Summary : A Gtk+ based multiprotocol instant messaging client Description : Pidgin allows you to talk to anyone using a variety of messaging protocols, including AIM, ICQ, IRC, Yahoo!, Novell Groupwise, MSN Messenger, Jabber, Gadu-Gadu, Napster, and Zephyr. These protocols are implemented using a modular, easy to use design. To use a protocol, just add an account using the account editor. Pidgin supports many common features of other clients, as well as many unique features, such as perl scripting, TCL scripting and C plugins. Pidgin is NOT affiliated with or endorsed by America Online, Inc., Microsoft Corporation, Yahoo! Inc., or ICQ Inc. [root@academy1 ~]# الاستعلام عن التوثيق Documentation الخاص بحزمة مثبتة يمكن الحصول على مستندات التوثيق الخاصّة بحزمة باستخدام الخيارين df- في وضع الاستعلام. يأخذ الأمر معطى عبارة عن مسار الحزمة؛ وهو ما يمكن الحصول عليه عن طريق الأمر which. نطلب في المثال التالي معرفة مسار الحزمة vsftpd ثم نستعلم عن مستدات التوثيق الخاصّة بها: [root@academy1 ~]# which vsftpd /sbin/vsftpd [root@academy1 ~]# rpm -qdf /sbin/vsftpd /usr/share/doc/vsftpd-3.0.2/AUDIT /usr/share/doc/vsftpd-3.0.2/BENCHMARKS /usr/share/doc/vsftpd-3.0.2/BUGS /usr/share/doc/vsftpd-3.0.2/COPYING /usr/share/doc/vsftpd-3.0.2/Changelog (...) التحقق من حزمة تقارن أداة rpm عند طلب التحقق من حزمة المعلومات المستقاة من الملفات المثبتة مع تلك الموجودة في قاعدة بيانات rpm. يُستخدم الخيار V- لوضع التحقق وp لتمرير حزمة إلى الأمر: [root@academy1 ~]# rpm -Vp vsftpd-3.0.3-2.fc24.x86_64.rpm warning: vsftpd-3.0.3-2.fc24.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 81b46521: NOKEY .......T. c /etc/logrotate.d/vsftpd .......T. c /etc/pam.d/vsftpd .......T. c /etc/vsftpd/ftpusers .......T. c /etc/vsftpd/user_list .......T. c /etc/vsftpd/vsftpd.conf .......T. /etc/vsftpd/vsftpd_conf_migrate.sh .......T. /usr/lib/systemd/system-generators/vsftpd-generator .......T. /usr/lib/systemd/system/vsftpd.service .......T. /usr/lib/systemd/system/vsftpd.target .......T. /usr/lib/systemd/system/vsftpd@.service S.5....T. /usr/sbin/vsftpd missing /usr/share/doc/vsftpd missing d /usr/share/doc/vsftpd/AUDIT missing d /usr/share/doc/vsftpd/BENCHMARKS missing d /usr/share/doc/vsftpd/BUGS (...) يمكن طلب التحقق من جميع الحزم في النظام بالخيار a في وضع التحقق على النحو التالي: [root@academy1 ~]# rpm -Va S.5....T. c /etc/os-release S.5....T. /usr/src/kernels/3.10.0-327.22.2.el7.x86_64/include/config/auto.conf S.5....T. /usr/src/kernels/3.10.0-327.22.2.el7.x86_64/include/config/auto.conf.cmd S.5....T. /usr/src/kernels/3.10.0-327.22.2.el7.x86_64/include/config/tristate.conf S.5....T. /usr/src/kernels/3.10.0-327.22.2.el7.x86_64/include/generated/autoconf.h (...) سرد جميع المفاتيح العمومية المستوردة يمكنك إن أردت سرد جميع المفاتيح العمومية للحزم المثبتة على نظامك، وذلك على النحو التالي: [root@academy1 ~]# rpm -qa gpg-pubkey* gpg-pubkey-2fa658e0-45700c69 gpg-pubkey-37017186-45761324 gpg-pubkey-897da07a-3c979a7f gpg-pubkey-f21541eb-4a5233e7 gpg-pubkey-42193e6b-4624eff2 gpg-pubkey-fd431d51-4ae0493b gpg-pubkey-db42a60e-37ea5438 تصحيح قاعدة بيانات RPM معطوبة يحدُث أن تُصاب قاعدة البيانات الخاصّة بحزم RPM بعُطب مما ينتُج عنه غياب وظائف من أداة rpm. يمكنك في هذه الحالة محاولة بناء قاعدة البيانات من جديد بالأوامر التالية: [root@academy1 ~]# cd /var/lib/rpm [root@academy1 rpm]# rm __db* [root@academy1 rpm]# rpm --rebuilddb [root@academy1 rpm]# /usr/lib/rpm/rpmdb_verify Packages BDB5105 Verification of Packages succeeded. ترجمة - وبتصرف - لمقال 20 Practical Examples of RPM Commands in Linux لصاحبه Ravi Saive.
-
واحدة من الإمكانيات الأساسيّة التي يجب أن تتمتّع بها معظم خوادم الإنترنت؛ القدرة على استقبال وإرسال المعلومات إلى الأجهزة الأخرى المُتصلة بالشبكة، فعلى الرغم من أن الناس تنظر عمومًا إلى الخوادم باعتبارها منصات تزويد بالمحتوى، إلا أنها يجب أن تملك القدرة على استقبال المحتوى لأسبابٍ عديدة. وفي حين أنّ معظم حزم البرامج في غنو لينكس متوفرة ضمن المستودعات الرسمية لكل توزيعة ويمكن تحميلها وتركيبها باستخدام أدوات مدراء الحزم المعروفة، إلا أنّ باقي أنواع الملفات والمعلومات تستخدم آليات مختلفة. نناقش في درسنا هذا بعضًا من الطرق الشائعة لتحميل الملفات والمعلومات إلى خادوم لينكس الخاص بك. سوف نستخدم بشكل رئيسي خادوم يعمل بنظام Ubuntu 14.04 لتطبيق الأمثلة الواردة هنا، إلا أنه يمكنك المتابعة معنا بالتأكيد بغض النظر عن إصدار ونوع توزيعتك. الحصول على البيانات والتطبيقات من المستودعاتقد يكون استخدام المستودعات الرسميّة لجلب الحزم والتطبيقات إلى خادومك أكثر الطرق شيوعًا. تُشير المستودعات في سياقنا هنا إلى عدّة أشياء مختلفة، فقد تُعبّر مثلًا عن المجموعات الكبيرة من التطبيقات المتوفرة بصيغة مُترجمة compiled جاهزة للتثبيت، والتي تمّ اختبارها وضبطها بحيث تناسب التوزيعة التي تستخدمها. إضافةً لذلك لدينا المستودعات المصدرية، والتي تحتوي على كافة الملفات الضروريّة لبناء تطبيق ما انطلاقًا من المصدر. وسنتناول كلا النوعين من المستودعات فيما يلي. تركيب البرامج من المستودعات العاديّة لتوزيعتكالطريقة القياسيّة لتركيب البرامج في بيئة غنو لينكس هي استخدام مدير الحزم، والمُعدّ مسبقًا للاتصال مع مجموعة من الخوادم المُجهزّة بمستودعات تضم آلاف الحزم التي تمّ فحصها، تحزيمها، واختبار توافقها مع النظام. تستخدم توزيعات غنو لينكس أنواعًا مختلفة من صيغ التحزيم ومدراء الحزم لإنجاز ذلك. وتعتبر صيغة التحزيم deb. الأكثر شهرةً، وهي الصيغة المُستخدمة في توزيعة دبيان و Ubuntu وعدد آخر من مشتقاتهما، ولدينا أيضًا صيغة التحزيم rpm. والتي تُستخدم عادةً في توزيعة RedHat والتوزيعات المبنية عليها مثل CentOS و Fedora، أخيرًا هناك بعض التوزيعات التي تستخدم نظامًا ثالثًا أبسط مما سبق وهو صيغة التحزيم tar.xz. كتوزيعة Arch Linux. وفي العموم، فإن التوزيعات التي تستخدم التحزيم ذو اللاحقة deb. تعتمد على مدير الحزم apt، بينما تعتمد التوزيعات التي تستخدم تحزيم rpm. على مدير الحزم yam أو إصداره المُحدّث dnf. وباعتبار أن Arch Linux تُحزّم البرامج بصيغة ثالثة، فإنها تملك كذلك مدير حزمها الخاص والذي يدعى pacman لإدارة عمليات التثبيت والحذف وما إلى هنالك، يمكنك قراءة المزيد عن كيفيّة استخدام pacman من خلال صفحة الويكي الخاصّة به في موسوعة Arch. كيفيّة استخدام أرشيف الحزم الشخصيّ PPAواحدة من الطرق الإضافيّة للحصول على البرامج والتطبيقات في الأجهزة العاملة بنظام Ubuntu هي استخدام أراشيف الحزم الشخصية أو ما يعرف بـ PPA، والتي تُكسب توزيعة Ubuntu مرونة جيّدة. تشير الـ PPA بشكل أساسيّ إلى مستودع على الإنترنت، عادةً ما يشمل واحدة أو عددًا قليلًا من الحزم، و يدار بواسطة شخص أو فريق عمل مستقل عن قنوات Ubuntu الرسميّة، مما يزوّد المستخدمين بمصادر إضافيّة لمدير الحزم، بحيث تصبح التطبيقات المخزّنة ضمن هذه المستودعات متاحة للتركيب بشكل سلس إلى جانب الحزم الأخرى. تتمتع أراشيف الحزم الشخصيّة بعددٍ من المميزات إذ تُمكّنك من الحصول على أحدث نسخ التطبيقات بين إصدارات Ubuntu الرسميّة كلّ ستّة أشهر، حيث عادةً ما يترك فريق Ubuntu مهمة تحديث نسخ البرامج الجديدة حتى موعد الإصدار القادم من التوزيعة، إضافةً إلى إتاحة الوصول لمجموعة أوسع من التطبيقات التي لا يقوم فريق Ubuntu الرسمي بتحزيمها أصلًا، فيما لو توفر فريق من المتطوعين الذين يتخذون على عاتقهم مهمة توفير هذه الحزم. والميزة الأهم عن البناء من المصدر هي أن هذه الحزم تُدار بواسطة أدوات مدير الحزم التقليدي، وهذا يشمل إمكانية استقبالها للتحديثات بشكل دوري ودمجها مع نظام التحزيم العام، الأمر الذي يسهّل عليك عددًا من المهام كحل مشاكل الاعتماديات. وفي المقابل هناك بعض المساوئ التي تعتري هذا الأسلوب بطبيعة الحال، أحدها أنك ستضع الكثير من الثقة في مشرفي ومطوري مستودعات PPA. فبينما هناك أسباب وجيهة لمنح منتجي Ubuntu هذه الثقة، فإنه يتوجب عليك أن تسائل نفسك فيما إذا كانت مستودعات PPA تُقدَّم من قِبل جهة جديرة بالثقة. فحتى لو لم يملك المطورون أغراضًا خبيثة، فقد لا يدركون بالشكل المثالي المحاذير الأمنيّة مما قد يُسبّب مخاطر جديّة عن غير قصد. أمرٌ آخر يجب أن تحتفظ به في ذهنك، ألا وهو فترة حياة مستودعات PPA، إذ عليك أن تملك خطّة عمل فيما لو توقّف الدعم فجأةً عن هذه المستودعات من قبل المصدر، ثم هل تملك الوقت لمراقبة الحالات التي تُقرّر فيها توزيعتك أخيرًا إضافة الدعم رسميًا لهذه الحزم من خلال المستودعات الافتراضية؟ قبل أن نتابع، قد يتوجب عليك تركيب الحزمة التالية في Ubuntu لتسهيل إدارة مستودعات PPA، والتي يختلف اسمها تبعًا للإصدار الذي تستخدمه، إلا أنه يجب أن تكون قادرًا على استخدام أحد هذين الخيارين: sudo apt-get update sudo apt-get install python-software-properties # For Ubuntu 12.04 and lower sudo apt-get install software-properties-common # For Ubuntu versions > 12.04 بعد ذلك يمكنك إضافة مستودعات PPA بواسطة الصيغة العامة التالية: sudo add-apt-repository ppa:PPA_name ولتفعيل المستودع الجديد ينبغي تحديث فهرس الحزم للحصول على المعلومات الجديدة من PPA المُضاف، وأخيرًا يمكنك تركيب البرنامج الجديد الذي يُقدّمه المستودع كالعادة: sudo apt-get update sudo apt-get install new_packageمستودعات Gitتُعتبر Git نوعًا آخر من المستودعات والتي يُرجّح أنك سمعت بها من قبل، في الأصل فإن Git هو برنامج مُوزّع وغير مركزي لإدارة إصدارات البرامج وتسهيل المشاركة في تطويرها وإدارة نُسخها، فإذا كان البرنامج الذي تبحث عنه مُستضافًا على مستودع git أو بواسطة إحدى خدمات الوِب لاستضافة البرمجيات باستخدام git مثل GitHub، Bitbucket، private GitLab، فيمكنك حينها تنزيل نسخة من الملفات بسهولة عن طريق الأمر git. في البداية دعنا نتأكد من وجود الأداة git مُثبّتة على نظام التشغيل: sudo apt-get update sudo apt-get install git بعد ذلك يمكنك إنشاء مجلّد جديد والانتقال إليه لتحفظ المشروع وتستنسخ مستودعه باستخدام المعلومات التي يقدّمها موقع الاستضافة. فعلى سبيل المثال للحصول على رابط URL لمستودع مشروع في موقع GitHub انظر إلى الجانب الأيمن: يمكنك الآن نسخ عنوان الرابط URL وتمريره بعد ذلك إلى الطرفية باستخدام الأمر: git clone https://github.com/user/project.git ينسخ الأمر السابق المشروع بالكامل إلى الدليل النشط في الطرفيّة. موارد الويب العامّةفي حين أن استخدام المستودعات لإدارة البرامج أمرٌ سهل، ويوفّر طريقة رائعة لتتبّع الترقيعات والإصدارات الجديدة، إلا أنها قد لا تكون الطريقة المتاحة دومًا لأسباب عديدة؛ من ذلك أن عددًا آخر من التطبيقات غير موجودة لا يتوفر ضمن مستودعات، كما أنك قد تحتاج إلى أنواع أخرى من البيانات (غير حزم البرمجيات) على الخادوم الخاص بك. ولهذه الحالات نحن نحتاج إلى مجموعة أخرى من الأدوات التي يمكن أن تساعدنا. سنناقش فيما يلي عددًا من الطرق متفاوتة التعقيد، لهذا الغرض. تحميل ونقل البيانات عن بُعدقد تكون الطريقة الأكثر بداهةً لتحميل البيانات إلى الخادوم الخاص بك هي تنزيل هذه البيانات إلى حاسوبك المنزلي أولًا ومن ثم إعادة رفعها إلى الموقع. وعلى الأرجح أنك استخدمت هذه الطريقة بالفعل لرفع بعض المحتوى إلى موقعك، فرغم أنها قد لا تكون الأكثر أناقة إلا أنها سهلة بالتأكيد. أي نوع من المحتوى، كالملفات والحزم، والتي ترغب بتضمينها في موقعك، يمكن تنزيلها إلى حاسوبك باستخدام متصفحات الوبِ التقليديّة. تأكد عند تحميلك تطبيق ما من حصولك على الإصدار الصحيح المطابق للتوزيعة المُثبتة على خادومك، بما في ذلك نوع الحزمة، إصدارها، ومعماريتها (في حال كان المصدر يتيح ذلك). بعد ذلك، يمكنك نقل هذه الملفات بسهولة إلى خادومك، الطريقة التي أنصح باتباعها هي الاتصال عبر sftp، والتي ستؤّمن لك اتصالًا آمنًا ويسيرًا لنقل الملفات، يمكنك قراءة درسنا عن استخدام sftp من سطر الأوامر. الطريقة الأخرى هي استخدام عميل FTP مع إمكانية sftp، والتي شرحناها في درسنا هنا عن استخدام تطبيق FileZilla مع sftp. هذه غالبًا الطرق الأكثر مرونةً لتزويد خادومك بالمحتوى، حيث تتيح لك نقل الملفات الجديدة التي أنشأتها إضافةً إلى تلك الموجودة على الوِب. تصفح الوب من خلال الطرفيّةهناك طريقة أخرى أجدها ممتعة لتزويد موقعك بالمحتوى وهي استخدام متصفح الإنترنت ضمن الخادوم. وعلى الرغم من أنه يمكنك تثبيت واجهة رسومية على الخادوم الخاص بك ومن ثم استخدام أحد المتصفحات التقليدية إلا أنني أعتبر ذلك نوعًا من المبالغة المُسرفة غير الضرورية، طالما هناك بديل آخر، ألا وهو استخدام المتصفحات المُخصّصة للاستعمال ضمن الطرفيّة نفسها والتي تسمح لك بزيارة المواقع واستعراض محتواها النصيّ. لنستعرض الآن بعضًا من الخيارات المتوفرة لمتصفحات الوِب من خلال الطرفية. lynxيعتبر lynx أقدم متصفح وِب لا يزال تطويره واستخدامها نشطًا، كما أنه سهل الاستخدام، بشكل أساسي يتمّ التصفح باستخدام السهمين العلوي والسفلي للتنقل بين روابط الصفحة، وللضغط على رابط ما يتم تحديده بدايةً ثم الضغط على مفتاح الإدخال Enter أو السهم اليمني. قد لا يكون lynx متاحًا بشكل افتراضي على نظام التشغيل لديك، إلا أنه يمكنك تثبيته بسهولة من مدير الحزم: sudo apt-get update sudo apt-get install lynx يدعم متصفح lynx كلًا من ملفات تعريف الارتباط cookie والعلامات المرجعيّة bookmarks، كما يمكنه تلوين خرجه فيما لو دعمت الطرفية التي تستخدمها ذلك، وفي العموم يمكنك استخدامه لزيارة أي نوع من المواقع باستثناء تلك التي تعتمد على إضافات خارجية (كجافاسكربت أو فلاش) لتوفير وظائفها. هنا على سبيل المثال استعرضنا موقع أكاديمية حسوب باستخدام المتصفح lynx ضمن طرفية mlterm: linksيقدّم links أداةً أخرى رائعة لتصفح الوِب من خلال الطرفيّة، ويتميز عن سابقه بأنه يحتوي على شريط قوائم علوي مماثلًا للمتصفحات التقليديّة (يمكن تفعيل شريط القوائم بالضغط على زر ESC). لتثبيت links في حال لم يكن مُثبتا بالفعل؛ استخدم مدير الحزم كالعادة: sudo apt-get update sudo apt-get install links وفي حين أنه لا يدعم تلوين النصّ بشكل افتراضي، مما قد يجعل من الصعب إلى حدٍ ما التمييز بين النصوص الصرفة وعناوين الروابط، إلا أنه يستفيد من ميزات مكتبة ncurses البرمجيّة لتقديم واجهة مرتبة بشكل جيّد، حيث أن استعراض موقع رسومي من خلال متصفحٍ نصيّ سيسبب دومًا مشاكل في التنسيق، links يتولى المهمة على نحوٍ جيّد. ميزة أخرى مهمة قد تجعلك تُقرّر استخدام links وهو دعمه لاستخدام الفأرة، وهذا يعني إمكانية الدخول إلى الروابط واستعراضها عن طريق النقر على عناوينها باستخدام المؤشّر كما لو كنت تتعامل مع متصفحك التقليدي. elinksفي عام 2001 اشتق elinks من متصفح links وأضيفت إليه ميزة دعم الامتدادات extended مع الاستفادة من قوّة وآليات عمل البرنامج الأب. للحصول على elinks في Ubuntu عن طريق مدير الحزم apt نكتب: sudo apt-get update sudo apt-get install elinks يتفوقelinks على links بعددٍ من الميزات، كقدرته على التعامل مع كلمات المرور وإدارة النماذج forms، تعدّد الألسنة، ودعم الجافاسكربت جزئيًا، بالإضافة إلى دعم بروتوكولي التورنت وIPv6، ورغم أن هذه الميزات قد تأتي على حساب السرعة، إلا أنه فرق بسيط للغاية. w3mw3m متصفحٌ نصيٌّ آخر يمكن اعتباره الأسهل في الاستخدام وبشكلٍ مشابه للتعامل مع المتصفح الرسومي، كما يأتي مع العديد من الميزات الأخرى، فعلى سبيل المثال تسمح لك معظم المتصفحات النصيّة بالتنقل بين الروابط، لكن التنقل خلال الصفحة نفسها قد لا يكون متاحًا بسهولة، w3m يسهّل هذه العملية عن طريق استخدام TABs للتنقل بين الروابط واستخدام مفاتيح الأسهم لتحريك المؤشر بشكل مستقل لتمرير الصفحة. عادةً ما يأتي w3m مُثبت بشكل افتراضي مع العديد من الأنظمة، أما إذا لم يكن مضمنًا في خادومك فيمكنك إضافته عن طريق تنفيذ: sudo apt-get update sudo apt-get install w3m إحدى المزايا التي قد تهم البعض هي إمكانية استخدام الأوامر المستعملة في برنامج vi، على سبيل المثال يمكن تحريك مؤشر الفأرة بواسطة الأزرار ‘j’, ‘k’, ‘l’, و ‘h’. أدوات التنزيلسيكون من المفيد أحيانًا أن تكون قادرًا على تصفح الإنترنت من الخادوم نفسه باستخدام الأدوات السابقة، إلا أنك ستجد نفسك في نهاية المطاف ترغب بالعودة إلى حاسبك الخاص للتصفح من خلال متصفحات الوِب الرسوميّة باعتبار ذلك أمرًا أكثر كفاءة، كما ستشعر بالثقة بأنّ ما تشاهده هو تمامًا ما يُفترض أن تحصل عليه. لهذه الأسباب يلجأ معظم الناس إلى تصفح الوِب من خلال المستعرضات التقليدية ومن ثم نسخ ولصق الروابط إلى الطرفية لاستخدامها مع أحد أدوات التنزيل. wgetتُعتبر الأداة wget خيارًا ممتازًا للحصول على الصفحات أو الملفات من المواقع. إذا لم تكن تملك wget مسبقًا على خادومك، يمكنك الحصول عليها عن طريق تنفيذ: sudo apt-get update sudo apt-get install wget كلّ ما عليك فعله بعد ذلك لتنزيل الملفات من الإنترنت هو لصق عنوان الرابط URL في الطرفيّة بعد استدعاء الأداة: wget www.example.com إذا كان عنوان الرابط URL المُستخدم يُشير إلى موقع على شبكة الإنترنت فإنه سيجري تحميل الفهرس أو الصفحة الرئيسيّة له، وفي حال كان الرابط يعيد توجهيك إلى ملف فسيتم تحميل هذا الملف ضمن الدليل النشط. وهكذا فأثناء تصفحك الإنترنت من خلال جهاز الحاسوب الخاص بك في المنزل، وحالما ترغب في تحميل ملف ما من الشبكة، انقر بزر الفأرة الأيمن على الرابط ثم اختر شيئًا مشابهًا لـ "انسخ عنوان الموقع" أو "copy link location"، ثم قم بلصق العنوان في الطرفية مسبوقًا باستدعاء الأداة wget. إذا حصل وقوطعت عملية التحميل لأي سبب (مثل ضُعف الاتصال بالإنترنت)، فإنه يمكنك استخدام wget مع الخيار c- والذي يستأنف التحميل الجزئي في حال تمّ العثور على ملف غير مكتمل في الدليل النشط. wget -c www.example.com تدعم الأداة wget التعامل مع ملفات تعريف الارتباط Cookies مما يجعلها مرشحًا جيدًا للنصوص التنفيذية scripting إضافةً إلى قدرتها على تحميل موقع وِب بالكامل. curlتُعتبر الأداة curl خيارًا جيدًا كذلك لهذا النوع من العمليات، ففي حين تعمل wget بواسطة جلب الملفات، فإن curl تستخدم الخرج القياسي مما يجعلها أداة مثالية للاستخدام مع السكربتات والأنابيب scripts and pipes، بالإضافة إلى دعمها عددًا كبيرا من البروتوكولات، وتمكّنها من التعامل مع أساليب توثيق http بشكل أكفأ من wget. تأتي العديد من أنظمة التشغيل مجهزة مع curl بشكل افتراضي، إذا لم يكن نظام تشغيلك كذلك: sudo apt-get update sudo apt-get install curl وبينما تستخدم curl الأنابيب عادةً، إلا أنه يمكنك أيضًا حفظ خرجها بسهولة إلى ملف، وهذا ما تريده غالبًا إذا كنت ترغب بتحميل ملفات لرفعها إلى خادومك. لتنزيل ملف وحفظه بالإبقاء على اسمه الافتراضي نفّذ: curl -O www.example.com/index.html يتوجب علينا تحديد الملف لأن هذه هي الطريقة التي نُعلم بها curl بالاسم المحليّ للملف. أما إذا كنت تريد أن تختار اسم للملف المحلي، فنحن لسنا بحاجة للإشارة إلى ملف معيّن في عنوان الموقع إذا كان ما نريده هو فهرس دليل الموقع، بدلًا من ذلك يمكننا أن نشير اختياريًا إلى الموقع وأيا يكن ملف الفهرس فإنه سيُهيئ ليوضع في الملف الذي اخترناه: curl -o file.html www.example.com لا تقتصر فائدة هذه الطريقة على تنزيل فهارس الأدلة وإنما تعمل بشكل جيّد أيضًا لتنزيل ملف بالاسم الذي تختاره. الخاتمةكما ترى فإنه لدينا عدد غير قليل من الخيارات المختلفة للحصول على الملفات، التطبيقات، والمواد المختلفة من الإنترنت لتمريرها إلى الخادوم الخاص بك. وفي حين أن كلا منها لديه القدرة على جلب المحتوى من شبكة الإنترنت فلا يوجد أداة واحدة من بينها مناسبة لجميع أنواع التحميلات؛ لذا فمن المفيد أن نتعرف على الأدوات المتاحة أمامنا لنكون قادرين على الاستفادة من نقاط القوّة في كلّ منها والتي صُممت أساسًا من أجلها، وهذا ما سوف يساعدك على تجنب القيام بأعمال لا لزوم لها، ويعطيك المرونة في الطريقة التي تقارب بها مشاكلك. تُرجم وبتصرف من مقال How To Download Software and Content onto your Linux VPS لكاتبه Justin Ellingwood. ncurses: هي مكتبة برمجيّة تُزوّد التطبيقات بواجهة برمجيّة لتسهّل على المطورين كتابة واجهات نصيّة لبرامجهم تعمل ضمن الطرفية بطريقة أقرب للبرامج الرسوميّة. Pipes: الأنبوب، هي أداة يمكن أن تُشغّل عدّة أوامر في لينكس بشكل متعاقب بحيث تفصل بين كل أمرين؛ مُرسلةً خرج العملية السابقة ليكون دخل العملية اللاحقة.