3.4 الحزم الجاهزة | كتاب لينكس الشامل | >> |
توفر معظم المواقع برامجها على شكل ملف مصدري أما البرامج الجاهزة توزع على شكل حزم وتعتمد كل توزيعة نظام معين لإدارة هذه الحزم يؤمن معرفة الحزم المركّبة وإزالتها وتحديثها والعلاقات بينها (هذه تعتمد على تلك) وهناك ثلاث أنواع منتشرة rpm (أي RedHat Package Mangment) متوفر في ريدهات وشبيهاتها مثل ماندريك فهي GPLed أي ليست مقتصرة على ريدهات حيث توفر معظم التوزيعات هذه الأداة أو على الأقل أداة للتحويلها لنظام تلك التوزيعة ومن الأنظمة الأخرى deb (من توزيعة Debian) و tgz (في توزيعة Slackware). إن نظام إدارة الحزم يوفر عليك الكثير من الصداع فكل ما عليك هو طلب تركيب البرنامج وسيتكفل النظام من التحقق من المتطلبات المسبقة ومن وجود إصدارات سابقة أو برنامج يتضارب عملها مع البرنامج الذي تريد تركيبه كما يقوم بإعلام البرامج الأخرى التي يمكنها الاستفادة منه بوجوده، لدرجة أن نظام إدارة الحزم في ديبيان قادر على ترقية التوزيعة كاملة دون الحاجة لإعادة الإقلاع. وجود نظام إدارة الحزم لا يمنعك من تركيب برامج بطرق أخرى مثل الملف المصدر أو الأرشيفات المضغوطة tarball الجاهزة.
إن أي تعديل على المجلدات
/bin
و /sbin
و
/usr
و /lib
و
/var
وما يتفرع عنها
باستثناء /val/local
و /usr/local
قد يشوش نظام إدارة الحزم
wine sol
لتركيب ملف rpm في ماندريك يكفي النقر(المزدوج) عليه ثم إدخال كلمة سر الجذر. هذا إذا كانت الحزمة مصممة لماندريك ومن مواقعها انظرفصل ما بعد التركيب
تركيب الحزم يحتاج لأن تكون المستخدم الجذر فإذا حاولت تركيبها بالمستخدم العادي قد تحصل على خطأ لا يقول لك صراحة أنك يجب أن تكن جذراً بل "لا يمكن الوصول لملف كذا ..." أو "لا يمكن الكتابة في ملف كذا" ،
الحزم المصممة لتوزيعة تعمل على أخرى،ولكن هناك مشكلة الإعتماد أي أن تكون الحزمة الفلانية تعتمد على إصدار من مكتبة معينة أحدث من التي لديك عندها عليك ترقية المكتبة فإذا قلنا أن هذه الحزمة مصممة لريدهات 8.0 وحاولت تركيبها على ريدهات 7.2 ربما ستعطيك أنك بحاجة إلى مكتبة glibc 3.2 مثلا وأنت تملك نسخة 2.9 مثلا فعليك ترقية المكتبة أولا (تركيب حزمة المكتبة المذكورة) ثم تركيب الحزمة التي تريد.
تعتمد بعض الحزم على نوع المعالج وأخرى لا تعتمد (مثل الحزم المصدرية أو حزم الوثائق والمؤثرات ...) ويكتب عادة اسم المعالج قبل نوع الحزمة مثل
kernel-2.4.21.i586.rpm kernel-2.4.20.athlon.rpm gcc-3.2.ppc.rpm mplayer-0.9.i386.rpm winex-20032203.src.rpm xmms-skins-1.8.noarch.rpm
arch cat /proc/cpuinfo
حزم تعريف الأجهزة تصمم لنوع معين من الأنوية لذا عليك باختيار الحزمة التي تتناسب واصدار النواة التي لديك استخدم الأمرين
rpm -q /boot/vmlinuz # سيرد شرحه أدناه uname -r
إقرأ دليل استخدام rpm بطباعة man rpm وانظر ما هي الخيارات المتوفرة.
لدينا الخيارات التالية :
الإستفسار عن حزمة أو ملف،
تركيب حزمة معينة،
.إزالة حزمة مركّبة
rpm -qi -p PACKAGE-VER.ARCH.rpm
-p
)
ثم اسم الحزمة (لا داع للإصدار) مثلاً rpm -qi gpm
لاحظ الخيار i يعني info أي معلومات. إذا كنت تريد معرفة
الملفات التي تحتويها حزمة معينة استعمل -l
أي list مثلاً
rpm -ql mysql
.
هل تساءلت مرة أين هي وثئق حزمة معينة! بسيطة -d
مثلاً rpm -qd mysql
. أين هي ملفات إعداد apache ؟
استعمل -c
مثلا
rpm -qc apache2
في ريدهات يسمونه httpd لهذا
rpm -qc httpd
للإستفسار ومعرفة إلى أي حزمة ينتمي الملف الفلاني
rpm -q -f /PATH/TO/FILE rpm -q -f `which COMMAND`
bash# rpm -Va
يجب أن تكون جذرا لتركيب حزمة،أفضل طريقة لتركيب حزمة هي
rpm -Uvh PACKAGE-VER.ARCH.rpm
rpm -ivh PACKAGE-VER.ARCH.rpm
rpm --rebuild PACKAGE-VER.src.rpm
rpm --rebuild --target=athlonPACKAGE-VER.src.rpm
وأيضا لمعالجات انتل (ربما في انتل لن تحس بفرق كبير) هذا الأمر
rpm --rebuild --target=i686PACKAGE-VER.src.rpm
rpm -e PACKAGE-VER
معنى الخيارات :
U (Up-Grade),i (install),v (verbos),h (hash[#]),e (erase)
هذه أمثلة على كل ذلك
bash$ rpm --help # gives you help about it bash$ man rpm # Shows the manual pages of rpm bash$ rpm -qi -p /mnt/cdrom/RedHat/RPMS/ggv*.rpm # Gives some info about ggv bash$ rpm -qf /boot/vmlinuz kernel-2.4.18.i586 bash$ rpm -qf `which sol` gnome-games bash$ su root password:******** bash# rpm -Uvh /mnt/cdrom/Mandrake/RPMS2/*xmms*.rpm lib-xmms: ######################################## xmms: ######################################## xmms-smpg: ######################################## xmms-skins: ######################################## bash# exit bash$
# لنعرف أين نحن bash$ pwd /home/ahmad # لنعرض الملفات الموجودة bash$ ls mplayer*.rpm mplayer-common-1.0pre2-1.i386.rpm mplayer-1.0pre2-1.i386.rpm mplayer-gui-1.0pre2-1.i386.rpm mplayer-skin-default-1.0-2.noarch.rpm # لتصبح جذرا bash$ su password: bash# rpm -Uvh mplayer*.rpm mplayer-common: ######################################## mplayer: ######################################## mplayer-gui: ######################################## mplayer-skin-default: ######################################## # نعود مستخدم عادي bash# exit bash$
mplayer*.rpm
التي تنوب عن الملفات الأربعة
إذا كنت تستخدم توزيعة ريدهات أو فيدورا جرب أن تثبت دعم mp3 من خلال تثبيت حزمة xmms-mp3 من http://dag.wieers.com/packages/xmms-mp3 ثم شغل xmms وفعّل libmpeg123 plugin الخاص بها كتمرين لك.
هناك حيلة جميلة كنت أقوم بها قبل أن أعرف apt
كانت تقوم على تخزين قائمة بملفات rpm
الموجودة على كل سي-دي
في ملف اسميه على اسم السي-دي وذلك بكتابة
# ضع القرص الأول bash$ mount /mnt/cdrom bash$ ls /mnt/cdrom/Fedora/RPMS > ~/fc2.cd1.txt bash$ eject # ضع القرص الثاني bash$ mount /mnt/cdrom bash$ ls /mnt/cdrom/Fedora/RPMS > ~/fc2.cd2.txt # وهكذا
bash$ grep 'MYPKG' ~/fc2.cd*.txt
حزم deb هي الطريقة المعتمدة في ديبيان
نتعامل معها من خلال dpkg
(تعتبر أداة dpkg الآن طرف خلفي backend تستخدمها الأدوات الأذكى والأسهل)
هذه الملفات تكون على صورة PACKAGE_VER-REV_ARCH.deb
حيث PACKAGE هي الحزمة VER الإصدار و REV هي رقم خاص بديبيان
و ARCH هي طراز المعالج مثل i386 أو all.
لتركيب الحزمة نستعمل الخيار --install
أو
-i
ثم اسم الملف أي
dpkg -i PACKAGE_VER-REV_ARCH.deb
ولإزالتها نستعمل --remove
أو
-r
ثم اسم الحزمة (دون الإصدار) أي
dpkg -r PACKAGE
هذا يحذف الحزمة دون ملفات الإعداد (حتى تحتفظ بإعداداتها) أما الحذف الكلي
فإن الخيار هو --purge
وهذا لا يسمح لك بحذف الملفات الضرورية لعمل الجهاز مثل النواة kernel-image
(بالمناسبة في ديبيان هذا هو اسمها وليس kernel)
لهذا عليك إضافة الخيار --force-remove-essential
عند تركيب حزمة بالخيار install فإنه يتم إعدادها بأدوات خاصة ب debian (قد يكون ذلك بطريقة تفاعلية) إذا كنت لا ترغب في ذلك يمكنك تركيبها بالخيار unpack
لمعرفة معلومات عن حزمة وماذا تفعل وماذا تحتاج ومدى ضرورتها ... (هذه المعلومات تسمى
configfile لا أدري لماذا )
لعرض هذه المعلومة نستعمل الخيار info
dpkg --info PACKAGE_VER-REV_ARCH.deb
للبحث عن حزمة ضمن الحزمة المثبتة وعرض تقرير يمكنك
استعمال الخيار list ثم نموذج Pattern مثل libstd*
لمزيد من التفاصيل عن تلك الحزمة استعمل الخيار ثم status ثم النموذج
bash# dpkg --status libstd*
bash# dpkg --search `which gvim`
bash# dpk-query --listfiles PACKAGE
يمكن إدارة الحزم (إضافة وحذف) تبعاً للغاية منها بواسطة البرنامج tasksel
الذي يعرض وظائف معينة وعند اختيارها يتم تركيب أحد الحزم التي تقوم بهذه
الوظيفة.
يمكن تنفيذ tasksel -s
ليركيب حزم ضرورية للنظام.
من أهم ميزات ديبان ما يسمى بالحزم الافتراضية أي
الوهمية وهي أسماء لحزم أخرى مثلاً حزمة editor قد تكون
vim أو emacs أو أي محرر نصوص آخر تبعاً لذوق المستخدم
فإذا كانت هناك حزمة تعتمد على editor فإن الخيار يكون لك أيها تفضل.
كذلك الحال مع browser مثل mozilla أو firefox ...
فإذا نفذت browser يعمل البرنامج الذي تفضل منها.
هناك حزمة أخرى وهمية تسمى vi قد تكون vim أو nvi أو أي محرر نصوص
يستطيع تقليد vi.
لعرض بدائل برنامج افتراضي مثل editor اكتب
update-alternatives --display editor
لتحديد أي البدائل يشيل إلى البرنامج الوهمي editor نستعمل
update-alternatives --config editor
حيث سيعرض لك قائمة لتختارر أيها تفضل.
يحتوي ديبيان حزمة debsums التي تعمل على فحص md5sum الخاص بالحزم المثبتة للتأكد من موثوقيتها وعدم تغييرها.
من أكثر أنظمة الحزم بساطة (أي أنها لم تغلب من صممها ) هل عرفتم من هم ؟ نعم توزيعة الكسولين slackware فهي مجرد أرشيف مضغوط يحتوي على نصوص برمجية للتركيب والإزالة لتركيبها نستخدم الأداة installpkg و لأزلتها نستخدم removepkg
من السهل تركيب حزمة بالطرق السابقة إذا كانت منفصلة ولا تحتاج حزم أخرى وتعود لنفس الإصدارة ، ولكن هذا الوضع مثالي جداً لأن فلسفة لينكس تقوم على أن لا تعيد اختراع العجلة أي أن تستعمل البرامج برامج أخرى ، هنا عليك إذا رغبت في تركيب الأول تركيب ما يعتمد عليه ولكن إذا لم تفعل ستحصل على رسالة تفيدك بأن العملية لم تتم لأنا بحاجة للملف الفلاني ولكن في أي حزمة يوجد هذا الملف فتصبح المسألة إبرةً في كومة قش.
أيضا إذا أردت تحديث نظامك كله لن تفيدك تلك الأدوات لهذا ظهر جيد جديد من الأدوات يمكنه اختيار الحزم هذه الأدوات تستخدم نفس الحزم السابقة ولكنها تمنحك طريقة أسهل لتركيبها
من الطرق الجديدة السهلة المستخدمة في ديبيان وهي اختصار لنظام الحزم المتفوق advanced package tool
أو بطريقة أكثر تواضعاً مجرد نظام حزم A Package Tool، لتجعل من نظام dselect القديم ينقرض.
ويمكن إضافته في ريدهات (طبعاً إصدار ريدهات يتعامل مع rpm و الآخر مع deb)
التي تستخدم لتجاوز صعوبات معينة مثل الإعتمادية
حيث يقوم هو باختيار الحزم تلقائياً من الدليل الحالي
أو من أقراص التوزيعة ويمكن استخدامها لتحديث كل حزم نظامك
من موقع على الشبكة
الموقع الرسمي للحصول على الملف المصدري هو www.apt-get.org.
ديبيان يستعمل هذا النظام تلقائياً ولكن فيدورا أو ريدهات يمكنك إضافته
من خلال تثبيت حزمة اسمها apt
من أحد المواقع الخاصة بحزم rpm
المذكورة سابقاً
في فصل ما بعد التثبيت،
مثل http://apt.freshrpms.net
أو http://dag.wieers.com.
هذه الحزمة بها أداة ذكية من سطر الأوامر apt-get
ولها واجهة نصية تعتمد القوائم aptitude
(انظر فصل تركيب لينكس بند 1.5.6)
وأخرى رسومية أنيقة هي synaptic
كحزمة مستقلة
استعمل apt-setup
لمرة واحدة على الأقل لتحديد
الأماكن التي تريد أن يبحث فيها مثلاً أن لديك أول 13 سي دي
والموقع على الشبكة المحلية الفلانية أو الموقع الفلاني على الإنترنت.
أو يمكنك تحديد المصادر بتعديل ملف /etc/apt/sources.list
بحيث يحتوي سطر كما يلي
deb http://www.somewhere.net stable main contrib non-free
bash# apt-get update
لتركيب حزمة استعمل
apt-get install PACKAGE
مثلاً لتركيب برنامج epiphany
اكتب
bash# apt-get install epiphany
bash# apt-get update bash# apt-get dist-upgrade
/var/cache/apt/archives
وإذا أردت حذفها
bash# apt-get clean
الأداة apt-cache يمكها أن تساعدك في البحث عن الحزم كما يلي
bash# apt-cache search foo
أما الأداة debfoster تستعمل للبحث وإزالة الحزم التي لم تعد بحاجة لها مثلاً إذا كانت الحزمة A تحتاج للحزمة B وركبت الحزمتين فإذا حذفت الحزمة A وكانت هي الوحيدة التي تستعمل B فإنها B لم تعد بحاجة لها.
طريقة تمتاز بها ماندريك عن غيرها توفر امكانيات تشبه apt-get
وهي تقوم بمهام برنامج rpmdrake من سطر الأوامر
الموقع الرسمي هو www.urpmi.org
لتنزيل حزمة ومستلزماتها اكتب
urpmi mypackage
ولإزالة حزمة وكل ما يعتمد عليها
urpme mypackage
لتحديث قائمة الحزم اكتب
urpmi.update -a
ولتقوم بتحديث كل الحزم لديك من موقع
urpmi --update --auto-select
ولترقية نظامك
urpmi --auto-select
ولتعرض الملفات الموجودة في حزمة
urpmf mypackage.rpm
ولتعرف الملف يتبع أي حزمة
urpmf myfile
ولعرض البرامج التي لا تعتمد على شيء
urpmi_rpm-find-leaves
إذا كنت تستعمل ماندريك بالعربي قد تظهر الرسائل مترجمة للعربية
على رموز لأن الطرفية لا تدعمها شغلها بالإنجليزية
LC_ALL=C urpmi mypackage.rpm
منذ ريدهات 8 (وربما قبل) وحتى فيدورا توفر ريدهات برنامج up2date و yum للدخول على شبكة ريدهات للحصول على التحديثات التلقائية (يوجد زر يظل يومض بالأحمر حتى تقوم بالتحديث عند النقر عليه يقودك عبر واجهة رسومية) هذه الشبكة طبعاً مقابل اشتراك مالي، لكن هناك مواقع أخرى تستخدم نفس الأداة يمكن الوصول لها مجاناً.
تسهل هذه الأداة عملية الحصول على الحزم من مواقع الإنترنت
وحل مشكلة الإعتمادية تلقائياً. لهذا يمكن استعمالها بنفس أهداف apt.
أولاً أضف عناوين مواقع الحزم التي تدعم هذه الأداة في
الملف /etc/sysconfig/rhn/sources
مثل موقع rpm.livna.org و freshrpms.net
بالصيغة التالية:
yum fedora-us-stable-fc2 http://download.fedora.us/fedora/fedora/2/i386/yum/stable yum fedora-us-testing-fc2 http://download.fedora.us/fedora/fedjra/2/i386/yum/testing yum livna-stable-fc2 http://rpm.livna.org/fedora/2/i386/yum/stable yum flash-plugin http://macromedia.mplug.org/apt/fedora/2 yum dag http://apt.sw.be/redhat/fc2/en/i386/dag
/etc/yum.conf
بالصيغة التالية:
[livna-stable] name=Livna.org Fedora Compatible Packages (stable) baseurl= http://rpm.livna.org/fedora/2/i386/yum/stable gpgcheck=1 [livna-testing] name=Livna.org Fedora Compatible Packages (testing) baseurl=http://rpm.livna.org/fedora/2/i386/yum/testing gpgcheck=1 [livna-unstable] name=Livna.org Fedora Compatible Packages (unstable) baseurl=http://rpm.livna.org/fedora/2/i386/yum/unstable gpgcheck=1 [flash-plugin] name=Macromedia flash-plugin site baseurl=http://macromedia.mplug.org/apt/fedora/2 [dag] name=Fedora Core 2 Dag Wieers' repository baseurl=http://apt.sw.be/redhat/fc2/en/i386/dag
bash# up2date flash-plugin xmms-mp3 xine totem mozilla-j2re mozilla-acroread
bash# up2date audacity
bash# yum install lame
رد slackware على apt-get
<< السابق | كتاب لينكس الشامل | التالي >> |