PDA

View Full Version : دانلود آموزش نصب و راه اندازی زبان Ruby on Rails



sajjadgameactor
یک شنبه 10 اسفند 1393, 18:31 عصر
سلام خدمت دوستان و برنامه نویسان
من توی تالار جستجو کردم و نتونستم جایی که مختص زبان Ruby باشه رو پیدا کنم. خیلی عجیبه که این زبان در کشور ما نتونسته وارد بشه ، شاید یکی از دلایل اصلیش مشکلات اولیه برای راه اندازیش ( مخصوصا بر روی ویندوز ) هست. اما با کمی جستجو متوجه میشید که یکی از زبان های زنده دنیا هست و جایگاهی در حد paython داره.

با توجه به اینکه آموزش مختصر و مفید و در عین حال جامع و کاملی :D برای این زبان نتونستم به فارسی پیدا کنم تصمیم گرفتم که یک آموزش مناسب برای نصب و راه اندازی اون بنویسم و در اختیار علاقمندان قرار بدم تا این زبان هم بتونه در کشور جایگاه خودش رو پیدا کنه.
آموزش به صورت PDF از لینک های زیر قابل دانلود هست. در پست بعدی متن آموزش رو به صورت پست هم قرار میدهم.

لینک مستقیم :
http://yoozdownload.ir/cloud/367

لینک پرشین گیگ :
http://sajjadgameactor.persiangig.com/Ruby%20on%20linux.pdf/download

sajjadgameactor
یک شنبه 10 اسفند 1393, 18:36 عصر
آموزش نصب و راه اندازی Ruby on rails

نویسنده : سجاد کردانی مقدم

Email: sajjad.moghadam@ut.ac.ir



کلمات کلیدی : آموزش نصب Ruby ، آموزش نصب Rails ، آموزش استفاده از VCM ( Version control manager) ، آموزش کار با git ، ساخت Hello world در Ruby on Rails ، ایجاد SSH key ، کار با سایت bitbucket


مقدمه

این آموزش بر اساس کتاب آموزش کار با زبان Ruby on rails نوشته Michael Hartl نوشته شده است که نسخه آنلاین آن را میتوانید از لینک زیر ببینید
https://www.railstutorial.org/book

Ruby چیست ؟

Ruby یک اسکریپت قدرتمند است که به دلیل ویژگی هایی که دارد بسیار محبوب شده است و جزو برترین زبان ها قرار گرفته است. هر چند در ایران این زبان کمتر شناخته شده است اما محبوبیت آن در جهان بسیار بالا است و در کنار زبان python جزو پرطرفدارترین اسکریپت ها قرار میگیرد.

Ruby on rails چیست ؟

Rails و یا به عبارتی دیگر Ruby on rails یک چارچوب قدرتمند برای زبان Ruby است که بر اساس مدل MVC به منظور توسعه نرم افزارهای تحت وب ایجاد شده است و در واقع سکوی پرتاب Ruby است. زبان روبی چارچوب های دیگری نیز دارد اما برترین و پرطرفدارترین چارچوب آن Rails است به گونه ای که بسیاری از افراد تفاوت Ruby on rails با Ruby را نمیدانند.



*** نکاتی مهم پیش از نصب ***

این آموزش برای نصب Ruby و Rails بر روی سیستم عامل Linux نوشته شده است ، اما این اسکریپت را میتوان بر روی ویندوز نیز نصب کرد، بهترین راه برای نصب این اسکریپت بر روی ویندوز استفاده از railinstaller است که تمام بخش های مورد نیاز را نصب میکند. اما توصیه میشود که از نصب Ruby بر روی ویندوز بپرهیزید ، زیرا به مشکلات زیادی در حین کار خواهید خورد که شما را از این کار پشیمان میکند.
ما برای راه اندازی Ruby on rails بر روی لینوکس لازم است تا بسته های مختلفی را نصب کنیم. این بسته ها از طریق command line لینوکس نصب میشوند. پس از نصب هر کدام از بسته ها که در ادامه آموزش های آن نوشته شده است حتما از اینکه بسته درست نصب شده است اطمینان پیدا کنید و سپس به مرحله بعد بروید ، به دلیل اینکه بسته ها از اینترنت باید دانلود شوند و بسیاری مشکلات دیگر ممکن است به درستی نصب نشوند ، در این آموزش سعی شده است تا خطاهای احتمالی را رفع کنیم ، اما در صورتی که به خطایی خوردید که در این آموزش به آن پرداخته نشده بود باید خود دست به کار شده و در اینترنت خطای خود را جستجو کنید. به دلیل متداول بودن این خطاها با یک جستجو سریعا به جواب خواهید رسیددر سایت های خارجی بهترین راه حل آن به سادگی قرار داده شده است و میتوانید از آنها استفاده کنید.

برای کنترل اینکه بسته به درستی نصب شده است پس از نصب ورژن آن را کنترل کنید برای این کار باید از دستور –v و در برخی موارد - -version استفاده کنید مثل :
· Ruby -v
· Git --version


چند دستور اصلی در Command line لینوکس

· cd : برای جابجا شدن بین فولدرها از دستور CD استفاده میشود ، اگر جلوی آن چیزی نوشته نشود به یک مرحله قبل برده میشود و در صورتی که جلوی آن نام فولدری نوشته شود وارد آن میشوید مثل CD Desktop
· ls : برای نمایش محتویات فولدری که هم اکنون در آن هستیم
فولدرهایی که با "." در ابتدای آنها نوشته میشوند به صورت پیش فرض مخفی ( hidden ) هستند مثل .ssh و برای نمایش آنها در explorer موجود در لینوکس باید نمایش فایل های hidden را فعال کنیم. برای این کار زمانی که explorer فوکوس را در اختیار دارد موس را به نوار بالای صفحه لینوکس برده تا گزینه های file,edit و.. ظاهر شوند سپس از گزینه view نمایش فایل های مخفی را تیک بزنید.
لینوکس بر خلاف ویندوز به حروف بزرگ و کوچک حساس است


روش نصب

بهترین راه برای نصب ruby on rails بر روی لینوکس این است که ابتدا rvm(ruby version manager) نصب شود. با استفاده از این پکیج میتوان همزمان چندین ورژن از ruby را در سیستم نصب کرد و آخرین ورژن ruby را به سادگی به سیستم اضافه کرد.
برای نصب rvm بهتر است ابتدا پکیج های فعلی در سیستم عامل لینوکس آپدیت شوند
sudo apt-get update


نصب Curl

سپس curl نصب شود که اسکریپتی است که به منظور انتقال اطلاعات بین سرور و کلاینت ایجاد شده است ( یک دانلود منیجر تحت command line در نظر بگیرید )
sudo apt-get install curl
* برای اطمینان از نصب ورژن Curl را کنترل کنید.



نصب RVM

پس از نصب curl به کمک آن میتوان RVM را نصب کرد برای نصب RVM نیاز است تا یک Public key برای آن تعریف شود. با دستور زیر این کلید در سیستم شما تعریف میشود.

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

پس از آن با دستور زیر RVM را نصب کنید ( حدود 10-15 مگ دانلود میشود )

\curl -L https://get.rvm.io | bash -s stable

پس از نصب rvm برای اینکه توسط سیستم شناخته شود باید دستور زیر را وارد کنید(به جای username ، نام یوزر خود را بنویسید)

source /home/UserName/.rvm/scripts/rvm

پس از آن یک بار از ترمینال خارج شوید و دوباره به آن وارد شوید.

* برای اطمینان از نصب ورژن RVM را کنترل کنید.



نصب Ruby

پس از نصب RVM به کمک آن ابتدا RUBY را نصب میکنیم

rvm install ruby

پس از نصب RUBY باید به سیستم بگوییم که آخرین ورژنی که هم اکنون نصب شده است را به عنوان ورژن Default در نظر بگیرد ( به جای 2.2.0 باید آخرین ورژنی که با دستور بالا نصب شده است را بنویسید )

rvm --default use ruby-2.2.0در صورتی که با error زیر روبرو شدید

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

مراحل زیر را انجام دهید ( ساختار لینوکس به این صورت است که برنامه ای که هم اکنون فوکوس را در اختیار دارد نوار بالای سیستم عامل را در اختیار میگیرد. یعنی وقتی ترمینال فوکوس را در اختیار دارد با بردن نشان گر موس به نوار بالا گزینه های file,edit و... که ظاهر میشوند مربوط به ترمینال است. )

Open Terminal
Select Edit -> Profile Preferences
Select tab: Title and Command
Check box 'Run command as a login shell'
Restart terminal

در صورتی که gem همراه ruby نصب نشد از دستور زیر استفاده میکنیم ( قاعدتا باید نصب شده باشد و نیازی به این دستور نیست و میتوانید با دستور gems -v کنترل کنید که نصب است یا نه )

rvm rubygems current



نصب Rails

در مرحله بعد rails با دستور زیر نصب میشود

gem install rails



نصب یک Editor

بهتر است که یک Editor در محیط لینوکس نصب شود تا از آن برای کد نوشتن استفاده کنیم. برای نصب ادیتور sublime دستورات زیر را انجام میدهیم

sudo add-apt-repository ppa:webupd8team/sublime-text-2

sudo apt-get update

sudo apt-get install sublime-text



ایجاد پروژه Rails

مرحله بعدی ایجاد پروژه است. برای ایجاد پروژه ای با ساختار ruby on rails از دستور زیر استفاده میکنیم ( به جای Project Name نامی که دوست دارید پروژه شما داشته باشد را وارد میکنید )

Rails new ProjectName


پوشه ای با نام پروژه ایجاد میشود که دارای فایل ها و فولدرهایی است که یک ساختار MVC را میسازد ، یکی از این فایل ها gemfile است که در واقع gem هایی که پروژه به انها نیاز دارد در این فایل نامشان نوشته شده است ( gem ها در ruby on rails بسته هایی هستند که پروژه میتواند از آن ها استفاده کند ) ، با اجرای دستور بالا دستور bundle install نیز به صورت خودکار اجرا میشود که وظیفه نصب gem ها را دارد. اما در حین پروژه میتوان این فایل را تغییر داد و با اجرای دستور bundle install تغییرات جدید اعمال میشود. در کتاب hart گفته شده که برای برنامه اولیه ی hello world این فایل را ( gemfile) به صورت زیر تغییر دهیم ( هر چند نیازی به این کار معمولا نیست )


source 'https://rubygems.org'

gem 'rails', '4.2.0'
gem 'sass-rails', '5.0.1'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc

group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end

برای آنکه پروژه ما در محیط مرورگر نشان داده شود باید هنگامی که در پوشه پروژه هستیم دستور را اجرا کنیم.

rails server

پس از آن میتوانیم پروژه را بر روی آدرس لوکال و بر روی پورت شماره 3000 ببینیم.

127.0.0.1 : 3000


ایجاد یک Hello world در ruby

مرحله بعدی تغییر پروژه است تا یک hello world نشان داده شود. برای این کار باید 2 فایل را تغییر دهیم.
فایل application_controler.rb ( در پوشه controller در پروژه وجود دارد )


class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception

def hello
render text: "hello, world!"
end
end


2) config/routes.rb


Rails.application.routes.draw do


# You can have the root of your site routed with "root"
root 'application#hello'


end

پس از این کار با رفرش کردن صفحه مرورگر ( آدرس 127.0.0.1:3000 ) باید یک نوشته Hello World دیده شود.



نصب و کار با Git

ابتدا با دستور زیر git را نصب میکنیم

Sudo apt-get install git

* ورژن Git را برای اطمینان از نصب درست کنترل کنید.

سپس باید آن را برای بار اول کانفیگ کنیم ( خط های سوم و چهارم اختیاری است ولی بهتر است آن را نیز بزنید )

git config --global user.name "Your Name"
git config --global user.email your.email@example.com
git config --global push.default matching
git config --global alias.co checkout


برای ایجاد یک repository برای پروژه ، ابتدا به مسیر پروژه خود رفته و از دستور زیر استفاده میکنیم

git init

با دستور زیر تمام فایل های درون پروژه به repo اضافه میشود ( به A که با حرف بزرگ نوشته شده است دقت کنید )

git add –A

این تغییرات در stage قرار میگیرند و برای ثبت شدن باید commit شوند.

git commit –m "Hello, it is my first commit "

همراه با commit کردن حتما باید پیغامی نیز نوشته شود که این commit را توضیح دهد. در صورتی که از –m استفاده کنیم این پیغام را بعد از دستور میتوانیم بنویسیم و اگر –m را استفاده نکنیم پس از اجرای این خط یک ادیتور باز میشود تا پیغام را در آن بنویسیم.

اگر تغییر اشتباهی انجام دادیم ، میتوانیم دوباره از روی repository آن را برگردانیم برای این کار از دستور checkout استفاده میکنیم

git checkout –f

-f باعث میشود تا اجبارا تمام فایلهایی که تغییر کرده اند به ورژن اصلی برگردانده شوند.

Bitbucket به عنوان repository آنلاین

bitbucket سایتی است که امکان ایجاد یک repo مرکزی را به ما میدهد و از اسکریپت Git پشتیبانی میکند. مزیت bitbucket نسبت به github این است که اجازه میدهد تا یک پروژه private به صورت رایگان بر روی آن تعریف کنیم.


ایجاد یک ssh key

برای اینکه هر بار که میخواهیم با bitbucket به صورت امن ارتباط برقرار کنیم ، نیاز نباشد تا پسورد خود را وارد کنیم باید از SSH key استفاده کنیم.
ورژنی از SSH به صورت پیش فرض در لینوکس نصب است و با کنترل ورژن از این بابت مطمئن شوید و در صورت وجود نداشتن دستورات مورد نیاز برای نصب را از اینترنت دنبال کنید.
برای ایجاد یک ssh-key باید یک فولدر .ssh و یا 2 فایل ایجاد میشود که یکی شامل private key و دیگری شامل public key است. در واقع روال کلی به این صورت است.
· با دستور ssh-keygen دو فایل ایجاد میشود که شامل کلیدها است ( در برخی موارد یک فولدر .ssh ایجاد میشود و این فایلها در آن قرار میگیرد )
· با دستور ps -e | grep [s]sh-agent نشان داده میشود که ایا agent ی برای هندل کردن کلید وجود دارد یا نه
· در صورت وجود نداشتن agent با دستور ssh-agent /bin/bash یک مورد جدید ساخته میشود
· با دستور زیر کلید خصوصی را به agent میدهیم ( ابتدا به فولدری که ssh key در ان قرار دارد بروید )

ssh-add privateKeyFileName

پس از آن public key را در bitbucket وارد میکنیم تا بتوانیم بدون نیاز به پسورد به آن متصل شویم.برای این کار با انتخاب آواتار که در سمت راست سایت نشان داده شده است یک منو باز میشود و گزینه manage account را انتخاب میکنیم و در صفحه ای که به آن میرویم از منوی سمت چپ ssh-key را انتخاب میکنیم و سپس در صفحه ای که باز میشود آن را وارد میکنیم.


ایجاد repository در bitbucket

در مرحله بعد یک repository در bitbucket میسازیم. برای این کار در نوار بالای سایت دکمه create را زده و موارد خواسته شده را وارد میکنیم ، در صورتی که میخواهید repo شما به صورت private باشد تیک گزینه This is a private repository را بزنید.


اتصال git به bitbucket

Git یک ساختار چند مرحله ای دارد و همانطور که قبلا انجام دادیم با دستور Add فایل ها به آن اضافه میشوند ، با دستور Commit این فایل ها در Repository ما به صورت Local قرار میگرند و ثبت میشوند به طوری که بعد از آن میتوانیم آنها را از روی git دوباره برداریم. مرحله بعدی قرار دادن پروژه در یک Repository خارج از سیستم ما و یا به عبارتی یک remote repository است.
با استفاده از دستور( باید در فولدر پروژه باشیم )

git remote add origin git@bitbucket.org:<webSiteUsername>/repoName.git

به git میگوییم که repository remote خود را repoName ( قبلا در bitbucket ساختیم ) از سایت bitbucket قرار دهد. در واقع در این دستور به Git میگوییم که repo ای که در سایت bitbucket ساختیم را به عنوان یک remote repo اضافه کند و نام Origin را به آن اختصاص دهد ( هر نام دیگری میتوانستیم قرار دهیم ) تا از این پس هر وقت نام Origin را بردیم git بداند که منظور ما repo گفته شده در سایت bitbucket است.
پس از آن با دستور زیر تمام فایل های پروژه را به repo اصلی بر روی bitbucket میفرستیم ( Push میکنیم )

git push -u origin --all


کار با دستورات git

برای ایجاد یک شاخه یا branch از دستور زیر استفاده میکنیم

git checkout -b modify-README

با این دستور ما به git گفتیم که یک branch را ( -b ) با نام modify-READMY برای ما ایجاد کند.
برای اینکه فایل readme توسط bitbucket شناخته شود باید پسوند آن را به md تغییر دهیم. اگر با استفاده از محیط گرافیکی لینوکس این کار را بکنیم git فکر میکند که ما فایل قبلی را حذف کردیم و یک فایل جدید اضاف کردیم که جزو پروژه نیست و باید آن را جزو پروژه معرفی کنیم. یا اینکه میتوانیم از دستور زیر استفاده کنیم.

git mv README.rdoc README.md

پس از این کار تغییرات را commit میکنیم تا در شاخه فعلی که در آن هستیم ( modify-READMY ) ثبت شود.

git commit -a -m "Improve the README file"

سپس به شاخه master برمیگردیم و شاخه modify-READMY را با آن mearge میکنیم.

git checkout mastergit merge modify-README

پس از انجام این کار میتوانیم شاخه modify-readmy را پاک کنیم

git branch -d modify-README

حال ما در شاخه master یک تغییر ایجاد کردیم و میخواهیم آن را به bitbucket بفرستیم که برای این کار از دستور زیر استفاده میکنیم

git push origin master


استفاده از یک Git GUI

در صورتی که ترجیح میدهید به جای استفاده از دستورات command line از یک محیط گرافیکی برای کار با دستورات git استفاده کنید میتوانید یک git gui بر روی سیستم خود نصب کنیم.کسانی که از لینوکس به عنوان سیستم عامل خود استفاده میکنند معمولا با دستورات command line آشنای بیشتری دارند و استفاده از دستورات git در این محیط را ترجیح میدهند ، اما در صورتی که از ویندوز استفاده میکنید و یا علاقه دارید تا از یک واسط کاربری برای برقراری ارتباط با git استفاده کنید میتوانید از آدرس زیر یک GUI برای کار با git دانلود کنید.
http://git-scm.com/downloads/guis

قرار دادن پروژه بر روی سایت Heroku

سایت Heroku از دیتابیسی با نام PostgreSQL استفاده میکند ، به همین دلیل ما نیاز داریم تا gem مورد نیاز برای ارتباط برقرار کردن با این نوع دیتابیس را به پروژه خود اضافه کنیم. به همین دلیل خطوط زیر را به انتهای gemfile خود اضافه میکنیم.

group :production do gem 'pg', '0.17.1' gem 'rails_12factor', '0.0.2'end

rails_12factor نیز یک gem است که توسط Heroku برای مدیریت محتویات استاتیک مثل عکس ها مورد استفاده قرار میگیرد. پس از تغییر gemfile لازم است تا با دستور bundle install تغییرات را اعمال کنیم. چون این تغییرات را در سیستم لوکال نیاز نداریم از فلگ -without production استفاده میکنیم. درواقع ما با این کار چیز جدیدی بر روی سیستم خود اضافه نمیکنیم اما استفاده از این دستور به منظور آپدیت کردن فایل gemfile.lock مورد نیاز است.

bundle install --without production

تغییرات اعمال شده را با دستور زیر commit میکنیم.

git commit -a -m "Update Gemfile.lock for Heroku"

نصب heroku command

ابتدا در سایت www.heroku.com (http://www.heroku.com/) ثبت نام نمایید. از آدرس https://toolbelt.heroku.com/ دستور مورد نیاز برای نصب heroku command را مشاهده نمایید. این دستور برای سیستم عامل های مختلف متفاوت است و برای Ubuntu به شکل زیر است.
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
با استفاده از دستور زیر از نصب heroku command اطمینان پیدا کنید.

heroku version


اتصال به سایت heroku

با استفاده از دستور زیر به اکانتی که در heroku ساختیم متصل میشویم ( یوزر نیم و پسوردی که برای سایت ساختید از شما خواسته میشود. )

heroku login

پس از آن نیاز است تا ssh key ای که برای خود ایجاد کردیم به heroku بدهیم. با استفاده از دستور زیر این کار انجام میشود و به صورت خودکار heroku کلید (public key )موجود در پوشه .ssh را برمیدارد.

heroku keys:add

سپس با دستور زیر یک مکان برای قرار دادن پروژه خود در سرور heroku ایجاد میکنیم. توجه شود که در زمان زدن این دستور در پوشه پروژه قرار داشته باشید تا heroku به صورت خودکار خود را به عنوان یک remote repository به git اضافه کند.

heroku create

پس از اجرای این دستور آدرسی برای شما نشان داده میشود که از طریق آن میتوانید نتیجه ی پروژه خود را مشاهده کنید همچنین با دستور زیر یک صفحه مرورگر برای شما باز میشود که ادرس در آن وارد شده است.

heroku open


اتصال پروژه به سایت heroku

ما کارهای اصلی را برای اتصال در قدم های قبل انجام دادیم و هم اکنون heroku به عنوان یک remote repository شناخته میشود و با دستور زیر اطلاعات بر روی آن قرار میگیرد.

git push heroku master

با استفاده از دستور rename میتوانید آدرس پروژه خود را در سایت heroku به دلخواه تغییر دهید

heroku rename sajjadrubyproject


انتهای فصل اول کتاب آموزش ruby on rails نوشته مایکل هارتل