إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Packages Adminstration

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Packages Adminstration

    الموضوع ده مكمل للموضوع الموجود على الرابط

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

    ادارة ال packages تعتبر من اهم مهام اي ادمين ولذلك .. سأضع في ردي هذا بعض من خلاصة خبرتي في ادارة البرامج على لينوكس .. وربما لن تجد اي موضوع او موقع على الانترنت يضم جميع ما سأذكره هنا
    للمبتدئين والمحترفين سواء .. ركزوا كويس

    اولا بالنسبة الى rpm سأضيف بعض الاوبشنز اضافة الى الاساسيات المذكورة بالاعلى
    هنطبق الاوامر على الباكيج httpd على سبيل المثال في جميع الامثلة هنا
    فلنبدء

    لعرض جميع الباكيجس في النظام


    [HTML]rpm -qa
    glibc-2.5-3
    libSM-1.0.1-3.1
    bzip2-libs-1.0.3-3
    bluez-libs-3.7-1
    elfutils-libelf-0.123-1.fc6
    perl-Digest-SHA1-2.11-1.2.1
    ....
    [/HTML]


    لعرض جميع باكجات النظام حسب تاريخ تثبيتها تنازليا
    [HTML]
    rpm -qa --last
    [/HTML]


    لعرض معلومات مفصلة عن باكيج:

    [HTML]rpm -qi httpd
    Name : httpd Relocations: (not relocatable)
    Version : 2.2.3 Vendor: Red Hat, Inc.
    Release : 5 Build Date: Mon 11 Sep 2006 04:44:50 PM EEST
    Install Date: Mon 18 Dec 2006 09:43:24 AM EET Build Host: hs20-bc1-7.build.redhat.com
    Group : System Environment/Daemons Source RPM: httpd-2.2.3-5.src.rpm
    Size : 2926852 License: Apache Software License
    Signature : DSA/SHA1, Wed 04 Oct 2006 03:52:26 AM EET, Key ID b44269d04f2a6fd2
    Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
    URL : http://httpd.apache.org/
    Summary : Apache HTTP Server
    Description :
    The Apache HTTP Server is a powerful, efficient, and extensible
    web server.
    [/HTML]

    مع ملاحظة ان جميع الامثلة هنا على باكيج httpd وهي مثبته في النظام
    اما لتطبيق الاوامر على باكيج غير مثبته استخدم الاوبشن -p كالتالي

    [HTML]rpm -qip httpd-<version>.rpm[/HTML]
    وهذا ينطبق على باقي الامثلة



    لعرض جميع الملفات التي تنتمي لباكيج معينة:
    [HTML]rpm -ql httpd
    /etc/httpd
    /etc/httpd/conf
    /etc/httpd/conf.d
    /etc/httpd/conf.d/README
    /etc/httpd/conf.d/proxy_ajp.conf
    /etc/httpd/conf.d/welcome.conf
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf/magic
    ....
    [/HTML]


    لعرض الملفات او الباكجيات التي تعتمد عليها باكيج معينة:

    [HTML]rpm -qR httpd
    /etc/mime.types
    /sbin/chkconfig
    /usr/bin/find
    /usr/sbin/useradd
    /usr/share/magic.mime
    config(httpd) = 2.2.3-5
    gawk
    initscripts >= 8.36
    ....
    [/HTML]


    لعرض الباكيج التي تحوي ملف معين في النظام:

    [HTML]rpm -qf /etc/httpd/conf/magic
    httpd-2.2.3-5
    [/HTML]


    لعرض ال documentation الخاصة بباكيج معينة:

    [HTML]rpm -qd httpd
    /usr/share/doc/httpd-2.2.3/ABOUT_APACHE
    /usr/share/doc/httpd-2.2.3/CHANGES
    /usr/share/doc/httpd-2.2.3/LICENSE
    /usr/share/doc/httpd-2.2.3/NOTICE
    /usr/share/doc/httpd-2.2.3/README
    /usr/share/man/man8/apachectl.8.gz
    /usr/share/man/man8/htcacheclean.8.gz
    /usr/share/man/man8/httpd.8.gz
    .....
    [/HTML]


    يمكنك دمج اكثر من اوبشن .. فعلى سبيل المثال الامر التالي
    [HTML]rpm -qdf /etc/httpd/conf/magic[/HTML]

    سيقوم بعرض ملفات ال documentation الخاصة بالباكيج التي تحوي الملف /etc/httpd/conf/magic



    لعرض ملفات ال configuration الخاصة بباكيج معينة:

    [HTML]rpm -qc httpd
    /etc/httpd/conf.d/proxy_ajp.conf
    /etc/httpd/conf.d/welcome.conf
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf/magic
    /etc/logrotate.d/httpd
    /etc/rc.d/init.d/httpd
    /etc/sysconfig/httpd
    ....
    [/HTML]


    للتشييك على توقيع ومعلومات gpg لباكيج:

    [HTML]rpm --checksig -v httpd-2.0.4.rpm
    httpd-2.0.4.rpm:
    Header V3 DSA signature: OK, key ID 4f2a6fd2
    Header SHA1 digest: OK (bfb3f8acb443b2ed1863d7ece6e4a84abbc2f4f5)
    MD5 digest: OK (79293952fffc19a475674b7bccc356d6)
    V3 DSA signature: OK, key ID 4f2a6fd2

    [/HTML]

    -v هنا لاضافة المزيد من المعلومات



    للتحقق من ملفات باكيج .. يعني تشييك على حجمها و md5 الخاص بها وغيرهم بحيث اذا احصل اي تغيير تقولك .. والاوبشن ده مهم جدا في الامن وينصح بمراجعة صفحة المانيول الخاصة ب rpm لمعرفة معنى مخرجاته .. مثلا:

    [HTML]rpm -V setup
    S.5....T c /etc/printcap[/HTML]

    هذه معاني المخرجات من صفحة المانيول حتى لا نطول في شرحها

    [HTML]
    c %config configuration file.
    d %doc documentation file.
    g %ghost file (i.e. the file contents are not included in the package payload).
    l %license license file.
    r %readme readme file.

    S file Size differs
    M Mode differs (includes permissions and file type)
    5 MD5 sum differs
    D Device major/minor number mismatch
    L readLink(2) path mismatch
    U User ownership differs
    G Group ownership differs
    T mTime differs

    [/HTML]



    للتحقق من صحة باكيج او ملفاتها عن طريق مقارنتها بباكيج اخرى:
    يعتبر هذا الاوبشن مفيد جدا في حالات كثيرة

    [HTML]rpm -Vp package-<version>.rpm[/HTML]
    وهنا سيتم مقارنة هذه الباكيج بمثيلتها المثبتة حاليا في النظام وعرض الفروق



    لعرض السكربت الذي يتم تنفيذه اثناء تثبيت الباكيج والاخر الذي يتم تنفيذه اثناء ازالتها:
    ايضا مفيد جدا

    [HTML]rpm -q --scripts httpd
    preinstall scriptlet (using /bin/sh):
    # Add the "apache" user
    /usr/sbin/useradd -c "Apache" -u 48 \
    -s /sbin/nologin -r -d /var/www apache 2> /dev/null || :
    postinstall scriptlet (using /bin/sh):
    # Register the httpd service
    /sbin/chkconfig --add httpd
    preuninstall scriptlet (using /bin/sh):
    if [ $1 = 0 ]; then
    /sbin/service httpd stop > /dev/null 2>&1
    /sbin/chkconfig --del httpd
    fi
    [/HTML]


    لعرض السكربت الذي يتم تنفيذه اثناء ترقية او ابديت للباكيج:

    [HTML]
    rpm -q --triggers httpd
    triggerpostun scriptlet (using /bin/sh) -- apache < 2.0, stronghold-apache < 2.0
    /sbin/chkconfig --add httpd

    # Prevent removal of index.html on upgrades from 1.3
    triggerun scriptlet (using /bin/sh) -- apache < 2.0, stronghold-apache < 2.0
    if [ -r /var/www/index.html -a ! -r /var/www/index.html.rpmold ]; then
    mv /var/www/index.html /var/www/index.html.rpmold
    [/HTML]



    اوبشنز اخرى:
    --nodeps
    وهو يستخدم لتجاهل معلومات ال dependency وتثبيت الباكيج او ازالتها

    مثلا اذا اردت ازالة باكيج httpd:

    [HTML]
    rpm -e httpd
    error: Failed dependencies:
    httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.2-6.1.i386
    httpd-mmn = 20051115 is needed by (installed) mod_python-3.2.8-3.1.i386
    httpd-mmn = 20051115 is needed by (installed) mod_ssl-2.2.3-5.i386
    httpd-mmn = 20051115 is needed by (installed) php-5.1.6-3.3.fc6.i386
    webserver is needed by (installed) webalizer-2.01_10-30.1.i386
    webserver is needed by (installed) phpMyAdmin-2.9.1.1-2.fc6.noarch
    httpd >= 2.2.0 is needed by (installed) gnome-user-share-0.10-5.i386
    httpd >= 2.0.40 is needed by (installed) mod_python-3.2.8-3.1.i386
    httpd = 0:2.2.3-5 is needed by (installed) mod_ssl-2.2.3-5.i386
    httpd = 2.2.3-5 is needed by (installed) httpd-manual-2.2.3-5.i386
    httpd is needed by (installed) system-config-httpd-1.4.1-1.fc6.noarch
    httpd is needed by (installed) squirrelmail-1.4.8-2.fc6.noarch
    [/HTML]

    ف RPM سترفض ازلتها لان هناك باكيجات اخرى تعتمد عليها
    وهنا اذا انت عارف انت بتعمل ايه ممكن تستخم --nodeps


    --force
    لارغام rpm في تثبيت باكيج معينة ..
    اذا كان هناك تعارض بين ملفات باكيج تريد تثبيتها وملفات في النظام يمكن استخدام هذا الاوبشن في الكتابة فوقها
    وبرضه لازم تكون فاهم انت بتعمل ايه علشان ميحصلش مشاكل


    --test
    تستخدم لتثبيت الباكيج وهميا فقط .. يعني تعمل كل الاعدادت ولكن لا تثبت الباكيج
    مفيده اذا اردت معرفة امكانية تثبيت باكيج معينة بدون مشاكل ولان بدون تثبيتها فعليا

    ايضا كما ذكرنا في البيداية يمكنك دمج اكثر من اوبشن مع rpm مثلا:

    [HTML]
    rpm -ivvh --test --nodeps --force httpd-2.0.4.rpm
    [/HTML]

    وهنا اضفنا v اخرى لزايدة معلومات ال output



    --rebuilddb
    تستخدم لعمل repair للداتا بيس الخاصة ب rpm وازالة الزيادات بها:

    [HTML]
    rpm -vv --rebuilddb
    D: rebuilding database /var/lib/rpm into /var/lib/rpmrebuilddb.9026
    D: creating directory /var/lib/rpmrebuilddb.9026
    D: opening old database with dbapi 3
    D: opening db environment /var/lib/rpm/Packages joinenv
    D: opening db index /var/lib/rpm/Packages rdonly mode=0x0
    D: locked db index /var/lib/rpm/Packages
    D: opening new database with dbapi 3
    D: opening db environment /var/lib/rpmrebuilddb.9026/Packages create:mpool
    ......
    ...
    .
    [/HTML]

    طبعا غالبا العملية دي بتاخد وقت



    --queryformat
    يستخدم مع الاوبشن q لتحديد شكل ال output
    مثلا:

    [HTML]
    rpm -qa --queryformat "P: %{NAME} S: %{SUMMARY} \n"
    P: glibc S: The GNU libc libraries.
    P: libSM S: X.Org X11 libSM runtime library
    P: bzip2-libs S: Libraries for applications using bzip2
    P: bluez-libs S: Bluetooth libraries
    P: elfutils-libelf S: Library to read and write ELF files.
    P: perl-Digest-SHA1 S: Digest-SHA1 Perl module
    P: mkisofs S: Creates an image of an ISO9660 filesystem.
    P: perl-IO-Socket-INET6 S: Perl Object interface for AF_INET|AF_INET6 domain sockets
    P: libmng S: Library for Multiple-image Network Graphics support
    P: zip S: A file compression and packaging utility compatible with PKZIP.
    P: mingetty S: A compact getty program for virtual consoles only.
    P: xkeyboard-config S: xkeyboard-config alternative xkb data files
    .....
    ..
    [/HTML]


    طبعا انت ممكن تشكل براحتك وممكن تستخدم اوامر اخرى
    مثلا الامر التالي يعرض جميع باكجيات النظام مرتبة حسب حجمها في النظام:

    [HTML]rpm -qa --qf "%-10{SIZE} %-30{NAME}\n" | sort -n[/HTML]



    ايضا نسيت اذكر نقطة مهمة وهي باكجات السورس
    لبناء ال source package نستخدم الامر rpmbuild .. مثلا:

    [HTML]rpmbuild --rebuild filename.src.rpm[/HTML]

    وهاتلائي ال binary package تحت /usr/src/redhat/RPMS حسب نوع البروسيسور عندك لتقوم بتثبيتها في النظام

    ملاحظة .. اذا كنت لا تملك صلاحيات الروت وعاوز تبني باكج من السورس فقط
    اي لن تقوم بتثبيتها اليك التالي:

    [HTML]
    $ cd
    $ mkdir -p redhat/{SRPMS,RPMS,SPECS,BUILD,SOURCES}
    $ echo "%_topdir /home/testuser/redhat" >> .rpmmacros
    $ echo "%packager Test User <[email protected]>" >> .rpmmacros
    [/HTML]


    وهاتلائي الباكجات المبنية في الهوم دايركتوري بتاعك تحت redhat/RPMS



    انا هكتفي بالقدر ده الناهرده لان الموضوع طول .. وانا سرحت معاه و فاكر اني هكتب كمان عن yum
    ان شاء الله لو ربنا اراد نكمل الموضوع في وقت تاني
    ارجو ان تكونو استفدتم من الموضوع
    وياريت كل من استفاد من الموضوع ينشره حتى يحقق اكبر قدر من الافادة للمستخدمين
    وايضا كل واحد بيستفيد من لينوكس عليه ان يساهم فيه
    ان لم يكن تطوير .. فعلى الاقل مساهمة في نشره او مساعدة الغير على استخدامه
    There's no place like 127.0.0.1

  • #2
    موضوع جميل و مجهود رائع منك يا ريس
    و على فكره ده يعتبر تكمله للموضوع بتاعى هنا

    و بكده نبقى حطينا موضوع متكامل بيكمل بعضه انا و انت
    و كل سنه و انت طيب

    تعليق


    • #3
      المواضيع المكمله راح يتفرغ لها عدة متطوعين ومشرفين ويدمجوها كمقالة واحده في الويكي ان شاء الله

      انا كنت هكتب عن rpm لتحديث معلوماتي وكذلك اثارة النقاش ، لكن الكل سبقني

      يعطيكم العافيه

      سلام

      تعليق


      • #4
        بارك الله فيك اخي Net_Spider
        موضوع جميل جدا
        في انتظار المزيد من روائعك.
        تحياتي.
        .....

        تعليق


        • #5
          بارك الله فيك ... موضوع رائع ..
          ارجو ان تضيف الموضوع الى الويكي..
          GCS

          تعليق


          • #6
            نقلت هذا الموضوع إلى الويكي مع بعض التعديل على اللغة المستخدمة
            إدارة حزم rpm

            تعليق


            • #7
              تسلم اﻻيادى التى كتبت لنا هذا الموضوع الرائع
              بارك الله فيك اخى NET_Spider
              تقبل تحياتى ...
              http://img197.imageshack.us/img197/9...66319499rr.gif

              lion_heart_300 previously

              تعليق


              • #8
                المشاركة الأصلية بواسطة dr_tux مشاهدة المشاركة
                نقلت هذا الموضوع إلى الويكي مع بعض التعديل على اللغة المستخدمة
                إدارة حزم rpm
                بارك الله فيك على مجهودك واهتمامك في الويكي..
                GCS

                تعليق


                • #9
                  ACiD-WaRZ ايوة انا وضجت ذلك في البداية
                  ارجو ان يكون الموضوع افادكم

                  وشكرا على جهودك يا dr_tux
                  There's no place like 127.0.0.1

                  تعليق


                  • #10
                    بارك الله فيك اخي نت سبيدر وفعلا الموضوع يفيد المبتدئين في اللينكس ومن ضمنهم انا ،،،،
                    تحياتي ......

                    تعليق


                    • #11
                      موضوع ممتاز تسلم ايدك
                      وجزاك الله خيرا
                      سبحان الله وبحمده سبحان الله العظيم

                      تعليق


                      • #12
                        NET_Spider
                        روعة والله موضوع افادنى كثير ثانكس مان
                        SЄČURiTY TЄΛM
                        MyBlog

                        تعليق


                        • #13
                          موضوع مميز مشكور على هذه المعلومات القيمة

                          تعليق


                          • #14
                            جزاك الله خير مجهود موفق
                            سبحان الله و بحمده سبحان الله العظيم
                            قلها ولا تحرمني وإياك الأجر

                            تعليق

                            يعمل...
                            X