أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

أدوات المستخدم

أدوات الموقع


docs:using_rpm_lecture

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقةالمراجعة السابقة
docs:using_rpm_lecture [2010/03/15 20:32] alsadidocs:using_rpm_lecture [2015/04/23 03:20] (حالي) – تحرير خارجي 127.0.0.1
سطر 1: سطر 1:
 +{{tag>مقالات محاضرة استخدام متقدم rpm linuxac}}
 +====== محاضرة عن استخدام rpm ======
  
 +هذا تسجيل لجلسة تمت على قناة linuxac على IRC
 +
 +  * http://www.linuxac.org/forum/showthread.php?36846
 +  * http://www.linuxac.org/forum/showthread.php?36483
 +
 +===== التحضيرات =====
 +
 +  * بهاء: مرحبا بكم في الجلسات التعليمية لقناة مجتمع لينكس العربي
 +  * بهاء: الجلسة الأولى
 +  * بهاء: -------------
 +  * بهاء: الهدف : نظام الحزم فى انظمة ريدهات ,التعريف , الاستخدام ونظرة علي كيفية عمل حزمة
 +  * بهاء: المدة : 60 دقيقة
 +  * بهاء: التوقيت : 19:00 GMT , بتوقيت جرينتش السابعة مساءا
 +  * بهاء: المحاضر : الأستاذ مؤيد السعدي (فريق اعجوبة لينكس )
 +  * بهاء: لمزيد من المعلومات 
 +  * بهاء: http://www.linuxac.org/forum/showthread.php?36483
 +  * بهاء: سنبدأ إن شاء الله بعد أقل من عشر دقائق
 +  * بهاء: لأي ملاحظات أو شكاوي بالرجاء مراسلة أحد المديرين 
 +  * بهاء: المديرين من لديهم دائرة خضراء 
 +  * بهاء: أو علامة @
 +  * بهاء: اي أسلئة عن كيفية تنزيل الحزمة أو اي شئ أخر بالرجاء السؤال بالقناة التعليمية ##linuxac-social 
 +  * بهاء: سنبدأ الجلسة بعد قليل
 +  * بهاء: بالرجاء من جميع من سيحضر الجلسة الدخول للقناة الإجتماعية
 +  * بهاء:  /j ##linuxac-social 
 +
 +
 +  * السعدي: يا شباب الاجتماعية شبه فارغة
 +  * السعدي: فضلا ادخلوا #linuxac-social
 +  * السعدي: من أجل مشاهدة الأسئلة
 +
 +===== بدء المحاضرة =====
 +
 +  * السعدي: بسم الله نبدأ
 +  * السعدي: السلام عليكم ورحمة الله
 +  * السعدي: أولا أرحب بكم
 +  * السعدي: ثم أذكركم بموضوعنا وهو استعمال حزم وأدوات rpm
 +  * السعدي: ثم في الجزء الثاني صنعها
 +  * السعدي: في البداية أحب أن نمر بسرعة على نظام الحزم rpm ونلقي بعض الضوء على تطوره والبيئة التي ظهر فيها
 +  * السعدي: حزم rpm والتي كانت اختصارا ل redhat package manager
 +  * السعدي: هي نظام حزم لتسهيل تثبيت البرامج وإدارتها
 +  * السعدي: وكما هو واضح هي بدأت من تطوير شركة ريدهات ظهرت في توزيعة redhat linux
 +  * السعدي: التي انقسمت لاحقا إلى RHEL و Fedora
 +  * السعدي: بسبب المزايا المتقدم في هذا النظام والمرونة الكبيرة فيه تم اعتماده في الكثير من التوزيعات (لأنه حر مفتوح المصدر)
 +  * السعدي: من أشهرها ماندريفا (ماندريك حينها) وسوزة (من نوفل)
 +  * السعدي: ومنها أيضا التوزيعة الكورية هانكوم وغير ذلك الكثير
 +  * السعدي: كذلك تم اعتماد هذا النظام من قبل معايير مؤسسة لينكس
 +  * السعدي: في LSB
 +  * السعدي: حيث يجب على التوزيعة الموافقة للمعايير التعامل مع rpm (ولو عبر وسيط مثل alian كما في ديبيان)
 +  * السعدي: المعايير لا تفرض على التوزيعة أن يكون rpm هو نظام الحزم الأساسي
 +  * السعدي: لكنها تفرض إمكانية التعامل مع حزم rpm ولو عبر وسيط
 +  * السعدي: حاليا يتم تطوير rpm خارج ريدهات من خلال rpm.org
 +  * السعدي: http://rpm.org/
 +  * السعدي: وطبعا هذا المجتمع يدخل في عضويته نوفل وماندريفا وغيرهم
 +  * السعدي: الشعار في الموقع هو علامة تجارية لشركة ريدهات
 +  * السعدي: لكنها لم تعد تطور rpm وحدها
 +  * السعدي: حيث أصبح اسمها يعني
 +  * السعدي: rpm package manager
 +  * السعدي: وليس redhat package manager
 +  * السعدي: ومن الطرائف أن مطور rpm الأصلي طرد من ريدهات
 +  * السعدي: حيث أنه تعامل مع أحد العثرات بطريقة فيها إهانة للسائل حيث بلغ أحدهم عن وجود عثرة في rpm
 +  * السعدي: تؤدي إلى تحطم قاعدة بيانات rpm
 +  * السعدي: مما يجعل النظام عديم الفائدة. كان طلب المبلغ عن العثرة هو أن يكون نظام rpm مضاد للملفات المعطوبة وما إلا ذلك
 +  * السعدي: إلا أن ذاك الشخص أهانه وقال له هذا ليس المكان المناسب لتعلم إصلاح قاعدة بيانات rpm
 +  * السعدي: ابحث في غوغل وانتهى الأمر
 +  * السعدي: بعد أن تم طرد ذلك الشخص من ريدهات
 +  * السعدي: أسس منظمة أسماها rpm5
 +  * السعدي: ويزعم أنها هي المنبع ل rpm الجديدة
 +  * السعدي: أو الجيل الجديد من rpm
 +  * السعدي: بحجة أنه المطور الأصلي لها
 +  * السعدي: إلا أن دعواه لم تلق قبولا لدى أي توزيعة مرموقة
 +  * السعدي: ولا زال الغالب يعتمدون على rpm.org وليس على rpm5
 +  * السعدي: ولا تزال التطويرات تدفع في rpm.org بعيدا عن هذا المدعي
 +  * السعدي: ولم يقبل منه إلا أداة شاذة غريبة تستخدم في بناء حزم rpm في كل من open-office.org و go-oo.org
 +  * السعدي: وتوزيعات مغمورة لم يسمع عنها أحد
 +  * السعدي: نتحدث الآن عن معنى مدير الحزم
 +  * السعدي: مدير الحزم هو فكرة قد تصدم الداخلين الجدد على لينكس حيث لا يوجد مقابل حقيقي لها في ويندوز
 +  * السعدي: وهي أن هناك مكان مركزي في النظام
 +  * السعدي: تقع مسؤولية إدارة الملفات فيه على النظام وليس على الشخص
 +  * السعدي: الحزمة عبارة عن مجموعة من الملفات
 +  * السعدي: مثل الملفات التنفيذية وملفات الإعدادات
 +  * السعدي: وملفات الوثائق وغيرها
 +  * السعدي: كذلك الحزمة تحتوي على المعلومات اللازمة لعمل الحزمة
 +  * السعدي: مثلا نقول أن الحزمة الفلانية تتطلب مكتبة Qt والحزمة العلانية تتطلب java الإصدار كذا وكذا
 +  * السعدي: وهكذا
 +  * السعدي: كذلك الحزم تكون مضغوطة وقد تكون ممهورة بالتوقيع الإكتروني أو فحص سلامة الملفات
 +  * السعدي: من أول وأبسط وأسذج نظم الحزم كانت حزم tgz في سلاكويير slackware
 +  * السعدي: فهي مجرد ملف مضغوط فيه سكربت للتنفيذ عند التثبيت
 +  * السعدي: ظهر بعده نظام الحزم deb
 +  * السعدي: الذي كان قفزة نوعية
 +  * السعدي: وبعده بقليل ظهر نظام rpm الذي كان نظام الحزم الحقيقي
 +  * السعدي: وحيث أن موضوعنا ليس في هجاء deb سنقفز إلى مزايا rpm
 +  * السعدي: من مزايا rpm إمكانية التوقيع الإلكتروني
 +  * السعدي: كذلك إمكانية عمل فحص لسلامة الملفات (أولا كان md5sum ثم تم تغييره إلى فحوصات أقوى حيث أن rpm مرن في هذا الجانب)
 +  * السعدي: كذلك من مزايا rpm أن الحمل فيها يمكن أن يكون مضغوطا بأي هيئة
 +  * السعدي: payload compression
 +  * السعدي: وليس بالضرورة أن يكون محصورا في gzip أو bz2
 +  * السعدي: حيث في الإصدارات الأخيرة من suse يستخدمون lzma وتستخدم فيدورا ضغط xz
 +  * السعدي: نأتي الآن على استخدام أداة rpm
 +  * السعدي: أول استخدام سنتعلمه هو لعمل query
 +  * السعدي: على قاعدة بيانات rpm
 +  * السعدي: حيث أن rpm تحتفظ بالكثير من المعلومات في قاعدة بياناتها
 +  * السعدي: الخيار المستخدم لذلك هو
 +  * السعدي: rpm --query
 +  * السعدي: أو
 +  * السعدي: rpm -q
 +  * السعدي: ثم نكتب المعاملات تباعا بحب الاستعلام الذي نريده
 +  * السعدي: مثلا يمكننا عرض معلومات عن حزمة عبر الأمر
 +  * السعدي: rpm -qi gedit
 +  * السعدي: هذه مخرجات الأمر عندي
 +
 +<code bash>
 +[alsadi@pc1 ~]$ rpm -qi gedit
 +Name        : gedit                        Relocations: (not relocatable)
 +Version     : 2.26.3                            Vendor: Fedora Project
 +Release     : 2.fc11                        Build Date: Mon 09 Nov 2009 09:33:48 PM EET
 +Install Date: Fri 27 Nov 2009 08:52:13 PM EET      Build Host: x86-1.fedora.phx.redhat.com
 +Group       : Applications/Editors          Source RPM: gedit-2.26.3-2.fc11.src.rpm
 +Size        : 13486240                         License: GPLv2+ and GFDL
 +Signature   : RSA/8, Tue 10 Nov 2009 09:11:25 PM EET, Key ID 1dc5c758d22e77f2
 +Packager    : Fedora Project
 +URL         : http://projects.gnome.org/gedit/
 +Summary     : Text editor for the GNOME desktop
 +Description :
 +gedit is a small, but powerful text editor designed specifically for
 +the GNOME desktop. It has most standard text editor functions and fully
 +supports international text in Unicode. Advanced features include syntax
 +highlighting and automatic indentation of source code, printing and editing
 +of multiple documents in one window.
 +
 +gedit is extensible through a plugin system, which currently includes
 +support for spell checking, comparing files, viewing CVS ChangeLogs, and
 +adjusting indentation levels. Further plugins can be found in the
 +gedit-plugins package.
 +</code>
 +
 +  * السعدي: نلاحظ أنها تحتوي اسم الحزمة
 +  * السعدي: وإصدارها
 +  * السعدي: وإطلاقها
 +  * السعدي: ونوعها Group       : Applications/Editors
 +  * السعدي: ومن أي حزمة مصدرية جاءات
 +  * السعدي: وتاريخ بناءها وتاريخ تثبيتها
 +  * السعدي: والرخصة والتوقيع الإلكتروني ...
 +  * السعدي: كذلك رابط البرنامج الأصلي
 +  * السعدي: ‏‫كذلك ملخص من سطر واحد Summary     : Text editor for the GNOME desktop
 +  * السعدي: ثم وصف طويل
 +  * السعدي: لنفترض أني أريد معلومات عن حزمة غير مثبتة
 +  * السعدي: عندها أضيف p
 +  * السعدي: rpm -qip /path/to/gedit-2.26.3-2.fc11.i586.rpm
 +  * السعدي: ما بعد p هو اسم ملف ليس بالضرورة أن يكون مثبت
 +  * السعدي: وهذا مفيد حتى مثلا أعرف موقع البرنامج قبل أن أثبته
 +  * السعدي: لو نظرنا إلى كتيب rpm لوجدنا
 +  * السعدي: rpm {-q|--query} [select-options] [query-options]
 +  * السعدي: يعني بعد q نحدد الحزم التي نريدها والمعلومات التي نريدها
 +  * السعدي: أما عن المعلومات فهي كثيرة جدا
 +
 +  * أحمد-العربي: ?
 +
 +  * السعدي: مثلا يمكنني طباعة أسماء ملفات الوثائق في حزمة معينة
 +
 +<code bash>
 +[alsadi@pc1 ~]$ rpm -qd httpd
 +/usr/share/doc/httpd-2.2.14/ABOUT_APACHE
 +/usr/share/doc/httpd-2.2.14/CHANGES
 +/usr/share/doc/httpd-2.2.14/LICENSE
 +/usr/share/doc/httpd-2.2.14/NOTICE
 +/usr/share/doc/httpd-2.2.14/README
 +/usr/share/doc/httpd-2.2.14/VERSIONING
 +/usr/share/man/man8/apachectl.8.gz
 +/usr/share/man/man8/htcacheclean.8.gz
 +/usr/share/man/man8/httpd.8.gz
 +/usr/share/man/man8/rotatelogs.8.gz
 +/usr/share/man/man8/suexec.8.gz
 +</code>
 +
 +  * السعدي: بهذا الأمر طبعت كل ملفات الوثائق امرتبطة بحزمة أباتشي
 +  * السعدي: أحمد-العربي: تفضل اسأل
 +
 +  * أحمد-العربي: لدي حزمة مركبة
 +  * أحمد-العربي: php-common
 +  * أحمد-العربي: هل يمكنني معرفه مكان ملفات الظبط فقط
 +
 +  * السعدي: نعم سأذكر ذلك
 +  * السعدي: نتابع الآن
 +  * السعدي: قلنا أن -qd تطبع أماكن ملفات الوثائق
 +  * السعدي: rpm -qd httpd
 +  * السعدي: أما ملفات الإعدادات والضبط كما سأل أخونا
 +  * السعدي: فتكون بالأمر rpm -qc
 +  * السعدي: rpm -qc httpd
 +  * السعدي: ولو طبقنا ذلك عن الحزمة التي سألت عنها
 +
 +<code bash>
 +[alsadi@pc1 ~]$ rpm -qc php-common
 +/etc/php.d/curl.ini
 +/etc/php.d/dbase.ini
 +/etc/php.d/json.ini
 +/etc/php.d/zip.ini
 +/etc/php.ini
 +</code>
 +
 +  * السعدي: أحمد-العربي: هل هذا يجيب سؤالك ؟
 +
 +  * أحمد-العربي: نعم
 +
 +  * السعدي: طيب نتابع
 +  * السعدي: لمعرفة من أي حزمة جاء ملف ما نستخدم rpm -qf ثم اسم الملف
 +
 +<code bash>
 +rpm -qf /etc/issue
 +ojuba-release-11-6.oj3.noarch
 +</code>
 +
 +  * السعدي: لعرض كل الملفات التابعة لحزمة ما نستعمل rpm -ql
 +  * السعدي: مثلا
 +
 +<code bash>
 +rpm -ql php-common | less
 +</code>
 +
 +  * السعدي: إن كانت الحزمة غير مثبتة نستعمل p كما ذكرنا سابقا
 +
 +<code bash>
 +rpm -qlp /path/to/gedit-2.26.3-2.fc11.i586.rpm
 +</code>
 +
 +  * السعدي: q يعني query
 +  * السعدي: l يعني list files
 +  * السعدي: p تعني package file
 +  * السعدي: وليس حزمة مثبتة
 +  * السعدي: ليس بالضرورة أن تكون كل الملفات الظاهرة في l جاءت من الحزمة
 +  * السعدي: بل هناك خيار اسمه ghost
 +  * السعدي: يسمح لحزمة أن تملك ملفات يتولد من خارجها
 +  * السعدي: يمكن عرض أسماء كل الحزم المثبتة من خلال -a أو --all
 +  * السعدي: مثلا
 +  * السعدي: rpm -qa
 +  * السعدي: تطبع أسماء كل الحزم المثبتة
 +
 +  * meGenius: !
 +
 +  * السعدي: تفضل
 +
 +  * السعدي: meGenius: تفضل
 +  * meGenius: فصل أكثر عن ghost
 +
 +  * السعدي: مثلا ملفات initrd في النواة
 +  * السعدي: تتولد من وضع وحدات modules يتم توليدها من خلال السكربت mkinitrd
 +  * السعدي: بحسب التعريفات المستخدمة
 +  * السعدي: ولا تكون موجودة داخل حزمة النواة
 +  * السعدي: لكنها تكون مملوكة لحزمة النواة
 +
 +  * meGenius: !
 +
 +  * السعدي: تفضل
 +
 +  * meGenius: و هل يجب أن يكون mkinitrd ضمن الحزمة؟؟
 +  * meGenius: أم فقط dependency؟؟
 +
 +  * السعدي: هي اعتمادية
 +  * السعدي: مثال آخر يوضح الأمور
 +  * السعدي: تخيل حزمة تولد تقارير تتولد من خلال cron jobs
 +  * السعدي: أو تولد ملفات من خلال initscripts
 +  * السعدي: أو عند أول استعمال
 +  * السعدي: اظن أن من أمثلة ذلك ملف
 +  * السعدي: /usr/sbin/.sshd.hmac
 +  * السعدي: في حزمة openssh-server
 +  * السعدي: meGenius: هل الفكرة واضحة ؟
 +
 +  * meGenius: alsadi: نعم وصلت الفكرة
 +
 +  * إيهاب: ?
 +
 +  * السعدي: إيهاب: تفضل
 +
 +  * إيهاب: كيف يمكن أن نستخدم الخيار ghost
 +
 +  * السعدي: نحن لا نستعمله. بل من يقوم بعمل الحزمة هو من يحدد الملفات التي تنتمي للحزمة
 +  * السعدي: سواء كانت فيها أو لم تكن
 +  * السعدي: هل نتابع ؟
 +
 +  * إيهاب: y
 +
 +  * السعدي: حسنا
 +  * السعدي: كنت نتحدث عن الخيار --all أو -a
 +  * السعدي: مثلا rpm -qa
 +  * السعدي: تطبع أسماء كل الحزم الموجودة في النظام
 +  * السعدي: يكن يمكننا تقييد ذلك دون استعمال grep
 +  * السعدي: عبر تحديد نمط ما هكذا
 +  * السعدي: rpm -qa '*ssh*'
 +  * السعدي: والذي يعني هات أسماء كل الحزم التي في اسمها كلمة ssh
 +  * السعدي: وهذا يطابق openssh-server وغيره من الحزم
 +  * السعدي: الخيار --all هو من عائلة خيارات selection option
 +  * السعدي: أي تحديد عن أي الحزم نريد العمل
 +  * السعدي: أما خيارات الاستعلام نفسها فقط تكون مثل d l c التي تحدثنا عنها
 +  * السعدي: من خيارات الاستعلام طباعة changelog لحزمة
 +  * السعدي: مثلا
 +  * السعدي: rpm -q --changelog gedit
 +  * السعدي: يمكن تطبيقها على حزمة غير مثبتة أيضا عبر p
 +  * أحمد-العربي: !
 +  * السعدي: تفضل
 +  * أحمد-العربي: هل يمكن استخدام p علي حزمة موجوده علي الانترنت ؟
 +  * السعدي: أظن ذلك حيث أن rpm قادرة على تنزيل الملفات
 +  * السعدي: لكني لم أجرب ذلك
 +  * أحمد-العربي: شكرا
 +  * السعدي: ويجر بنا الإشارة إلى أن هذا السجل للتغيّرات ليس من ملف changelog
 +  * السعدي: لكنه خاص بالحزمة
 +  * السعدي: وغالبا ما يحتوي على معلومات خاصة بالتغييرات على التحزيم
 +  * السعدي: من الاستعلامات الاخرى -R أو --requires
 +  * السعدي: وهي تعطينا الاعتماديات
 +  * السعدي: مثلا
 +  * السعدي: rpm -q -R kernel
 +
 +<code bash>
 +[alsadi@pc1 ~]$ rpm -qR kernel
 +rpmlib(VersionedDependencies) <= 3.0.3-1
 +fileutils  
 +module-init-tools  
 +initscripts >= 8.11.1-1
 +mkinitrd >= 6.0.61-1
 +kernel-firmware >= 2.6.30.10-105.2.16.fc11
 +/sbin/new-kernel-pkg  
 +/bin/sh  
 +/bin/sh  
 +/bin/sh  
 +rpmlib(FileDigests) <= 4.6.0-1
 +rpmlib(PayloadFilesHavePrefix) <= 4.0-1
 +rpmlib(CompressedFileNames) <= 3.0.4-1
 +rpmlib(VersionedDependencies) <= 3.0.3-1
 +fileutils  
 +module-init-tools  
 +initscripts >= 8.11.1-1
 +mkinitrd >= 6.0.61-1
 +kernel-firmware >= 2.6.30.10-105.2.23.fc11
 +/sbin/new-kernel-pkg  
 +/bin/sh  
 +/bin/sh  
 +/bin/sh  
 +rpmlib(FileDigests) <= 4.6.0-1
 +rpmlib(PayloadFilesHavePrefix) <= 4.0-1
 +rpmlib(CompressedFileNames) <= 3.0.4-1
 +</code>
 +
 +  * السعدي: حيث تخبرني على ماذا تعتمد النواة
 +  * السعدي: سنجد في المخرجات مثلا
 +<code>
 +initscripts >= 8.11.1-1
 +mkinitrd >= 6.0.61-1
 +</code>
 +
 +  * السعدي: وهذا يجيب على سؤال سابق
 +  * السعدي: هذا يعني أن حزمة النواة تعتمد على حزمة initscripts بشرط أن يكون الإصدار أكبر من الرقم المحدد
 +  * السعدي: كذلك نجد في المخرجات
 +  * السعدي: /bin/sh
 +  * السعدي: أي أن حزمة النواة تعتمد على الملف المذكور
 +  * السعدي: وهذا فرق بين حزم rpm و deb
 +  * السعدي: حيث في deb يتم ذكر الاعتماديات باسم الحزمة
 +  * السعدي: أما في rpm فالغالب بالملف أو المكتبة أو الميزة
 +  * السعدي: وسبب ذلك أن تسمية الحزم غالبا عشوائية وتتخبط من توزيعة لأخرى ومن شخص لآخر
 +  * السعدي: كذلك من الخيارات --provides
 +  * السعدي: حيث نستعلم به عما تقدمه الحزمة من مزايا أو من حزم مكافئة
 +  * السعدي: مثلا
 +  * السعدي: rpm -q --provides abiword
 +  * السعدي: mimehandler(application/msword)
 +  * السعدي: أي أن حزمة abiword توفر برنامج يفتح ملفات msword
 +  * السعدي: ولو جربنا
 +  * السعدي: rpm -q --provides fedora-release
 +  * السعدي: أو
 +  * السعدي: rpm -q --provides ojuba-release
 +  * السعدي: لوجدنا سطر
 +  * السعدي: system-release = 11-1
 +  * السعدي: وهذه ميزة
 +  * السعدي: يعني يمكن لحزمة أن توفر بديل لحزمة أخرى أو ميزة وهمية
 +  * السعدي: ربما ما بقي من query options في الكتيب لا يعني المستخدم النهائي
 +  * السعدي: مثل عرض السكربتات و المصائد triggers  و تخصيص المخرجات
 +
 +<code bash>
 +rpm --qf 'version of %{Name} is %{Version}\n' -q gedit
 +rpm --qf 'size of %{Name} is %{size}\n' -q gedit
 +</code>
 +
 +  * السعدي: وحيث أننا عرجنا عن البحث عن المزايا يمكن البحث في مزايا حزم غير موجودة عندك من خلال yum
 +  * السعدي: بطريقة مشابهة
 +  * السعدي: من خلال --whatprovides
 +  * السعدي: في اداة rpm يمكن التحكم بخيارات عامة مثل v  أو verbose
 +  * السعدي: فكلما وضعنا v زادت ثرثرة الأداة
 +  * السعدي: rpm -qvl gedit
 +  * السعدي: تطبع معلومات تفصيلية عن الملفات مثل تاريخ التعديل والصلاحيات
 +  * السعدي: يمكن تكرار v أكثر من مرة
 +  * السعدي: نأتي الآن إلى التحقق من سلامة الحزم
 +  * السعدي: يمكننا استعمال
 +  * السعدي: rpm -V
 +  * السعدي: ثم نحدد الحزم المراد فحصها تماما كما كنا نفعل مع rpm -q
 +  * السعدي: مثلا
 +  * السعدي: rpm -V gedit
 +  * السعدي: عندي لا تعطي أي نتائج هذا لأنه لم يجر أي تغيير أو عبث بملفات تلك الحزمة
 +  * السعدي: في حين
 +<code>
 +[alsadi@pc1 ~]$ rpm -V httpd
 +S.5....T.  c /etc/httpd/conf/httpd.conf
 + ..?......    /usr/sbin/suexec
 + ....L....    /var/www/html
 +</code>
 +
 +  * السعدي: تعني وجود تغييرات في الملفات المذكورة
 +  * السعدي: S تعني اختلف الحجم
 +  * السعدي: 5 تعني اختلف md5
 +  * السعدي: T تعني اختلف وقت آخر تعديل
 +  * السعدي: وهكذا للمزيد انظر
 +  * السعدي: man rpm
 +  * السعدي: كذلك هناك
 +  * السعدي: rpm --checksig
 +  * السعدي: متبوعة باسم ملف rpm
 +  * السعدي: التي تفحص التوقيع الإلكتروني
 +  * السعدي: يقي أن نقول طريقة تثبيت أو إزالة الحزم
 +  * السعدي: وهذه آخر ما نحتاج له بسبب أننا نستعمل yum
 +  * السعدي: حيث أن تثبيت الحزم مباشرة عبر rpm
 +  * السعدي: أمر لا ننصح به
 +  * السعدي: لكن نعرج عليه على عجالة
 +  * السعدي: rpm -i filename.rpm
 +  * السعدي: ويمكننا إضافة v أي verbose حتى نرى مراحل التثبيت
 +  * السعدي: أو مع h أي hash حتى نرى علامة #
 +  * السعدي: تتحرك ################
 +  * السعدي: بدلا من مشاهدة تقرير نصي "يجري عمل كذا كذا"
 +  * السعدي: فتصبح
 +  * السعدي: rpm -ivh foobar-2.1-1.noarch.rpm
 +  * السعدي: للترقية
 +  * السعدي: rpm -Uvh
 +  * السعدي: ثم اسم الملف
 +  * السعدي: يمكن إزالة حزمة ما عبر
 +  * السعدي: rpm -e
 +  * السعدي: ثم محددات لاختيار الحزمة كما في rpm -q
 +
 +  * البكري: !
 +
 +  * السعدي: البكري: تفضل
 +
 +  * البكري: لماذا تعتمد التوزيعات مديري حزم مختلفة
 +  * السعدي: البكري: اظن هذا ليس موضوعنا
 +  * البكري: اذا كانت rpm تقوم بالعمل
 +  * البكري: !
 +
 +  * السعدي: لماذا تتمسك ديبيان ب deb ليس موضوعنا
 +  * السعدي: كذلك لماذا تمسك slackware ب tgz
 +
 +  * البكري: لا اقصد التوزيعات الردهاتية
 +
 +  * lio_013: يقصد لم yum في وجود rpm
 +
 +  * البكري: مندريفا وفيدورا
 +
 +  * root3ksa: ما ذا يدل rpm -q
 +
 +  * البكري: انتهى
 +
 +  * إيهاب: !
 +
 +  * السعدي: تفضل
 +
 +  * السعدي: إيهاب: تفضل
 +  * إيهاب:  وهذه آخر ما نحتاج له بسبب أننا نستعمل yum حيث أن تثبيت الحزم مباشرة عبر rpm أمر لا ننصح به
 +  * إيهاب: لماذا؟
 +
 +  * السعدي: حتى لا نتعامل مع الاعتماديات
 +  * السعدي: حيث يقول yum
 +  * السعدي: بجلب الاعتماديات من المستودعات عبر الإنترنت
 +
 +  * السعدي: إيهاب: وصل الجواب ؟
 +  * إيهاب: نعم شكرا
 +
 +  * السعدي: ولا يعنينا شرح كيف نخبر rpm على تجاهل الاعتماديات
 +  * السعدي: أو تجاهل أشياء معينة لأن ذلك عاجلا أو آجلا سيؤدي لمشاكل كثيرة
 +  * السعدي: لكنها موجودة في الكتيب
 +  * السعدي: من بين الخيارات التي نستطيع تمريرها لخيارات التثبيت أو الإزالة هي
 +  * السعدي: --test
 +  * السعدي: التي تقوم بعمل كل شيء إلا التثبيت أو الإزالة
 +  * السعدي: كما يقال dry run
 +  * السعدي: "على الناشف"
 +
 +  * lio_013: :)
 +
 +  * السعدي: نأتي الآن على آخر موضوع وهو كيف نعمل وقوث بمفتاح التوقيع الألكتروني لجهة ما
 +  * السعدي: يكون ذلك عبر الأمر
 +  * السعدي: rpm --import
 +  * السعدي: ثم مسار ملف التوقيع الإلكتروني
 +  * السعدي: مثلا
 +
 +<code bash>
 +rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
 +</code>
 +
 +  * السعدي: الآن ننهي الجلسة إذا لم يبقى أسئلة
 +
 +  * أحمد-العربي: !
 +
 +  * السعدي: أحمد-العربي: تفضل
 +  * أحمد-العربي: كيف يفيد التوقيع
 +  * أحمد-العربي: ?
 +  * السعدي: عندما تقوم بتثبيت حزمة من مصدر ما يتم فحص التوقيع الإكتروني عليها
 +
 +  * أحمد-العربي: اذن ان كان لدي ملف التوقيع لمخزن معين
 +
 +  * السعدي: كل الحزم من المستودعات الرسمية تكون مختومة بالتوقيع الإكتروني الخاص بذاك المستودع
 +  * السعدي: مثلا التوقيع أعلاه هو توقيع فيدورا
 +
 +  * أحمد-العربي: وقمت بتثبيت حزمة فيجب ان يتاطابق التوقيع لكي اتاكد انها من ذلك المخن
 +
 +  * السعدي: كذلك في المجلد نفسه تجد التوقيع الإلكتروني لأعجوبة و rpmfusion
 +  * السعدي: وغيرها
 +  * السعدي: هذا توقيع يستعمل gpg
 +  * السعدي: لفحص سلامة الحزمة
 +  * السعدي: إذا تغيير أي شيء في الحزمة فإن التوقيع عليها لن يتطابق
 +
 +  * meGenius: !
 +
 +  * السعدي: مثلا لنفرض أنك أحضرت توزيعة من مستودع أجوبة ونقرت عليها نقرا مزدوجا فإنها لن تتثبت في فيدورا
 +  * السعدي: لأن التوقيع الخاص بنا غير موثوق به بعد
 +  * السعدي: لكن إن قمت باستيراد المفتاح العام الخاص بنا بالأمر السابق
 +  * السعدي: فستعتبر الحزم الممهورة بتوقيعنا موثوقة ويسمح بتثبيتها
 +
 +  * السعدي: أحمد-العربي: هل أصبحت الفكرة واصحة ؟
 +
 +  * lio_013: ؟
 +
 +  * أحمد-العربي: alsadi: تعم , شكرا
 +
 +  * السعدي: meGenius: تفضل
 +  * meGenius: ماذا تقصد بـ"إذا تغير أي شيء في الحزمة"؟؟
 +
 +  * السعدي: لنفرض أن شخصا ما قام بعمل حزمة openssh-server معدلة
 +  * السعدي: برقعة تؤدي إلى إضافة ثغرة
 +  * السعدي: الحزمة التي قام ببنائها تحتوي فحص md5 سليم
 +  * السعدي: لأنه عند بناء الحزمة يتم عمل ذلك
 +  * السعدي: (يتلف فحص md5 من خلال العبث بعد بناء الحزمة أو عدم اكتمال التنزيل)
 +  * السعدي: أما بناء حزمة من مصدرها فلا يمكن كشف التزوير فيها عبر md5
 +  * السعدي: لذا يجب أن يمتلك من يبني الحزمة مفتاحا عاما ومفتاحا سريا
 +  * السعدي: يقوم بوسم الحزمة بالمفتاح السري الخاص به
 +  * السعدي: كي تدل عليه
 +  * السعدي: وكل من يملك المفتاح العام الخاص به يمكنه التحقق من مصدرها أنها منه
 +  * السعدي: في مثالنا بما أن هذا الشخص لا يملك المفتاح السري الخاص بفيدورا
 +  * السعدي: فإن حزمته المشبوهة لن تطابق أي فحص للتواقيع الإلكترونية الموثوقة
 +  * السعدي: فإن قام بعمل توقيع خاص به
 +  * السعدي: يجب أن يقنع الضحية بالوثوق بتوقيعه الإلكتروني عبر
 +  * السعدي: rpm --import
 +  * السعدي: وإلا فإن yum سيرفط تثبيتها
 +  * السعدي: كذلك rpm يخبرك أنها غير موثوقة
 +  * السعدي: meGenius: هل أجبت عن السؤال ؟
 +  * meGenius: نعم، جزاك الله خيراً
 +
 +  * إيهاب: ؟
 +
 +  * السعدي: lio_013: تفضل
 +  * lio_013: اذن هل يتم استيراد مفتاح مستودع اعجوبة  اوتوماتيكيا عند اضافته  الي فيدورا ؟؟
 +  * السعدي: نعم
 +  * السعدي: ذلك جزء من السكربت فيه
 +
 +  * lio_013: تمام
 +
 +  * السعدي: حيث أن حزم كذا كذا -release
 +  * السعدي: هدفها إضافة إعدادات الوصول للمستودع والوثوق به
 +
 +  * السعدي: إيهاب: تفضل
 +  * إيهاب: فى حالة استخدام برامج أعجوبة على فيدورا وفى عدم وجود إنتر نت قام أحد الأصدقاء بنقل توقيع أعجوبة فكيف أتأكد أن هذا التوقيع سليم؟
 +
 +  * السعدي: عملية التوقيع اللإلكتروني عملية يستحيل كسرها
 +  * السعدي: لكن ضعفها هو في نقطة تبدال المفاتيح
 +  * السعدي: يعني يجب أن تحصل على المفتاح العام من مصدر موثوق
 +  * السعدي: طبعا موقع أعجوبة ينشر المفتاح العام
 +  * السعدي: كذلك حزمة ojuba-release تحتوي المفتاح العام
 +  * السعدي: ...إلخ
 +
 +  * السعدي: إيهاب: هل أجبت عن السؤال ؟
 +  * إيهاب: يعنى أنه ليس هناك طريقة لفحص التوقيع؟
 +
 +  * السعدي: حتى تفحص التوقيع على الحزمة أنت بحاجة للمفتاح العام
 +  * السعدي: لكن كيف تفحص المفتاح العام ؟
 +  * السعدي: في النهاية أنت تريد شيء تثق في مصدره تقارن الأشياء به
 +  * السعدي: في حالة rpm
 +  * السعدي: يجب أن تحصل على المفتاح من مصدر موثوق
 +  * السعدي: عندها يمكن التحقق من كل الحزم
 +
 +  * إيهاب: إذن لا يجب أن أثق فى أيا كان لآخذ منه توقيع معين إلا الموقع الرسمى نفسه
 +  * إيهاب: شكرا
 +
 +  * السعدي: نعم
 +  * السعدي: أما الحزم فيمكن مطابقة التوقيع عليها
 +  * السعدي: ولهذا تستخدم التوزيعات mirrors
 +  * السعدي: حيث لا يمكن للتوزيعة التحكم في ال mirrors وضمانها
 +  * السعدي: لكن إن قامت بأي شيء سيكتشف من فساد التوقيع
 +  * السعدي: ملاحظة في ما تم لصقه على ال #linux-social
 +<code bash>
 +rpm -qip ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/dists/3.0/PLD/i486/RPMS/gedit2-2.26.2-1.i486.rpm
 +warning: ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/dists/3.0/PLD/i486/RPMS/gedit2-2.26.2-1.i486.rpm: Header V4 DSA/SHA1 Signature, key ID e4f1bc2d: NOKEY
 +</code>
 +
 +  * السعدي: هذا يعني أن الحزمة المشار إليها لا تحمل توقيع موثوق
 +  * السعدي: لاحظ كلمة NOKEY
 +  * lio_013: هذا لان المفتاح العام لها غير موجود في نظام rpm علي جهازي ........اليس كذلك
 +
 +  * السعدي: إيهاب: هل أجبت سؤالك ؟
 +
 +  * السعدي: lio_013: كلامك صحيح
 +
 +  * إيهاب: نعم مشكور
 +
 +  * السعدي: وآخر دعوانا أن الحمد لله رب العالمين

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki