Logo for Parsclick

سیر تا پیاز نصب روبی و روبی آن ریلز

  امید رجب آقا امید رجب آقا
  October 11, 2016 at 10:41 AM
  ۲۰ مهر، ۱۳۹۵ ساعت ۱۰:۴۱

GNU/Linux


روبی(Ruby)


روبی (Ruby) زبان برنامه نویسی قدرتمند و پویایی است که از سال ۱۹۹۰ میلادی با ورود سبک جدیدی از زبان های برنامه نویسی شی گرا دنیای نرم افزاری را به خود خیره کرد. این زبان با الهام گرفتن از سینتکس زبان های پرل ، لیسپ ،پایتون و اسمالتاک توانسته سبکی را ارائه دهد که برای دوستکاران برنامه نویسی بی دردسر و شیرین باشد. شاید به جرات این زبان در شی گرایی بی همتاست و سبک مورد استفاده از آن به مراتب شیرین تر و ساده تر از رقبایش (Python , C++ , Java) است.

روبی را یوکیهیرو ماتسوموتو (Yukihiro Matsumoto یا به اختصار Matz) ژاپونی به گونه ای ارائه داشته که پارادایم‌های گوناگون برنامه‌نویسی مانند برنامه‌نویسی تابعی، شیء گرا و بازتابی را پشتیبانی کند . این گستردگی در روبی همراه با قابلیت هایی چون متغیرهای پویا و مدیریت حافظه خودکار همراه شد و توانست خیلی از برنامه نویسان را به خود شیفته کند.

Matz دربارهٔ انگیزه‌اش برای ساخت روبی گفته :

در جستجوی زبانی بودم که از پایتون شیءگراتر و از پِرل قدرتمندتر باشد. برای همین تصمیم گرفتم خودم آن را بسازم .
او در کنفراسی در باره روبی این چنین سخن گفته:
روبی برای افزایش توان تولید و تفریح برنامه‌نویسان طراحی شده است و از اصل رابط کاربری خوب پیروی می‌کند. او تأکید می‌کند که طراحی سامانه‌ها باید بیشتر روی نیاز انسان‌ها متمرکز باشد تا رایانه‌ها. اغلب مردم، به ویژه برنامه‌نویسان، روی ماشین‌ها تمرکز می‌کنند. آن‌ها فکر می‌کنند "با انجام این کار ماشین‌ها سریعتر می‌شوند، ماشین‌ها در اجرا موثرتر می‌باشند و ..." آن‌ها بر ماشین تمرکز می‌کنند، اما در حقیقت ما نیاز داریم که به انسان‌ها توجه کنیم، اینکه چگونه آنها به برنامه‌نویسی توجه دارند و یا چگونه به اجرای برنامه‌های ماشین دقت می‌کنند.روبی برای تعقیب هدف کمترین غافلگیری بیان شدبه این معنی که زبان باید طوری رفتار کند که کمترین گیج‌کنندگی را برای استفاده‌کننده‌های آن داشته باشد. ماتسوموتو همچنین اظهار می‌دارد که هدف اولین طراحی او درست کردن زبانی که خودش از آن لذت ببرد بود. این کار با کم کردن کار برنامه‌نویس و ابهامات منطقی می‌باشد. اما کمترین غافلگیری هنوز خیلی به بیان زبان برنامه‌نویسی روبی نزدیک است. افراد ناشی شاید این را به این معنا تعبیر کنند که رفتارهای روبی سعی در متصل کردن اشتراکات رفتارهای دیگر زبان‌ها را دارد. در بحث ماه می ۲۰۰۵ در روزنامه "کامپ. لنگ. روبی" ماکسوموتو تلاش کرد که روبی را از مینیمم غافلگیری دور کند. توضیح اینکه هر شانس طراحی بعضی‌ها را متعجب می‌کند. او از استاندارد خود برای ارزیابی غافلگیری استفاده کرد. ماتسوموتو این را در یک گزارش مطرح ساخت. "همه یک پیشینه شخصی دارند، بعضی‌ها از جانب پایتون می‌آیند بعضی‌های دیگه از پرل و آن‌ها ممکن است از بعضی از جنبه‌های متفاوت زبان غافلگیر شوند. سپس آن‌ها به من می‌گویند ما از بعضی از جنبه‌های زبان غافلگیر شدیم، بنابرین روبی قانون کمترین غافلگیری را زیر پا گذاشته است. صبر کنید... هدف کمترین غافلگیری فقط برای شما نیست. این هدف به معنای کمترین غافلگیری ممکن برای بیان من می‌باشد. این به معنای کمترین غافلگیری بعد از آموزش کامل زبان است. برای مثال من قبل از اینکه روبی را طراحی کنم یک برنامه‌نویس سی‌پلاس‌پلاس بودم. من منحصراً دو، سه سال در سی‌پلاس‌پلاس برنامه نوشتم و بعد از دو سال برنامه‌نویسی با آن، هنوز مرا متعجب می‌کرد.

شاید سخنان Matz راجب روبی شما را کمی شگفت زده و روشن کند اما می خواهم مقداری از امکانات روبی را برایتان نام ببرم .

  • کاملاً شی گرا
  • داینامیک
  • نحو کوتاه و انعطاف‌پذیر
  • چهار سطح از حوزه دید متغیر شامل: global, class ,instance ,local
  • مدیریت استثناء
  • پشتیبانی از iterators و closures (بر اساس تبادل بلوکهای کد)
  • پشتیبانی محلی از regular expressions (شبیه پرل) در سطح زبان
  • سربارگزاری عملگرها
  • جمع‌آوری زباله خودکار
  • قابلیت حمل بالا
  • در همه سیستم‌عامل ها قابل پیاده‌سازی است
  • پردازش استثناء
  • سربار اپراتور
  • پشتیبانی شراکتی از multi-threading در تمام پلتفرمهای با استفاده از green threads
  • پشتیبانی کامل از یونیکد و رمزنگاریهای شخصیت چند گانه (از نسخه ۱٫۹)
  • کتابخانه‌های اشتراکی/DLL در اکثر پلتفرمها
  • introspection, reflection و meta-programming
  • اتصال بومی APIها در C
  • پوسته تعاملی روبی (REPL)
  • بسته مدیریت متمرکز از طریق RubyGems
  • کتابخانه استاندارد بزرگ
  • پشتیبانی از تزریق نیازمندی
  • continuations و generators

چگونه روبی را نصب کنیم ؟

نصب روبی در تمامی سیستم عامل ها ساده و آسان است اما همان گونه که عرض کردیم ، فرض را بر این میگیریم که شما هیچگونه آشنایی با مباحث ندارید . اما اگر به لازم نمی دانید نصب روبی را از ما فرا بگیرید می توانید از روی این قسمت بگذرید .


به هر حال ما قصد داریم نحوه نصب روبی در سیستم عامل های Unix Like و MS Windows را به شما آموزش دهیم.

نصب بر روی سیستم عامل های Unix Like

غالباً نسخه ای پایدار بر روی تمامی سیستم عامل ها به شکل پیشفرض وجود دارد ، اما به شکل کلی برای نصب روبی از سه روش استفاده می شود.

  • نصب از طریق منابع نرم افزای سیستم عامل ها (Repository)
  • منابع مستقل ( Rbenv و RVM )
  • نصب از طریق فایل قابل نصب

هر سه روش روبی را به شکل کامل نصب خواهند کرد اما تفاوت آن ها بر روی چگونگی نصب و ورژن مورد استفاده از روبی است . برای مثال همین امروز نسخه 2.0.0 از روبی روی ریپازیتوری مک موجود بود اما آخرین نسخه پایدار روبی برای نصب ، نسخه 2.3.0 است و باید توجه داشته باشید نسخه نصب شده مورد نیاز شما است یا خیر .

برای نصب روبی بر روی این سیستم عامل ها لازم است دستور یا دستوراتی را روی Shell یا Terminal آن ها وارد کنید که در ادامه طریقه نصب روبی بر روی بسیاری از آن ها را عرض خواهم کرد .

نصب روبی توسط منابع نرم افزای سیستم عامل ها (OS Repository)

  • نصب روبی بر روی Mac-OS X
brew install ruby


نسخه ای که نصب شد 2.0.0 بود.

  • نصب روبی بر روی Debian و Ubuntu

sudo apt-get install ruby-full


نسخه ای که برای من نصب شد 1.9.3 بود.

  • نصب روبی بر روی Arch Linux و Manjaro

sudo pacman -S ruby

نسخه ای که برای من نصب شد 1.9.3 بود.

  • نصب روبی بر روی Fedora و CentOS

sudo yum install ruby


نسخه نصب شده عموماً نسخه ای به روز از روبی خواهد بود اما نسخه نصب شده برای من نسخه ی 2.2.3 بود .

  • نصب روبی بر روی Solaris

pkg install runtime/ruby-18


نسخه نصب شده برای من نسخه قدیمی 1.8.7 بود.

  • نصب روبی توسط منابع مستقل ( Rbenv و RVM )

همان گونه که مشاهده فرمودین اکثر توزیع ها بر روی ریپازیتوری خود نسخه ای قدیمی یا آخربن نسخه پایدار روبی را بر روی ریپازیتوریشان داشتند .

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

یعنی اگر پروژه ای دارید که با نسخه 1.8.7 نوشته اید اما نسخه سیستم شما بالا تر است و امکان بازگشت ندارید یا اینکه کلا می خواهید از نسخه ای به روز یا حتی بتا و بالا تر از نسخه ریپازیتوری بهره مند شوید ، باید از منابع مستقل (RVM یا Rbenv) استفاده کنید.


  • نصب روبی از طریق Rbenv (پیشنهاد ما)

Rbenv یکی از منابع مستقل برای ارائه نسخه های مختلف روبی است که میتوان با استفاده از Command line، نسخه هایی مختلف از روبی را بر روی سیستم نصب کرد و به شکل مستقل از آن ها استفاده کرد.

برای نصب روبی از طریق Rbenv ابتدا باید روبی موجود روی سیستم خود را پاک کنید.

همچنین از وجود GIT بر روی سیستم خود مطمئن شوید و سپس مراحل زیر را به ترتیب انجام دهید:

  • دانلود و نصب Rbenv در دایرکتری به نام .rbenv

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

cd ~/.rbenv && src/configure && make -C src


ست کردن Rbenv بر روی Bash


echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profileecho 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

  • ست کردن Rbenv بر روی ZSH


echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profileecho 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc

  • برای راه اندازی Rbenv از دستور زیر استفاده کنید


~/.rbenv/bin/rbenv init

  • شل را بسته و دباره باز کنید و برای اطمینان از صحت فرایند نصب از دستور زیر استفاده کنید
type rbenv

  • برای استفاده از روبی و امکان دانلود ورژه های آن از دستور زیر استفاده کنید


git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

  • یک بار شل را بسته و دباره باز کنید

  • اینک شما می توانید نسخه های مختلف از Ruby را نصب کند.

  • برای مشاهده لیست نسخه های موجود در Rbenv از دستور زیر استفاده می کنند.
rbenv install -l
  • برای نصب نسخه های مورد نیاز از دستوراتی شبیه به دستورات زیر باید استفاده کرد.


rbenv install 2.4.0-devrbenv install 1.8.7-p352

  • برای اطلاع از نسخه های نصب شده از دستور زیر استفاده می کنند.

rbenv versions

  • برای استفاده از نسخه ای به صورت عمومی از دستوری شبیه دستور زیر استفاده کنید.
rbenv global 2.4.0-dev

  • برای استفاده از روبی بر روی پروژه ای خاص به شکل محلی از دستوری شبیه به دستور زیر را استفاده می کنند.
rbenv local 1.8.7-p352

  • برای خارج کردن شدن از حالت محلی از دستور زیر باید استفاده کرد .

rbenv local --unset

بی شک Rbenv قوی ترین منبع مستقل برای نصب روبی می باشد. گفتنی ها را عرض کردم اما برای اطلاع بیشتر از نهوه نصب یا کارکرد Rbenv به سایت رسمی rbenv سر بزنید.


  • نصب روبی از طریق RVM

RVM یک ابزار برای نصب روبی از طریف Command like است که با استفاده از دستوراتش میتواند محیطی برای استفاده از روبی را فراهم آورد .(قبل هر چیز از نصب بودن ابزار های curl و gpg در سیستم خود مطمئن باشید).

  • برای نصب نسخه ی پایدار RVM میتوان دستور زیر را اعمال کرد:


gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3\curl -sSL https://get.rvm.io | bash -s stable 


نصب روبی از طریق RVM


  • برای نصب نسخه ی دولپمنت و ناپایدار RVM میتوان دستور زیر را اعمال کرد:
\curl -sSL https://get.rvm.io | bash

  • برای نصب ورژنی خاص از RVM از دستوری شبیه دستور زیر را وارد کنید:

\curl -sSL https://get.rvm.io | bash -s -- --version latest\curl -sSL https://get.rvm.io | bash -s -- --branch [owner/][repo]

  • برای اشکال زدایی RVM از دستور زیر استفاده می کنند:
\curl -sSL https://get.rvm.io | bash -s -- --trace

\curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfilesecho "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

  • برای قرار دادن RVM بر روی یوزری خاص از دستوری شبیه دستور زیر استفاده کنید:
rvm user gemsets

  • ترمینال را بسته و دوباره باز کنید و دستور زیر را جهت راه اندازی اولیه RVM تایپ کنید
source ~/.rvm/scripts/rvm

  • برای فهمیدن صحت فرایند نصب از دستور زیر استفاده کنید (در خوجی باید شاهد پیغامی شبیه به این باشید «rvm is a function» تا از صحت نصب آن مطمئن شوید).
type rvm | head -n 1

  • برای قهمیدن از ورژن های روبی موجود در RVM از دستور زیر استفاده می کنیم:
rvm list known
  • برای نصب نسخه مورد نظرمان و استفاده از آن به شکل محلی باید دستوراتی شبیه دستورات زیر را وارد می کنیم:

rvm install 2.2.2

rvm use 2.2.2

  • برای استفاده از همان ورژن به صورت پیشفرض از دستور زیر استفاده کنید:

rvm use 2.2.2 --default

  • برای قهمیدن از نسخه روبی پیشفرض شده از دستور زیر استفاده می کنیم:
ruby -v

روش نصب RVM را عرض کردم اما برای اطلاع از فرایند نصب آن به سایت rvm مراجعه کنید تا متوجه تنزیمات دیگر آن شوید .

  • نصب روبی از طریق فایل قابل نصب

یکی دیگر از راه های دیگر جهت نصب روبی استفاده از فایل قابل نصب است . به گونه ای که شما ابتدا فایل را از بخش دانلود در سایت رسمی روبی (www.ruby-lang.org) دانلود می کنید و پس از unzip کردن آن مراحل زیر را انجام می دهید.

  • پس از unzip کردن فایل، Terminal را باز کنید و به دایرکتوری unzip شده بروید.(بر فرض مثال دایرکتوری ما به اسم ruby-1.9.0 است که در دایرکتوری Download قرار گرفته)
cd ~/Download/ruby-1.9.0

  • پس از رفتن به دایرکتوری مورد نظر دستورات زیر را به ترتیب جهت نصب وارد Terminal کنید:

./configure

make

sudo make install

  • یک بار Terminal را بسته و دوباره باز کنید و سپس دستور زیر را برای مطلع شدن از صحت نصب روبی وارد کنید:
ruby -v

نصب بر روی ویندوز

نصب روبی در Windows بسیار ساده است . به گونه ای که با نصب فقط یک فایل بر روی سیستمتان امکان پذیر است . فایل نصبی روبی در ویندوز را rubyinstaller می گویند که بسیار ساده و قابل فهم Ruby را نصب می کند.

برای تهیه فایل قابل نصب روبی باید به بخش Download , موجود سایت rubyinstaller بروید و نسخه مورد استفاده خود را نصب کنید.


روبی آن ریلز (Ruby on Rails)

روبی آن ریلز (Ruby on Rails) به فریم ورک یا چارچوب نرم‌افزاری تحت وبی گفته می شود که توسط فردی به اسم دیوید هاینمیر هانسن در۱۳ دسامبر ۲۰۰۵ که برگرفته از پروژهٔ بیس‌کمپ ( یک ابزار مدیریت پروژه توسط شرکت 37signalsکه حالا تبدیل به یک شرکت تولید نرم‌افزارهای وب شده است) بودخلق شد . این فریم ورک با زبان روبی و متن باز توسعه داده شده. هدف از خلق ریلز ایجاد یک چارچوب نرم‌افزاری تحت وب است که از روش توسعه سریع ، برنامه‌نویسان وب را کمک می کند تا نرم افزار تحت وب خود را هر چه سریعتر توسعه دهند

این پروژه آن قدر اعتبار یافته که شرکت اپل از سال ۲۰۰۷ اعلام کرد روبی آن ریلز به عنوان یک چارچوب پیش‌فرض در سیستم‌عامل Mac OSX نسخهٔ ۱۰٫۵ قرار خواهد گرفت.

ریلز مانند دیگر چارچوب‌های وب، ریلز هم از معماری مدل-نما-کنترل‌گربرای سازمان‌دهی برنامه‌نویسی نرم‌افزار، استفاده می‌کند.

روبی آن ریلز شامل ابزاری است که کارهای تکراری و مشترک توسعهٔ نرم‌افزار را بسیار ساده می‌کند.

ابزاری مانند داربست، تعدادی از مدل‌ها و نماها را به صورت خودکار که برای هر وب‌سایت نیاز است را می‌سازد. همچنین شامل یک وب سرور ساده (WEBRick) و یک ابزار ساخت سیستم (Rake) است. ریلز و این ابزار، با یکدیگر یک محیط توسعهٔ پایه‌ای را فراهم می‌کنند.

برنامه‌های روبی آن ریلز برای اجرا شدن نیاز به یک وب سرور دارند. در هنگام نوشتن این مطلب Mongrel، بر WEBRick ترجیح داده می‌شود اما شما می‌توانید از وب سرورهای دیگری مانند لایتی, Abyss, آپاچی و خیلی دیگر از وب سرورها استفاده کنید. از سال ۲۰۰۸ به بعد، وب سرور پسنجر (به انگلیسی: Passenger) از لحاظ استفاده شدن جای وب سرور Mongrel را گرفت. به تازگی، وب سرور Unicorn محبوبیت خوبی برای انتشار (به انگلیسی: Deployment) پیدا کرده است. یکی از ویژگی‌های باارزش ریلز استفاده از کتابخانه‌های بزرگ جاوااسکریپت Prototype و script.aculo.us برای آژاکس است. در ابتدا ریلز از پروتکل دسترسی آسان به اشیاء برای دسترسی به خدمات وب استفاده می‌کرد، اما بعد آن جایگزین خدمات وب RESTful شد. از نسخه ۲٫۰، روبی آن ریلز به صورت پیش‌فرض خروجی‌های HTML و XML را ارائه می‌دهد. دومی، ابزاری برای خدمات وب RESTful است.

فلسفه ریلز

روبی آن ریلز بر مفهوم قرارداد به‌جای تنظیمات و اصل توسعه سریع خودت را تکرار نکن تاکید بسیاری دارد. "قرارداد به‌جای تنظیمات" یعنی توسعه‌دهندگان فقط نیاز دارند که قسمت‌های نامتعارف برنامهٔ خود را مشخص کنند. به عنوان مثال اگر کلاسی به نام Sale در مدل داشتیم، جدول متناظر آن در پایگاه‌داده‌ها به صورت پیش‌فرض sales نام دارد. اما شما می‌توانید از قراردادها استفاده نکنید، به عنوان مثال می‌توانید جدولی به نام "products sold" داشته باشید، اما توسعه‌دهندگان مجبورند که کدهای برنامهٔ خود را برای این جدول بنویسند. در حالت کلی قراردادها برای کمتر کد نوشتن و مدیریت برنامه است. «خودت را تکرار نکن» یعنی تمام اطلاعات شما در یک‌جای مشخص قرار دارند. به عنوان مثال، با استفاده از ماژول اکتیو رکورد در ریلز، برنامه‌نویس دیگر نیازی به تعریف کردن نام‌های ستون‌های پایگاه‌داده در تعریف کلاس را ندارد. اما روبی آن ریلز می‌تواند با استفاده از نام کلاس، اطلاعات را از پایگاه‌داده استخراج کند.

چگونه روبی آن ریلز را نصب کنیم؟

نصب روبی آن ریز خیلی آسان است و شما فقط می بایست موارد زیر را رعایت بفرمایید:

  • مطمئن شوید که روبی بر روی سیستم عاملتان نصب است(ترجیحاً ورژن بالای ۲.۲.۲).

  • از نصب بودن SQLite3 بر روی سیستم خود اتمینان حاصل نمایید

  • باید به اینترنت دسترسی داشته باشید.

پس از اتمینان از موارد بالا ، دستور زیر را برای نصب ریلز وارد Command Line خود کنید .

gem install rails


یک بار کامند لاین خود را بسته و باز کنید تا کامند لابن دستورات ریلز را در نظر بگیرد


برای اینکه بدانیم ریلز نصب شده یا نه ، می بایست دستور زیر را وارد کامند لاین کنیم:

rails -v


اگر مشاهده کردید که خطایی به شما می دهد ، ممکن است به علت تحریم ها یا فیلترینگ ایران نصب نشده باشد . به هر حال در زمان نصب ریلز و تمام GEM ها در روبی از پراکسی یا آنتی فیلتر استفاده نمایید.


سپاس که ما را دنبال می کنید. (Email من)