الرئيسية > أنظمة يونكس > تحديث برامجك في FreeBSD

تحديث برامجك في FreeBSD


السلام عليكم و رحمة الله و بركاته

مع مرور الوقت تجد أن نظامك قد بدء يأكله الشيب لأن برامجه أصبحت من الماضي و الحاضر أصبح يحمل ميزات جديدة لم تكن متوفرة من قبل ،فيؤسفك نظامك لما آل إليه فتعقد العزم و تتكل على الله و تقرر البدء بترقيته إلا أنك تجيد سؤالا يطرح نفسه ،كيف يمكنني أن أقوم بذلك 😀 ؟

FreeBSD وفر برنامجين أو بالأحرى سكريبتين و الله أعلم ،الأول إسمه portmaster و الآخر portupgrade الذي سيكون محور شرحنا .

portupgrade يعتمد طريقة المقارنة بما هو موجود لديك في ports ،فهي تقارن إصدارة البرامج المنصبة حاليا معتمدة على الملف /var/db/pkg/pkgdb.db بإصدارة البرنامج المتوفر في ports ،فإن كنت لم تحدث ال ports منذ مدة فهذا لن يمكن portupgrade من التعرف على البرامج التي هي غير محدثة .

في كل برنامج يقع تحت /usr/ports يوجد ملف إسمه Makefile يحتوي على المكتبات و البرامج اللازمة لعمل البرنامج الحالي ،هذا مقطع من Makefile الخاص بسطح المكتب gnome .

# New ports collection makefile for:	gnome2
# Date created:		21 May 2002
# Whom:			Joe Marcus Clarke <marcus@FreeBSD.org>
#
# $FreeBSD: ports/x11/gnome2/Makefile,v 1.158 2009/11/28 20:06:14 marcus Exp $
#   $MCom: ports/x11/gnome2/Makefile,v 1.279 2009/10/22 15:15:40 kwm Exp $
#
PORTNAME=	gnome2
PORTVERSION=	2.28.1
PORTREVISION?=	0
CATEGORIES?=	x11 gnome
MASTER_SITES=	# empty
DISTFILES=	# empty
EXTRACT_ONLY=	# empty
MAINTAINER=	gnome@FreeBSD.org
COMMENT?=	The "meta-port" for the GNOME 2 integrated X11 desktop
RUN_DEPENDS?=	${LOCALBASE}/libexec/gweather-applet-2:${PORTSDIR}/x11/gnome-applets \
gnome-audio-profiles-properties:${PORTSDIR}/audio/gnome-media \
gnome-dictionary:${PORTSDIR}/deskutils/gnome-utils \
eog:${PORTSDIR}/graphics/eog \
gconf-editor:${PORTSDIR}/sysutils/gconf-editor \
gnect:${PORTSDIR}/games/gnome-games \
gedit:${PORTSDIR}/editors/gedit \
gnome-terminal:${PORTSDIR}/x11/gnome-terminal \
gnome-session:${PORTSDIR}/x11/gnome-session \
bug-buddy:${PORTSDIR}/devel/bug-buddy \
gnome-system-monitor:${PORTSDIR}/sysutils/gnome-system-monitor \
nautilus:${PORTSDIR}/x11-fm/nautilus \
${LOCALBASE}/sbin/gdm:${PORTSDIR}/x11/gdm

مايهمنا هو العناوين التي هي باللون الأحمر ،PORTNAME تعني إسم البرنامج و PORTVERSION تعني إصدارة البرنامج .

portupgrade ستقوم بمقارنة بين كل برنامج يقع في /usr/ports و برامجك المنصبة الموجودة في الملف /var/db/pkg/pkgdb.db فإن وجدت رقم الإصدارة في المسار السابق أقل من هي التي موجودة في /usr/ports فستقوم بالترقية أما إن وجدتها متساويتان فإنها لن تقوم بالترقية إلا إذا أنت أضفت وسيطا آخر في الأمر portupgrade ،تحديث ال ports قبل عملية تحديث البرامج ضرورية ،يمكنك إستعمال portsnap او cvsup لذلك .

قبل البدء بعملية التحديث علينا أولا تنصيب الأداة portupgrade إما من ports :

cd /usr/ports/ports-mgmt/portupgrade
make install clean

أو من packages :

pkg_add -r portupgrade

ملاحظة :بتنصيبك ل portupgrade فإنه سوف يتم تنصيب مجموعة من الأدوات التي تساعدك على إدارة برامجك منها :

pkg_version : فائدتها معرفة حالة إصدارة البرامج المنصبة لديك ،هل هي محدثة أم لا إلخ … .

مثال :

معرفة البرامج غير المحدثة :

pkg_version -l '<'

غير > ب = لتعرف البرامج المحدثة .

pkg_info : إظهار البرامج المنصبة حاليا .

مثال :

إظهار جميع البرامج التي تبدأ بإسم gnome .

pkg_info -a | grep ^gnome

pkg_which : فائدتها معرفة أي برنامج لمن ينتمي .

مثال :

pkg_which pkgdb

قبل البدأ في إستعمال portupgrade سنتعرف أولا على بعض الوسائط المهمة :

a : تعني تحديث جميع البرامج .

r : ستقوم بفحص البرامج و المكتبات التي يعتمد عليها برنامج ما .

R : تقوم بعمل تنصيب البرامج و المكتبات التي يحتاجها برنامج ما .

f : تعني إعادة تنصيب برنامج ما حتى و لو كان محدثا .

C : هذه سوف تجبر الأمر make config قبل تحديث أي برنامج ،سنعرف فائدتها فيما بعد .

F : هذه سوف تقوم بتنزيل الملفات الضرورية للتحديث من دون القيام بعملية التحديث ،تجدون الملفات المنزلة تحت /usr/ports/distfiles .

x : إعفاء برنامج ما من التحديث .

الآن بعد أن عرفنا بعض الحجج (arguments) اللازمة لإستخدام portupgrade ،سنقوم بالتحديث .

ملاحظة :الشرح سيكون هذه المرة عن طريق سؤال و جواب .

س 1 :أريد تحديث جميع البرامج المنصبة لدي ؟

ج 1 :إستخدم portupgrade كالآتي :

portupgrade -arR

a معناها جميع البرامج ،r لجمع البرامج التي تعتمد على كل برنامج (firefox3 يعتمد على nss و gtk و … مما سيعني أنه سيتم ترقية firefox و nss و gtk و جميع البرامج التي تعتمد عليه ) أما R فهي التي ستقوم بعملية تحديث البرامج التي تعتمد على برنامج ما .

الفائدة من هذه أنك ستتجنب مشكلة التوافقية بين البرامج .

س 2 :أريد تحديث python فقط ؟

ج 2 :إستخدم portupgrade كالآتي :

portupgrade python25

س 3 :أريد تحديث perl و جميع ما يتعلق به من المكتبات و البرامج ؟

ج 3 :إستخدم portupgrade كالآتي :

portupgrade -rR perl5

س 4 :أريد تحديث جميع البرامج بإستثناء openoffice لأنه يأخذ مساحة من جهازي و وقتا اللذان لا أملكهما حاليا ؟

ج 4 :إستخدم portupgrade كالآتي :

portupgrade -arR -x en-openoffice.org

x معناها إعفاء openoffice من التحديث حتى و لو كان قديما .

س 5 :كيف أنزل الملفات اللازمة للتحديث من دون تحديث البرنامج لأني سأقوم بذلك لاحقا ؟

ج 5 :إستخدم portupgrade كالآتي :

portupgrade -arRF

F ستقوم بتنزيل الملفات اللازمة من الأنترنيت من دون عمل تحديث لبرامجك .

س 6 :أريد تحديث جميع وحدات (modules) الخاصة ب perl فقط :

ج 6 :إستخدم portupgrade كالآتي :

portupgrade -rR p5-*

لحسن الحظ فإن portupgrade تقبل regular expression بهذا يمكنك عمل تحديث لجميع أسماء البرامج المنصبة التي فيها p5- أما * فهي حالة خاصة في regular expression تعني حرفا أو أكثر أي أن هذه الوحدات سيشملها التحديث :


p5-XML-XPath
p5-gettext
p5-libwww

س 7 :تركت جهازي يقوم بتحديث البرامج لمدة 7 ساعات لأجد نافذة إعدادات تنتظرني ! كيف لي أن أتخطى هذا المشكل لأنه لايمكنني البقاء أمام الجهاز كل هذه المدة ؟

ج 7 :هذا مشكل عادي لأنه حدث لي من قبل أيضا 😀 ،لتجاوز هذا عليك بإضافة C لتجبر portupgrade بعمل make config قبل التحديث .

مثال :

portupgrade -aCrR

س 8 :أريد أن أعفي أكثر من برنامج من التحديث ،كيف أقوم بذلك ؟

ج 8 :إستخدم portupgrade كالآتي :

portupgrade -arR -x openoffice.org -x firefox3

س 9 :أريد تحديث جميع البرامج بمن فيها المحدثة ،كيف أقوم بذلك ؟

ج 9 :إستخدم portupgrade كالآتي :

portupgrade -arRf

f ستقوم بإجبار portupgrade بتحديث جميع البرامج لأن portupgrade لا تحدث البرامج المحدثة أصلا .

مصادر :

portupgrade – ONLamp.com

http://www.freebsd.org/doc/en/books/handbook/ports-using.html
man portupgrade

التصنيفات :أنظمة يونكس الوسوم:, ,
  1. 1 فبراير 2010 الساعة 12:25 م

    شكرا لك، لقد أفدتني كثيرا🙂

  2. 2 فبراير 2010 الساعة 1:57 ص

    السلام عليكم و رحمة الله و بركاته
    لي الشرف في ذلك ،لديك مدونة ما شاء الله .

  3. 3 فبراير 2010 الساعة 11:13 ص

    شكرا🙂 أتمنى أن تكون بفائدة، و كمساهمة و لو بسيطة لنُرجع جزءا من كل ما نستفيد منه.

  4. فرحات
    18 مارس 2010 الساعة 12:02 م

    السلام عليكم

    لله يجزيك خير الجزاء
    كما اتمنى لك كل التوفيق
    مجهود متعوب عليك الله يعنيك على ذلك

  1. 30 أبريل 2011 الساعة 11:20 م

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: