أبتكلم بهالبوست عن نظام Ports في يونكس FreeBSD، وأقسام الموضوع راح تكون:
1- مقدمة \ تعريف لنظام بورتس Ports.
2- كيفية الإستخدام:-
2.1- البحث عن برنامج معين.
2.2- تعديل\إسترجاع\عرض خيارات برنامج قبل التثبيت.
2.3- تثبيت برنامج.
2.4- إلغاء تثبيت برنامج.
3- مميزاته وعيوبه.
4- نقاط.
5- تنبيه وتحذير.
بسم الله.
1- مقدمة \ تعريف لنظام بورتس Ports.
في نظام يونكس FreeBSD، إدارة البرامج من تركيب وإضافة وتحديث تتم عن طريق “الكود المصدري Source Code” الخاص بالبرنامج، يعني البرنامج ما يجيك “ثنائي Binary” مصلح له Compile مسبقاً من مبرمج البرنامج وكل اللي عليك إنك تحمل هالبرنامج وتركبه على طول بأمر أو أداة واحدة.
الفكرة في يونكس FreeBSD إن البرامج إنت تثبتها من الكود المصدري الخاص فيها، يعني البرنامج ما راح يجيك مصلح له Compile، إنت بنفسك راح تسوي له Compile وتركبه على نظامك.
مثال: في نظام لينكس فيدورا أو لينكس ديبيان، إنت تستخدم برنامج YUM أو APT – عن طريق الشل أو الواجهة الرسومية لهم – لأجل تثبت وتضيف بالبرامج، البرامج اللي بتثبتهم من الأدوات هذي جاهزة للتثبت، يعني مصلح لها Compile بواسطة المبرمج، و لا راح تأخذ دقائق من وقتك لما تتثبت، يعني ما يحتاج إنك تعدل أو تضيف في الكود المصدري حقهم.
ولو حاولت تفتح البرامج هذي راح تلاقي محتوها مو مفهوم، لأنها Binary. وبشكل ثاني، تحولت إلى نوع الملفات RPM أو DEB.
مثال: في ويندوز، دائماً أغلب البرامج EXE، يعني مصلح لها Compile من قبل وكل اللي عليك إنك تثبتها، هل تحتاج إنك تعدل بالكود المصدري حقه وخياراته؟ طبعاً لا.
حلو، أظن واضح؟
وش يفرق FreeBSD؟
زي ما وضحت فوق، فري بي أس دي يستخدم الكود المصدري للبرنامج لأجل يثبته، قليل يتعامل مع البرامج اللي مصلح لها Compile من قبل، يعني يلزمك -غالباً- إنك تثبت البرنامج من الكود الخاص فيه.
طيب، للحين الكلام حلو، بس ملاحظين إن تثبيت البرامج من الكود المصدري حقها متعب؟ لازم أحمل الكود تبع أي برنامج أبغاها ثم أسوي له Compile بداخل النظام لأجل يثبت؟
يمكن إذا صار عندك جهاز فري بي أس دي فيه برنامج برنامجين بيكون عادي عندك تحمل الكود المصدري من النت وتسوي له Compile بداخل النظام لأجل يتثبت، بس إذا صار عندك سيرفر وبتضيف وبتعدل من هالخدمات، مره ميل ومره ويب ومره DNS ومره ومره ومره، كيف بتتعامل معه!
لأجل كذا، فري بي أس دي وفر لك نظام Ports، ونظام “بورتس Ports” أعتبره مدير برامج زي Yum أو APT، لكنه يحمل لك الكود المصدري الخاص بالبرنامج، ويخليك تعدل فيه زي ما تبغى، مثلاً تبغى تضيف خيارات أو تلغي، ثم راح يتثبت بالنظام عن طريق عمل compile له.
2- كيفية الإستخدام:-
2.1- البحث عن برنامج معين.
قبل أتطرق لكيفية الإستخدام، أحب أوضح حاجة.
البورتس ما تكون محمله في جهازك بشكل أفتراضي وقت التثبيت، راجع الرابط هذا لأجل يشرح لك كيف تحملها وإنت جالس تجهز نفسك لتثبيت النظام.
إذا كان نظامك مثبت وشغال، فيه كذا طريقة لتحميل البورتس، مثال: عن طريق sysinstall.
أوكي، البورتس راح تكون موجوده تحت الإمتداد هذا:
/usr/ports
لجل تبحث عن برنامج معين، نفترض برنامج wget، عندك طريقتين:
الأولى:
في أي مكان في النظام، نفذ أمر whereis wget
whereis wget
الثانية:
إدخل مجلد البورتس
cd /usr/ports
نفذ أمر البحث:
make search name=wget
زي مانت شايف، في الأمر اللي فوق قلنا له أبحث لنا عن برنامج يحتوي اسمه ” عن طريق الخيار name- “ على كلمة wget.
وفعلاً، عرض لنا مكان البرنامج wget، اللي هو:
/usr/ports/ftp/wget
وإذا كنت ما تعرف اسم برنامج معين، وتبغى تبحث عن كلمة في وصف البرنامج، زي مثلاً تبغى أي برنامج يحتوي وصفه على كلمة google، تقدر تنفذ الأمر:
make search key=google
وراح يعرض لك أي برنامج يحتوي وصفه على كلمة google.
طبعاً تذكر، لازم تنفذ أمر البحث -make search- بداخل المجلد /usr/ports
2.2- تعديل\إسترجاع\عرض خيارات برنامج قبل التثبيت.
هنا راح أحكي عن الإبداع الجمالي في نظام البورتس، أمكانية عرض \ أضافة \ تعديل خيارات أي برنامج قبل تثبيته بنظامك :-).
طبعاً، فوق عرض لنا الأمر
make search name=wget
مكان برنامج wget لأجل نثبته، اللي هو
/usr/ports/ftp/wget
ندخل المجلد:
cd /usr/ports/ftp/wget
ننفذ أمر عرض الخيارات اللي راح تتثبت مع برنامج wget وقت التثبيت، عن طريق:
make showconfig
راح يعرض لك الخيارات الإفتراضية اللي راح تثتبت مع البرنامج.
إذا كنت تبغى تعدل هالخيارات، ننفذ أمر التعديل، والأمر هو:
make config
راح يعرض لك الخيارات اللي تبغى تضيفها أو تلغيها في\من برنامج wget، مثلاً تقدر تضيف خيار دعم برتوكول IPv6 وغيره.
إنت تختار الإضافة اللي تعجبك، عن طريق تحريك أسهم الكيبورد وضغط زر مسافة Space أو أنتر Enter على الميزة اللي تبغاها تضاف\تلغى قبل التثبيت.
لما تخلص، إضغط زر تاب Tab لجل يروح لزر OK، ثم أضغط إنتر عشان يعتمد التغييرات.
أحياناً تعدل وتضيف بهالخيارات، وفجأه تلاقي نفسك ملخبط فيها، وتبغى ترجع الخيارات الإفتراضية، وش تسوي؟
سهلة، أمر:
make rmconfig
رجعك للإعدادت الإفتراضية.
حلوين، خلاص الحين wget جاهز للتثبيت بناء على طلبك :-)..
2.3- تثبيت برنامج.
التثبيت أسهل جزئية بالبرنامج، بما إننا في داخل مجلد
/usr/ports/ftp/wget
عشان نثبته، أمر التثبيت راح يكون بالشكل هذا:
make install clean
الشرح:
make: عملية تسبق عمل Compile للبرنامج، راح يتأكد من وجود كل البرنامج والمكتبات اللي يعتمد عليها البرنامج Dependencies.
install: عمل Compile وتثبيت للبرنامج.
clean: مسح محتويات عملية التثبيت بعد الإنتهاء، وبشكل أصح:
راح يحذف محتويات المجلد
/usr/ports/destfiles
وهالمجلد يحتوي على الملفات اللي تم تحميلها من النت عشان يتثبت برنامج wget.
عملية المسح شيء راجع لك، الهدف منها عشان ما تستهلك مساحة الهارديسك حقك على ملفات ما راح تستخدم مره ثانية.
راح يفيدك عدم تنفذ أمر المسح لما تبغى تثبت البرنامج من جديد، ما تحتاج إنك تتصل بالنت عشان تحمل الكود المصدري من جديد، راح يستخدم الموجود، – إلا في حالة إنك حدثت مكتبةالبورتس، وهذا موضوع ثاني-.
وشي ثاني، تقدر تنفذ الأوامر بشكل متسلسل، يعني ما يكونون بسطر واحد، كذا
make
لما يخلص، تنفذ
make install
ودواليك.
خلاص، إنتظر البرنامج يتثبت في جهازك :-).
2.4- إلغاء تثبيت برنامج.
إلغاء التثبيت سهل، عن طريق تنفيذ أمر
make deinstall
في مجلد البرنامج اللي تبغى تلغي تثبيته، يعني إذا كنت تبغى تلغي تثبيت wget
cd /usr/ports/ftp/wget
make deinstall
3- مميزاته وعيوبه.
المميزات:
زي ما لاحظتوا فوق، نظام البورتس يعطيك تحكم كامل بالبرنامج اللي راح تثبته، أيش تبغى تضيف فيه، وأيش تبغى تحذف منه:
1- لأنها بتخفف من حجم البرنامج اللي يشتغل في جهازك، وهذا بيخفف من إستهلاك الموارد Resources.
2- راح تخفف من عدم ثبات البرامج والسيرفرات، لأن كثرة الإضافات تقلل من ثبات وإستقرار السيرفر Stability.
3- ناحية أمنية، زي ما نعرف حنا يالأدمنز شيء أساسي في السيرفر إنك تقفل وتحذف أي برنامج أو خدمة تشتغل في النظام مالها داعي، إنت لما تعدل مثلاً في الموديولز الخاصة بسيرفر الويب أباتشي، راح تقلل من إحتمالية وجود ثغرة في أحد الموديولز تعرض سيرفرك للإختراق أو التعطيل مثلاً.
العيوب:
1- راح يأخذ منك وقت طــــويــــل لعملية التحميل، والـ Compile، والتثبيت.
2- راح يحجز من هارديسك جهازك تقريباً 400 ميقا بتكون محجوزة للبورتس، مع العلم إنها كلها ملفات نصية -لأنها كود مصدري Source Code-.
4- نقاط.
1- تقدر تستغني عن نظام البورتس – فكرة سيئة – بإستخدام حزمة برامج
pkg_*
بس يلزمك إنك تبحث عن البرنامج بنفسك في النت.
2- برامج الBinary تقدر تثبتهم عن طريق
pkg_add
3- الشرح هذا فقط يشمل التعامل -الأساسي- مع نظام البورتس، راح تكون فيه شروحات ثانية متقدمة للتعامل مع نظام البورتس بشكل أحترافي أكثر، إن شاء الله.
4- في داخل مجلد البرامج الموجودة تحت /usr/ports، تقدر تلاقي شرح كامل للبرنامج ووصفه والملفات اللي راح يتم تحميها والهاش Hash الخاص بكل برنامج، وبرضوا راح تلاقي ملفات الباتشز اللي راح تضاف إلى البرنامج وقت التثبت، حاول تطلع عليها.
5- تنبيه وتحذير:-
تاكد إنك ما تنفذ أمر
make install clean
بداخل مجلد جذري root folder، يعني إذا دخلت المجلد
cd /usr/ports
ثم نفذت
make install clean
تعرف وش سويت إنت!
إنت الحين جالس تثبت فوق 20021 برنامج بجهازك!
بالأخير، فري بي أس دي: أحبك يا مجرم!
بارك الله فيك أخي جريس…إن شاء الله سأفوم بقراءة تفصيلية لهذا الدرس الرائع قريباً إن شاء الله.
@باحث عن المعرفة ،
كل التوفيق لك.
@ mk.opti ,
وعليكم السلام، هلابك أخوي.
بالنسبة لـ Xorg، أصدقك القول إني ما استخدمها، عشان كذا ما أعرف وش المشكلة بالظبط اللي واجهتك.
الخطأ segmentation fault متى يجيك؟
يعني يكتمل تثبيت البورت بنجاح، ولا يقطع التثبيت ويطلع لك الخطأ اللي فوق؟
وسؤال ثاني: لاحظت إنك تستحدم فري بي أس دي كورنت FreeBSD-CURRENT، هل فيه سبب معين لإستخدام النسخة هذي؟
لأنك زي ما تعرف الكورنت كلها للتجارب والمميزات الجديدة اللي يمكن ويمكن ما تضاف إلى فري بي أس دي الإصدار النهائي FreeBSD-Release.
يعني طبيعي إذا واجهتك مشاكل مع الكورنت، لأن كل شيء فيها للتجارب ومو للإستخدام.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html#CURRENT
إستخدام FreeBSD-Release وشغل أكس عليها، وإن شاء الله ما راح تواجه مشاكل معها.
السلام عليكم
كلااام جميل وخبره معمليه فذه
اخ جريس عندي مشكله مع الفري بي اس دي لل كورنت برانش
وهي انه يتجاهل تخصيصات الأرتيتكت للبورتس وبالتالي يظهر لدي رسائل segmentation fault عند تركيب خادم XORG
للمعلوميه الخادم لبنية amd64
ارجو المساعده