המדריך המלא לרוביסט המתחיל

רציתם להתחיל לעבוד בריילס ונתקעתם בשלב ההתקנה? זהר ארד מדריך את הרוביסט המתחיל כיצד להתקין את רובי וריילס בפשטות ובמהירות.

Rails is Love הזמזום סביב רובי וריילס מתחזק והולך בעת האחרונה, ולאחר שליוותי חבר בתהליך ההתקנה (המייגע) של רובי וריילס, החלטתי שהגיע הזמן לכתוב מדריך התקנה שלם למי שרוצה להתחיל לעבוד עם רובי וריילס.המדריך הזה לא מתיימר ללמד רובי או ריילס (ישנם מדריכים וספרים מצויינים לכך), אלא לחסוך את כאבי הראש וחבלי הלידה של תהליך ההתקנה וההכנה של מחשבכם לפיתוח עם רובי.

הקדמה

לפני שנצלול לתהליך ההתקנה, מן הראוי שנערוך הכרות קצרה עם מושגים מעולם הרובי והריילס.

  • רובי – שפת פיתוח דינאמית לשימוש כללי
  • ריילס – תשתית לפיתוח אתרים הכתובה ברובי
  • Ruby Gems – תוספים לשפת רובי המרחיבים את היכולות הבסיסיות של השפה. נקראים gems בקיצור
  • Git – מנהל גרסאות קוד מבוזר הנפוץ מאוד בעולם פיתוח התוכנה בכלל ובעולם הרובי בפרט
  • Bundler – מנהל תלויות וגרסאות של gems. כלול בריילס מגרסה 3 ומעלה ומשמש ככלי העיקרי להגדרת ה gems הכלולים בפרוייקט ריילס מסויים
  • RVM – מנהל גרסות רובי – כלי להתקנה וניהול גרסאות מקבילות של רובי ואוספי gems

תהליך התקנה –  נקודות עיקריות

  1. הכנת המחשב להתקנה – התקנת תוכנות וספריות הדרושות להתקנה והרצה תקינה של רובי וריילס
  2. התקנת סביבת הריצה של שפת רובי ומנהל התוספים (ruby gems)
  3. התקנה של מסד הנתונים MySQL
  4. התקנה של ריילס

נכון לכתיבת שורות אלו, הגרסאות האחרונות של רובי, ריילס ו-MySQL הן:

  • ruby-1.9.2-p180
  • Rails 3.0.9
  • MySQL Community Server 5.5.1.3

שלבי ההתקנה במדריך נבדקו ונמצאו תקינים עבור הגרסאות הנ”ל. למרות ששינויים בגרסאות אינם אמורים לשנות מהותית את תהליך ההתקנה (למעט MySQL כמפורט בהמשך), ייתכנו אי-התאמות מסויימות ולכן, במידה ונתקלתם בבעיה עם צירוף מסויים של גרסאות רובי, ריילס, MySQL ע”ג מערכת הפעלה מסויימת, נסו לחפש עזרה בגוגל.

התקנה ע”ג חלונות

תהליך ההתקנה המפורט להלן בוצע ע”ג חלונות 7 (64 סיביות). למרות שיתכנו שינויים קלים בין גרסאות שונות של חלונות, עקרונות ההתקנה אמורים להיות זהים.

הכנת המחשב להתקנה.

בחלונות אין צורך בהתקנה מקדימה של תוכנות כלשהן, אך מומלץ להתקין את Git כדי לאפשר תמיכה בתוספים לרובי ולריילס הזמינים מ Github וכן כדי שנוכל לנהל את גרסאות הקוד של הפרוייקט שלנו בצורה טובה. התקנת Git עבור חלונות זמינה בקישור הבא: http://code.google.com/p/msysgit/

התקנת רובי 1.9.2

  1. הורידו את קובץ ההתקנה של רובי 1.9.2 מאתר Ruby Installer בכתובת http://rubyinstaller.org/downloads/ . נכון למועד כתיבת המדריך, הגרסה האחרונה של רובי 1.9.2 היא 1.9.2-p180
  2. הריצו את קובץ ההתקנה ועקבו אחר ההוראות במסכי אשף ההתקנה.
    • סמנו את האפשרות להוסיף את קובצי ההרצה של רובי (ruby executables) לנתיב ההרצה (PATH) של מחשבכם וכן את אפשרות השיוך של קבצים בסיומת rb להתקנה הנוכחית של רובי.
  3. הורידו את ערכת הפיתוח לרובי (Development Kit) – ערכה זו מכילה קבצים המאפשרים תמיכה בהתקנה של תוספים לרובי המצריכים הידור.
    • לאחר הורדת ערכת הפיתוח לרובי, הריצו את קובץ ההתקנה, בחרו תיקיית אחסון לקבצים המצויים בו (זהו קובץ ZIP) ופתחו לתיקייה זו את הקובץ
    • פתחו את שורת הפקודה של חלונות ע”י run > cmd
    • גשו לתיקיה אליה פתחתם את קבצי ערכת הפיתוח דרך שורת הפקודה והריצו את הפקודות הבאות:
    • ruby dk.rb init
    • ruby dk.rb install
    • הוראות התקנה לערכת הפיתוח לרובי ניתן למצוא בקישור הבא – https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
  4. לאחר התקנה מוצלחת של רובי ושל ערכת הפיתוח אנו מוכנים לעדכן את מנהל התוספים של רובי. בשורת הפקודה הריצו את שתי הפקודות הבאות (הראשונה תעדכן את מנהל התוספים והשנייה תעדכן את התוספים שהותקנו יחד עם רובי):
    • gem update –system
    • gem update

התקנת שרת MySQL

  1. הורידו את אשף ההתקנה של MySQL Community Server לחלונות מאתר MySQL בקישור הבא: http://mysql.com/downloads/
  2. הריצו את אשף ההתקנה, בחרו באפשרות התקנה מלאה (complete) ומלאו אחר ההוראות
  3. בסיום ההתקנה, בחרו להריץ את אשף התצורה האוטומטי ל MySQL.
    • בחרו בתצורה סטנדרטית במסך הראשון
    • במסך השני, סמנו את האפשרות להוסיף את קובצי ההרצה של MySQL לנתיב הראשי של מחשבכם (PATH)
    • במסך השלישי בחרו סיסמת root חדשה

התקנת תוסף MySQL לרובי

ריילס בגירסה 3 ומעלה עובד עם מתאם ל MySQL הנקרא mysql2. לאחר שהתקנו בהצלחה את שרת MySQL אנו יכולים להתקין את המתאם באמצעות הפקודה הבאה אותה יש להריץ משורת הפקודה:

gem install mysql2 -v=0.2.6 -- '--with-mysql-dir=”C:\Program Files\MySQL\MySQL Server 5.5”’

אנא שימו לב לנקודות הבאות:

  1. יש להתקין את תוסף mysql2 בגרסה 0.2.6 מכיוון שגרסאות אחרות עדיין לא נתמכות היטב תחת חלונות
  2. אנו מעבירים לפקודת ההתקנה את נתיב ההתקנה של שרת MySQL באמצעות דגל –with-mysq-dir ולכן, במידה והתקנתם את MySQL לנתיב שונה, עליכם לשנות את הנתיב שמועבר לפקודת ההתקנה כדי לשקף את הנתיב בו מותקן MySQL על המחשב שלכם

התקנה ע”ג לינוקס

תהליך ההתקנה המפורט להלן בוצע ע”ג אובונטו 11.04 ובשונה מהתקנה ע”ג חלונות, נשתמש בלינוקס בכלי הנקרא RVM המאפשר לנו להתקין גרסאות מקבילות של רובי בצורה קלה ופשוטה. שימו לב שההוראות להלן כתובות עם סימן $ לפניהן. סימן זה מציין את שורת הפקודה בלינוקס ואין להעתיקו כאשר מריצים את הפקודות.

הכנת המערכת להתקנה

לפני שנתקין את רובי, עלינו להתקין מספר ספריות הדרושות לתהליך התקנה תקין של רובי. פתחו את הטרמינל והריצו את הפקודה הבאה:

$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev git-core git curl vim

התקנת RVM

בשורת הפקודה, הריצו את הפקודות הבאות (ההערות לפקודות נכתבו באנגלית כדי להמנע מבלבול בשל כיווני טקסט מימין לשמאל):


$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" >> ~/.bashrc

הוראות התקנה מפורטות מודפסות בסיום תהליך ההתקנה של RVM וזמינות גם באתר הרשמי בכתובת http://beginrescueend.com/rvm/install/.

שימו לב, שבניגוד להתקנה רגילה של רובי ו rubygems הדורשת הרשאות מנהל, ומתקינה את רובי ו rubygems תחת תיקיות הזמינות לכל המשתמשים, RVM יתקין את רובי ו rubygems תחת תיקיית הבית שלכם. מרגע שהתחלתם לעבוד עם RVM אין צורך להתקין gems עם הרשאות מנהל. לכן, אם אתם נתקלים בהוראות הכוללות פקודת sudo עליכם להורידה מתחילת הפקודה.

התקנת רובי

סגרו ופתחו מחדש את הטרמינל כדי לטעון את סקריפט הרצה של RVM והריצו את הפקודות הבאות:


$ rvm install 1.9.2
$ rvm use 1.9.2
$ gem update --system
$ gem update

התקנת MySQL ותוסף MySQL לרובי

התקנת MySQL באובונטו נעשית דרך מנהל החבילות apt וכדי שנוכל להתקין את המתאם של רובי ל MySQL עלינו להתקין גם את קבצי הפיתוח של MySQL. כל זאת נבצע ע”י הרצת הפקודות הבאות:


$ sudo apt-get install mysql-server mysql-client libmysqlclient-dev
$ rvm use 1.9.2@global
$ gem install mysql2

התקנת ריילס

למעשה, ריילס הוא תוסף בר-התקנה כמו כל תוסף אחר לרובי ומנוהל באמצעות מנהל התוספים rubygems. התקנה רגילה של ריילס זהה בחלונות ובלינוקס ונעשית ע”י הרצת הפקודה הבאה (משתמשי לינוקס, אנא קראו את החלק על RVM לפני התקנת ריילס):

$ gem install rails

עבודה עם RVM

בלינוקס (או למעשה בכל פלטפורמה שתומכת ב RVM) אנו יכולים לנהל אוספים נפרדים של rubygems עבור התקנה ספציפית של רובי. התכונה הזו שימושית למצבים בהם יש לנו פרוייקטים רבים ברובי כאשר עבור כל פרוייקט משתמש בגרסאות שונות של rubygems. לדוגמה, ייתכן שניצור כעת פרוייקט בריילס 3.0.9 ובעוד מספר חודשים, כאשר ריילס 3.1 תצא, ניצור פרוייקט אחר עם ריילס 3.1.

 

כדי להמנע מערבוביה וחוסר סדר, אנו יכולים למדר אוסף rubygems עבור פרוייקט ספציפי באמצעות RVM ובכך להימנע מאי-סדר וגרסאות חסרות או לא נכונות בעתיד.

מידור אוספי rubygems ב RVM נעשה באמצעות כלי הנקרא gemsets. בכל התקנה של רובי תחת RVM ישנו gemset גלובלי בו נוכל להתקין gems שיהיו זמינים לכל האוספים תחת התקנת רובי מסויימת.

לצורך ההדגמה, נתקין את bundler וספריות ה debugging של רובי תחת אוסף ה gems הגלובלי, ולאחר מכן ניצור gemset עבור פרוייקט ריילס.

פתחו את הטרמינל והריצו את השורות הבאות:


$ rvm 1.9.2@global # change to global gemset
$ gem install bundler ruby-debug-base19 ruby-debug19 ruby-debug-ide19
$ rvm gemset create rails-3.0.9 # create a gem set for rails 3.0.9 project
$ rvm 1.9.2@rails-3.0.9
$ gem install rails

שימו לב לתחביר פקודת rvm שכולל את גרסת הרובי וה gemset הרצוי בפורמט ruby@gemset.

עכשיו נוכל ליצור פרוייקט ריילס חדש באמצעות הפקודה:

$ rails new my_project -d mysql

לאחר שיצרנו את הפרוייקט, נוכל לשייכו לאוסף ה gems שיצרנו תחת RVM באמצעות שימוש בקובץ .rvmrc באופן הבא:


$ cd my_project # change to new rails project directory
$ echo ‘rvm 1.9.2@rails-3.0.9’ >> .rvmrc # add an .rvmrc file
$ cd ../my_project # load .rvmrc file in current terminal

קובץ .rvmrc המצוי תחת תיקיית הפרוייקט שלנו מגדיר עבור RVM באיזה רובי ו gemset להשתמש. כאשר אנו נכנסים לתיקיית הפרוייקט משורת הפקודה, RVM מזהה את הקובץ הזה ומפעיל את הרובי וה gemset המוגדרים בשורת הפקודה הפעילה.

Bundler

נקנח בכמה מילים על bundler המשמש לניהול תלויות gems בפרוייקט מסויים. למעשה, Bundler הוא כלי המאפשר לנו להגדיר את ה gems בהם אנו משתמשים בפרוייקט כלשהו, ולהתקינם בצורה מסודרת בסביבות שונות. נניח ויצרנו פרוייקט ריילס חדש, עליו עובדים שני מפתחים וכולל, בנוסף לריילס gem לעבודה מול פייסבוק הנקרא Koala. סביר להניח שנרצה לוודא ששני המפתחים עובדים עם אותן גרסאות של ריילס ו Koala ושנרצה להמנע מהתקנה ידנית של gems הללו בכל פעם שמצטרף מפתח חדש לפרוייקט. בנוסף, נרצה לוודא שעדכון גרסה של אחד gems הללו לא ישבור את הפרוייקט ויחלחל לכל המפתחים השותפים לעבודה.

Bundler מאפשר לנו להגדיר את כל ה gems בהם משתמש הפרוייקט שלנו באמצעות קובץ הנקרא Gemfile. לאחר שהגדרנו את שמות ה gems וגרסאותיהם, נריץ את פקודת ההתקנה של Bundler שתתקין את כל ה gems ותנעל את התצורה של הפרוייקט להתקנה שביצענו. כעת, כל מפתח שמצטרף לפרוייקט, יריץ את פקודת ההתקנה של Bundler ויקבל את תצורת הפרוייקט כפי שהוגדרה מראש.

בנוסף, Bundler יוודא שעת האתחול (boot) של הפרוייקט שלנו, כל ה gems שהגדרנו מותקנים בגרסאות הנכונות ובכך ימנע שבירה של היישום בשל גרסאות gems לא תואמות או חסרות.

לצורך הדגמה, נבחר עבור הפרוייקט שלנו את Koala לעבודה מול פייסבוק, את will_paginate לתמיכה בדפדוף שאילתות למסד הנתונים ו HAML לתמיכה בתבניות תצוגה הכתובות ב HAML.

פתחו את קובץ Gemfile המצוי בתיקייה הראשית של פרוייקט הריילס שלכם והוסיפו את השורות הבאות:


gem ‘haml’
gem ‘haml-rails’
gem ‘koala’
gem ‘will_paginate’

סגרו את הקובץ והריצו בשורת הפקודה (תחת תיקיית הפרוייקט) את הפקודה הבאה:

$ bundle install

לאחר זמן קצר, יודפס לשורת הפקודה פלט המציין ש bundler מצא את ה gems של ריילס ו mysql2 והתקין את ה gems שהוספנו לקובץ ה Gemfiles. תוכלו לראות את רשימת ה gems המלאה הזמינה תחת ה gemset הפעיל באמצעות פקודת gem list.

אם תרצו להוסיף בעתיד gems נוספים לפרוייקט, כל שתצטרכו לעשות הוא להוסיפם לקובץ ה Gemfile שלכם ולהריץ שוב את פקודת bundle install. מפתחים חדשים שמצטרפים לפרוייקט, יוכלו להביא את העותק האחרון של הפרוייקט באמצעות Git, ליצור gemset חדש תחת RVM ולהריץ את פקודת bundle install.

זהר ארד

צעיר נצחי, קיבוצניק שהדרים לעיר הגדולה, מפתח ווב וחובב טכנולוגיות מושבע. מעדיף הכל פשוט, מינימליסטי ועובד טוב ומשתדל להמנע מדברים עם הלוגו של מיקרוסופט ונהגי מוניות כעסנים. אוהב הרבה דברים חדשים ונוצצים, ספרים, פפאיות ומוזיקה מהחנות (בדיסק המקורי). מתנודד תדיר בין אקזיסטנציאליזם לאינדיבידואליזם ונכון להיום עדיין אוחז ב-fetish לא מוסבר לצבים.

הגב

6 תגובות על "המדריך המלא לרוביסט המתחיל"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* שימו לב: תגובות הכוללות מידע המפר את תנאי השימוש של Geektime, לרבות דברי הסתה, הוצאת דיבה וסגנון החורג מהטעם הטוב ו/או בניגוד לדין ימחקו. Geektime מחויבת לחופש הביטוי, אך לא פחות מכך לכללי דיון הולם, אתיקה, כבוד האדם והדין הישראלי.

סידור לפי:   חדש | ישן | הכי מדורגים
ערן בק
Guest

אחלה פוסט.
רציתי להמליץ על 2 דברים בנוסף ולשאול שאלה
– לימוד בסיס של השפה http://railsforzombies.org
– קורס מקיף ברשת ללמידת רובי http://ruby.railstutorial.org/chapters

בנוסף, רציתי לשאול:
לפני מספר שבועות בניתי אתר ברובי ורציתי לשאול האם זה מסובך להמיר את הסביבה ממסד נתונים sqlite3 ל mysql ?

תודה
ערן

תום ביגלאייזן
Guest

מגניב, לא הייתי מודע לRVM, הוא רלוונטי גם למק?

ד”א – כשאתה כותב על התקנות לאובונטו אתה יכול להשתמש בApt url וככה במקום לרשום את הפקודה פשוט לתת לינק ללחוץ עליו

זהר ארד
Guest

תום, RVM רלבנטי למק (או כל מה שהוא יוניקס / לינוקס ושות’)….

משפר את איכות החיים פלאים.

עודד
Guest

ממש לא ממליץ להתקין mysql !!!
עשיתי את הטעות הזאת בעבר ואני מתחרט עליה עד היום!
תתקינו את sqlite הדיפולט של ריילס, ותעשו לעצמכם חיים קלים.

Elan Perach
Guest

יש גם קורס בכיתה עם מורה – אולד סקול – בתל אביב – http://rorcourse.blogspot.co.il/

wpDiscuz

תגיות לכתבה: