ماذا تعرف عن روبي جيمس

مارس 20, 2008
سـلام من الله عليكم ورحمه وبركاته ومغفرته ورضوانه
تشتمل هـذه المقالة على عـده نقـاط وهي :
• تعريف بسيـط بـ ماهية الـ Package Management System .
• مقـدمة تعريفية بالــ RubyGems .
• متطلبات تنزيـل وتثبيت الـ RubyGems .
• الاوامر المستخدمة في الـ RubyGems .
• مشـروع تطبيقي بسيـط .
• روابط تفيد الموضوع
* الشـرح والتوضيح الموجود في هـذه المقالة يخدم بصورة أسـاسية مستخدمي اللينوكس .
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
– الـ Package Management System ببسـاطه عباره عن نظــام لاداره الحـزم فهـو تطبيق يسـاعدك علي تنزيـل,تحديث,ترقيـه وحـذف البرامج المختلفـه ,فهنـاك اوامر مختلفـه لتنفيـذ هـذه العمليـات.وتـوجـد البرامج علي سيرفرات التوزيعـه في شئ يسمي بمستودعـات البرامج repositories . وبعــد اختيار البرنـامج المراد تحميله, تقـوم بكتابه الامر المسئول عن تحميـل البرنامج في الـ Terminal-برنامج سطر الاوامر- يتبعه اسم البرنامج ,فيقـوم نظام اداره الحـزم بجلب البرنـامج ومن ثـم عمل Install لـه علي النظـام فيصبـح جاهز للاستخـدام مباشره .
ومن امثلـه الـ Package Management System برنـامج apt – اختصـارا لـAdvanced Packaging Tool – الموجـود علي التوزيعـه العريقـه Debian وابنائهـا -اقصـد بالابناء هي التوزيعـات المبنيه عليهـا – ,وبرنـامج yum -اختصـارا لـ Yellowdog Updater Modified – الموجـوده علي توزيعـه Redhat وابنائهـا .
– ويعتبر الـ RubyGems نظـام لاداره الحـزم Package Management System وهـو تطبيق تمت كتابته بالـ Ruby ليعمــل علي تنزيــل تطبيقات جـاهزه او مكتبات تمت كتابتهـا بالـ Ruby لتـساعدك علي اداء وظيفـه معينـه – تطلق علي تلك التطبيقـات والمكتبات اسـم Gems – . فعلي سبيـل المثـال :
اذا كـان لديك ملف صوتي وتريد ان تقوم بكتابه اسكربت ليقـوم بعرض اسم المغني واسـم الالبوم لهذا المـلف الصوتي ,فلا حـاجه لاعـاده كتباته لان هنـاك مكتبه تدعي id3lib
تقـوم بتمرير ملف صوتي لهـا -بامتداد Mp3 – فتقوم بعرض اسـم المغني مع الالبـوم وتستطيـع تنزيلهـا باستخـدام الـ RubyGems بكـل سهـوله بـامر واحـد .
طـورت الـ RubyGems عن طريق عـده اشخـاص منهم شخص يدعي Jim Weirich واخـر يدعي Chad Fowler ,وكـانت اول اصـداره متـاحه للتحميـل في عـام 2004 .
– البـرمجيـات التي تقـوم بتحميلهـا عبر نظـام اداره الحـزم سـواء كان apt او yum او غيـره تحمـل امتداد معيـن فعلي سبيـل المثـال: تحمـل البرمجيـات الخـاصه بـ Debian وابنائه امثـال Ubuntu الامتداد deb امـا Redhat وابنائـه امثـال Fedora فيحملـوا الامتداد rpm ,وبناء علي تلـك القـاعده فـان البرمجيـات المحملـه عبر الـ RubyGems تحمـل الامتداد gem .
ملحوظــه :انـا لا اقصـد في المثـال السابق ان كـل برنـامج مسئـول عن تنزيـل نوع من الحـزم يحمـل امتداد معين فابمكانك استخـدام apt علي توزيعـه Fedora والاستغناء عن مدير الحـزم الذي ياتي بصوره افتراضيه وهـوyum و لـك كـامل الحـريه في ذلـك ,بينمـا انا اقـصد ان نـوع الحـزم يرجـع الي المستودعـات المخزنـه بهـا الحـزم فالمستودع الخـاص بـ الـRubyGems يحمـل حزم بامتداد gem .
ويعتبـر المستودع الرئيسي الذي يحمـل جميـع الـ Gems المختلفـه هـو موقع RubyForge -في فتره كتابه هـذه المقـاله – حيـث يتـم تحميــل جميــع التطبيقـات والمكتبات المختلفه من رابـط فرعي يتبع الموقـع وهـو RubyGems Repositories ,فعندمـا تقـوم بطلب تطبيق معين يقـوم الـ RubyGems بالبحـث عن ذلـك التطبيق في هـذا المستودع الرئيسي ويرجـع لـك النتـائج سواء ايجـابيه او سلبيـه .
ملحوظـه : بامكانك تغيـر المستودع الرئيسي باي سايت اخـر تريـده وسوف اوضـح ذلـك في مقاله قادمه باذن الله .
من مميـزات الـ RubyGems انـه عندمـا تطلب تطبيق معين يقـوم بعرض اصدارات مختلفـه من نفس التطبيق-اذا توافرت علي السيرفر- سـواء قـديمـه او جـديده وتقـوم باختيار الاصـداره التي تناسبـك من القـائمـه التي امـامـك , ايضـا بـامكان الـ RubyGems ان يحـدد اذا كـان الـ gem الذي قمت بتحميلـه يحتـاج الي gems اخري لكي يعمـل ويقـوم باخبارك اذا كنت تريد ان تقـوم بتحميلهـم ام لا . وتستطيـع بناء الـ gems المختلفه الخـاصه بـك -سـواء كان تطبيق او مكتبه – ومن ثـم تقوم برفعهـا علي الـ RubyForg ليقـوم الجميـع باستخـدامهـا .وكخاتمـه لهـذه المقدمـه البسيطـه استطيـع القـول ان الـ RubyGems يـوفرعليـك عنـاء البحث عن المكتبات والتطبيقـات المختلفه ومن ثـم تركيبهـا علي الجهـاز فهـو يقـوم بكـل ذلك اوتوماتيكـا .
# تثبيت الـ RubyGems #
اولا قبـل تثبيت الـRubyGems يجب عليـك اولا ان تقـوم بتثبيت الـ Ruby ولكن قبـل ان تقوم بعمـل بتثبيت الـ Ruby يجب عليك أن تتاكد من وجود كومبيلر للغه الـ C علي جهـازك واذا لـم تكن تملك فبامكانك تحميـل الـ – gcc – Gnu C Compiler وذلـك عبر كتابه الامر :
sudo apt-get install gcc
وبعـد تنزليـه بـامكانك عمـل عمليه الـ Compile للـ Ruby .
ولفعـل ذلـك اتجــه الي المـوقع الرسمي للغـه من هنـــا
سـوف تجـد الاصداره الاخيـره من اللغه في اعلي الصفحـه -الكـود المصدري Source Code- وتحتهـا كلمـه Stable قـم بتحميلهـا ثم بعد ذلـك قم بتثبيتهـا وذلـك عن طريق فك الضغـط اولا ثـم قم بالدخول الي الديريكتوري بعد فـك ضغـط وقم بعمـل:
configure/.
make
sudo make install
ملحوظـه : بـامكانك استخـدام سطـر الاوامر لتنزيل الـRuby عن طريق كتابه :
– بالنسبه لـ Debian وابنائـه-
sudo apt-get install ruby
ولكـن هـذا الامر لا يضمـن لـك ان تكـون النسخـه في اخـر تحديث لهـا فمن الممكن ان تكـون المستودعـات لا يتوافر بهـا اخر اصداره , لذا نحن نقـوم بالتثبيت من الكـود المصدري لنتاكد انهـا الاصداره الاخيـره من اللغــه .
وبعـد تثبيتـك للـ Ruby بـامكـانك بعـد ذلـك تنزيـل الـ RubyGems وتثبيتهـا ,وذلـك بـ:
* قـم بالدخـول الي صفحـه المشـروع الرئيسيـه من هنــا
* قـم بتحميـل الاصداره الاخيـره للمشروع ,وبعـد تنزيلـه قم بفـك الضغـط وقم بالدخـول الي الديريكتوري بعد فك الضغـط ثم قـم بتنفيذ :
ruby setup.rb
وبعــد التثبيت بنجـاح ودون اي مشـاكل بامكـانك الان استخــدام الـ RubyGems .
ولمعـرفه رقـم اصداره الـ RubyGems المثبته علي جهـازك قـم بكتابه هـذا الامر :
gem --version
او gem -v
وبطبـاعه الامـر:
which gem
تتمكن من معـرفه مكـان الـgems التي يتـم تحميلها الي جهـازك بداخل ملفات النظـام .
ملحوظـه : هـذه المقـاله استخـدم فيها الاصـداره التي تحمـل الـرقم 1.0.1 من الـ RubyGems .
– وكمـا ان لاي Package Management System اوامر كمـا ذكرنـا سابقـا – لتنزيل وحذف وتحديث للبرامج – , فـان الـ RubyGems ايضـا تحتوي علي اوامر للتنزيل وتحديث وحذف الـ Gems وغيرها من الاوامرالمختلفـه .
بالنسبه لاوامر الـ RubyGems المختلفـه ,فهي كثيـره ولكن هنـاك اوامر اساسيـه يحتـاجهـا المستخـدم للاستخـدام الدوري نعـرض بعـض منهـا.
ملحوظـه: بالنسبـه لامر التنزيل والتحديث والحذف والاوامر التي عموما تغير من ملفات الـ System سواء بالاضافه او الحـذف فيجب ان يكون لديك صـلاحيات لذلك لذا يفضل كتابه sudo في بادي الامر يتبعه الامر او ان تدخـل بحساب root .
دائمــا عندمــا نود استخـدام الـ RubyGems فاننا نسبق اي امـر بكلمه gem ثـم نتبعـها بالامر الذي نـود استخدامـه .
* الامـر الخاص بـ التنزيـل install :
gem install name_of_gem
مثـال:
gem install hpricot
النتيجـه:

Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions. This could take a while...
Successfully installed hpricot-0.6
1 gem installed
Installing ri documentation for hpricot-0.6...
Installing RDoc documentation for hpricot-0.6...

والنتيجـه هنـا انـه تم تنزيـل الـ gem بنجـاح ,ولكن في حـال ان الـ gem الذي اعتطيت امر بتنزيله غير موجود فسـوف يعطي لـك هـذه النتيجـه :
ERROR: could not find file_name locally or in a repository
وتفيـد هـذه الرسـاله انه لم يتم العثـور علي الgem الذي قمت بكتابه اسمـه .
* الامـر الخـاص بالحذف uninstall :
gem uninstall hpricot
سـوف هـذه النتيجـه اذا تم الحذف بنجـاح :
Successfully uninstalled hpricot-0.6
* الامـر الخـاص بالبحـث search :
gem search rails
النتيجـه :
*** LOCAL GEMS ***
rails 2.0.2
وهـو يعـرض لـك نتيجـه بحثك عن gem معين في الجهـاز فهو يرجع لك اسـم الـ gem اذا كان موجود .
* الامـر update :
gem update
لعمـل تحديث للـ gems الموجوده في جهـازك .
* الامر gem update --system
لعمـل تحديث للـ RubyGems نفسـه لاخـر اصـداره موجوده علي السيرفر .
* الامر cleanup :
gem cleanup
لعمـل حذف لملفات الـgems الاصداره القديمـه بعـد تحديثهـا .
وبالطبـع يمكنك معـرفه جميـع اوامر الـ RubyGems وذلـكعن طريق كتابه gem -h , والتي ستعرض لـك مجموعه من الاوامر منهـا :
gem help commands
والتي تعرض جميع اوامر الـ RubyGems مع نبذه مختصره عن كل واحده منهـا .
وبعـد الحديث في هـذا المقـال المبسـط عن الـ RubyGems قـد يتسال البعض منـا “كيف يمكنني استخـدام الـ gems بعـد تنزيلهـا ؟”
الاجابه بكـل سهـوله هو ان تقـوم باستخـدام العباره require يتبعهـا اسـم الـ gem الذي قمت بتنزيله وكانه مكتبه عاديـه من مكتبات اللغـه , كمـا ساوضـح في المثـال القـادم .
– في البدايه نقـوم بتحميـل المكتبه id3 والتي كمـا ذكرنا سابقـا تعمل علي عرض اسم المغني واسم الالبوم واسم الاغنيه وسنه الانتاج لملف بامتداد Mp3 , وذلك عبر كتابه امر التنزيـل :
sudo gem install id3lib-ruby
وبعـد تنزيل المكتبه بنجـاح نقـوم بكتابه اسكربت صغيـر ليعمـل علي توضيـح كيفيه عمـل تلك المكتبه .
#!/usr/bin/env ruby
require "id3lib"
artist_album = ID3Lib::Tag.new('3.mp3')puts <<-ARTISTArtist--(#{artist_album.artist}) Title--(#{artist_album.title})
Album--(#{artist_album.album}) Year--(#{artist_album.year})
ARTIST
نلاحظ اننـا قمنـا باستدعاء الـمكتبه id3lib باستخدام الامر require في بادي الامـر وكانهـا مكتبه عاديه من مكتبات اللغـه ثـم يليها بعـد ذلـك انشـاء object ثم استدعـاء الدوال مع الامر puts ليعرض لنـا النتيجـه .
– وعندمـا تقـوم بتنزيل الـ gems المختلفه يحمل معهـا اوتوماتيكيا الـDocumentaion الخـاص بهـا او بمعني اخـر يحمل معهـا بينات عن الدوال الموجوده بهـا وامثله لتمكنك من فهم كيفيه عمل تلك المكتبات ,والتي بامكانك عرضهـا وكانها سـايت انترنت امـامك وذلـك عن طريق كتابه الامـر :
gem server
والتي ستقـوم بعمـل سيرفر علي جهـازك للتمكن من عرض الـDocumentaion للـ gems المختلفه الموجوده علي جهازك علي هيئه صفحـه انترنت وذلك عن طريق كتابه هـذا
اللينك في المتصفـح الخاص بـك:http://localhost:8808
وفي نهايـه المقـاله البسيطـه دي اتمني ان اكـون قـد وفقت في توضيـح ما هي الـ RubyGems وجـزء من اوامرهـا الكثيره .
-وبامكانـك الحصـول علي المزيد من اللينكـات التي تخص الموضوع وبعضهـا يحتوي علي بعض المشاكل التي قـد تواجهك مع كيفيه حلهـا وهي :
http://www.rubygems.org/#الموقع الرسمي
http://www.linuxjournal.com/article/8967
http://webnuwan.blogspot.com/2008/01/fixing-broken-rubygems-while-upgrading.html

http://bparanj.blogspot.com/2007/12/upgrading-rubygems-to-101.html

http://blog.jason-palmer.com/blog/2008/01/26/top-five-most-useful-ruby-gems/
http://pupeno.com/2008/02/01/playing-with-ruby/
http://21croissants.blogspot.com/2008/01/update-rubygems-to-latest-version.html
http://www.lunawebs.com/blog/2008/01/31/problems-with-ruby-gems-after-rails-upgrade/
وفي النهايـه انصـح الجميـع بكتاب Apress.Practical.Ruby Gems

3 تعليقات to “ماذا تعرف عن روبي جيمس”

  1. عبدالرحمن Says:

    ألف شكر على الشرح الوافي،
    نحتاج كثيراً ملثل هذه الدروس

    ممتن لك كثيراً.. : )

  2. Mutati0N Says:

    عفـوا حبيبي عبد الرحمن ,
    وان شاء الله ستجد المزيد من المقالات االوافيه باذن الله دائمـا
    نورت بزيارتك😀


  3. […] الروبي – The little Book of Ruby 2nd Edition * روبـي – What do you know about Ruby – What do you Know about RubyGems – Ruby 1.8.7 * روبـي اون ريلز – What do you know about Ruby On Rails – Rails 2.1 is now […]


أضف تعليقاً

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

WordPress.com Logo

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

صورة تويتر

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

Facebook photo

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

Google+ photo

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

Connecting to %s

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