RDR3T > Подготовка рабочего места

марта 7, 2011  |  Published in Ruby on Rails, Ruby on Rails 3  |  60 Comments

RubyDev Rails 3 Tutorial

Подготовка рабочего места

Created_at: 07.03.2011
Version: 0.1
Rails_version: 3.0.5
Ruby_version: 1.9.2

Данный учебник предполагает, что вы используете в качестве операционной системы Ubuntu Linux. Если вы используете другу операционную систему, например Windows, то я рекомендовал бы вам установить Ubuntu, через специальную утилиту wubi, или просто с диска, как вторую операционную систему. Дело в том, что Ruby и Rails заточены конкретно под работу на *nix системах, а поддержка платформы Windows — это бремя, которое несут на себе разработчики Ruby и Rails для популяризации платформы. Даже если вы являетесь большим поклонником Windows, то в скором времени после начала изучения Ruby и Rails вы поймете необходимость работы на другой операционной системе, например Ubuntu, так как в Windows могую появляться различные ошибки, кроме того Windows ораничивает вас в наборе используемых инструментов, например некоторые gem’ы не совместивы с Windows.

Прежде, чем приступить к изучению программированию веб приложений на Rails, вам необходимо организовать рабочее пространство на вашем компьютере. Вам потребуется система контроля версий Git, которая на данный момент является наиболее популярной среди Ruby / Rails программистов, менеджер версий Ruby — RVM, который позволит вам использовать сразу несколько версий Ruby, а также организовать для каждой версии несколько рабочих окружений со специфическим набором gem’ов (каждый такой набор (окружение) имеет официальное название — gemset), а также сам Ruby версии 1.9.2.

Начнем с установки Git:
Для установки Git запустите консоль и выполните в ней следущую команду:

$ sudo apt-get install git-core

После установки Git, необходимо выполнить совсем простую его настройку:

$ git config —global user.name «Your Name»
$ git config —global user.email «your_email@whatever.com»

Только что вы установили имя пользователя и email пользователя Git.

После того, как Git установлен, давайте приступим к установке RVM, который послужит нам для установки Ruby и создания gemset’а с необходимым нам набором gem’ов.

Установка RVM

Для установки RVM скопируйте следущую команду и выполните ее в консоли:

$ mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone —depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install

Только что вы выполнили установку RVM с помощью Git из удаленного репозитория. Для того, чтобы использование RVM стало доступным из консоли, следует отыскать файл /home/user_name/.bashrc и добавить в самый низ его содержимого следущую строку кода:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm»

Сохраните изменения в .bashrc, перезапустите консоль и выполните следущую команду:

$ type rvm | head -n1

Если в ответ вы получили:

rvm is a function

- это значит, что установка RVM состоялась успешно и вы можете приступить к установке Ruby.

Установка Ruby 1.9.2
Я выбрал версию 1.9.2 потому, что на момент написания данного учебника эта версия является самой последней, стабильной и достаточно распространена на production-серверах. Кроме того, эта версия содржит много приятных сюрпризов для программистов и большую производительность. Вы вольны использовать любую другую версию Ruby, однако, тогда у вас могут возникнуть проблемы при изучении материалов предоставленных в данном учебнике.

Для установки Ruby 1.9.2 следует выполнить следущую команду в консоли:

$ rvm install 1.9.2

Только что вы установили Ruby 1.9.2 при помощи RVM. Вы также можете установить достаточно популярный Ruby Enterprise Edition (Ruby EE или REE), который является ни чем иным как модификацией Ruby 1.8.7 (MRI 1.8.7) с большей производительностью и меньшим потреблением оперативной памяти. Для установки Ruby EE воспользуйтесь следующей командой:

$ rvm install ree

Теперь вы имеете на вашем компьютере две различных версии Ruby, между которыми можете легко переключаться:

$ rvm ree
$ rvm 1.9.2

Для того, чтобы вам не приходилось все время переключаться на Ruby 1.9.2, необходимо сообщить RVM о том, что данная версия должна использоваться по умолчанию:

$ rvm 1.9.2 —default

Теперь мы установили Git, RVM и Ruby 1.9.2 -большую часть нашего рабочего места. Далее давайте установим Rails, и прочие необходимые gem’ы для изучения данного курса и разработки.

Создание gemset’ов и установка Rails 3

RVM предоставляет вам удобный способ организации вашего рабочего места при помощи создания именованых наборов gem’ов (gemset’ов). Все наши gem’ы мы будем устанавливать в специальный gemset, который будет называться blog. Для начала установки необходимых gem’ов, нам необходимо с помощью RVM создать собственно сам gemset:

$ rvm gemset create blog
‘blog’ gemset created (/home/vladimir/.rvm/gems/ruby-1.9.2-p0@blog).

Для того, чтобы использовать gemset blog, необходимо переключиться на него:

$ rvm gemset use blog

Или:

$ rvm use 1.9.2@blog

Или:

$ rvm 1.9.2@blog

Символ «@» используется в качестве разделителя версии Ruby и gemset’а. Запись 1.9.2@blog сообщает RVM о том, что в данный момент следует использовать версию Ruby 1.9.2 вместе с gemset’ом blog.

Итак, вы уже переключились на 1.9.2@blog и теперь вам следует установить все необходимые gem’ы. Если вы наберете команду gem list, то увидите, что gemset blog, практически пуст, за исключением одного единственного gem’а — rake:

$ gem list

*** LOCAL GEMS ***

rake (0.8.7)

Давайте установим все необходимые нам gem’ы, если я что-то упустил, то мы доустановим то, чего нам не хватает позже:
$ gem install rails
Fetching: activesupport-3.0.5.gem (100%)

Successfully installed rails-3.0.5
23 gems installed

Установка SQLite

Итак, вы установили Rails со всеми необходимыми для работы gem’ами, настало время установить базу данных SQLite, которую мы будет использовать в большинстве разделом данного учебника. Сразу хочу оговориться о том, что SQLite редко используется в продакшене, Ruby / Rails программисы предпочитают ей MySQL или PostgreSQL.

Для установки SQLite воспользуйтесь следующей командой в консоли:

$ sudo apt-get install sqlite3 libsqlite3-dev
$ sudo apt-get install sqlite3-ruby

Первая команда устанавливает пакеты sqlite3 и libsqlite3-dev, то есть саму базу данных SQLite, а вторая команда устанавливает SQLite драйвер для Ruby, чтобы Ruby мог с нею работать.

Создание приложения Rails 3

Итак, вы установили и настроили рабочую среду, теперь давайте создадим первое приложение на Rails. В качестве приложения мы напишем блог, так уж повелось в различных учебниках, что первым делом на Rails и не только на Rails создается блог. Блог — это простое приложение, которое мы будем разрабатывать на протяжении большей части данного учебника, и которое вы сможете в будущем использовать для ведения собственного блога в интернет.

Чтобы создать новое приложение, в Rails существует специальный генератор, который берет всю рутину на себя. О том что такое генераторы в Rails 3 мы поговорим позже, а сейчас выполните в консоли следущую команду:

$ rails new blog
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app

create vendor/plugins/.gitkeep

Только что фреймворк Rails при помощи специального генератора создал папку blog в которую поместил ваше каркас приложения blog. Папка blog создана в рабочей директории, чтобы узнать более конкретно, возмользуйтесь следующей командой:

$ pwd
/home/vladimir

В моем случае, приложение находится в папке /home/vladimir/blog. Вы можете спокойно переместить ваше приложение в любое другое удобное для вас место, например я перенесу его в папку /home/vladimir/proj/, где я храню все мои разработки:

$ mv ./blog ./proj

Git и контроль версий
Помните, в начале этой главы вы устанавливали Git? Он необходим вам для гораздо больших целей, чем скачивание репозитория с RVM. Git — это система управления версиями, которая позволяет делать снимки состояние разработки приложения и возвращаться назад, если вы допустили какие-либо ошибки. Git также позволяет создавать рабочие ветки (branch) в контексте которых делается какая-нибудь крупная работа. Git можно сравнить с компъютерной игрой в которой каждое сохранение — это ваш снимок (commit) положения прогресса на данный момент, а каждый пользователь в игре — ветка.

Вам, должно быть все еще непонятно, что такое системы управления версиями и Git, но это не страшно. Данный учебник достаточно широко покрывает не только тему разработки на Rails, но и тему управления проектом, его тестирования и так далее.

Давайте создадим репозиторий нашего приложения. Репозиторий — это такое место, где Git хранит записи о состоянии отслеживаемой (рабочей области), в нашем случае это папка blog в которой содержится наше приложение. Чтобы создать репозиторий, необходимо перейти в папку проекта:

$ cd proj/blog

И выполнить команду:

$ git init
Initialized empty Git repository in /home/vladimir/proj/blog/.git/

Команда git init создает репозиторий, а папка .git собственно и является созданным репозиторием.

Если вы воспользуетесь командой git status, то увидите, что отслеживание состояния рабочей области началось, однако файла, за изменениями которых следует следить не добавлены:

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use «git add …» to include in what will be committed)
#
# .gitignore
# Gemfile
# README
# Rakefile
# app/
# config.ru
# config/
# db/
# doc/
# lib/
# public/
# script/
# test/
# vendor/
nothing added to commit but untracked files present (use «git add» to track)

Чтобы добавить имеющиеся файлы для отслеживания изменений в них, нам предлогается выполнить команду git add , где — имя добавляемого к отслеживанию файла. Добавлять все файлы по отдельности слишком долго, поэтому следует воспользоваться командой git add со следующими аргументами:

$ git add .

Обратили внимание на точку в конце? Эта точка сообщает Git о том, что необходимо добавить все имеющиеся файлы без исключения. Без исключения — это громно сказано, на самом деле в любом проекте имеются файлы и папки отслеживать состояние которых нам не нужно, это какие-то временные файлы или база данных и так далее. Список исключений содержится в файле .gitignore, который находится в корне нашего проекта и содержит список исключений:

Содержимое .gitignore:

.bundle
db/*.sqlite3
log/*.log
tmp/

После команды git add, выполните команду git commit для создания первого своего commit’а (снимка состояния рабочей области):

$ git commit -m ‘initial commit’
[master (root-commit) f9dd227] initial commit
39 files changed, 10221 insertions(+), 0 deletions(-)
create mode 100644 .gitignore

create mode 100644 vendor/plugins/.gitkeep

Git — распределенная система контроля версий, которая позволяет работать над одним проектом коллективно. Для коллективной разаботки и надежного бэкапа вашего репозитория, следует использовать удаленный репозиторий. В качестве удаленного репозитория я рекомендую использовать сверх-популярный сервис , который, кстати, написан на Rails. GitHub, это не просто коробка для хранения репозитория, это целая социальная сеть разработчиков, которая позволяет отслеживать дейтельность интересных вам персон и состояние разработки проектов, а также организовать коллективную разработку собственного проекта.

Для начала работы с GitHub необходимо сначала зарегистрироваться. Процедура регистрации тривиальна, проходите сюда (), вбиваете в регистрационную форму имя, пароль и адрес электронной почты и все готово!

Создание собственного удаленного репозитория
Для создания удаленного репозитория вам необходимо создать SSH-ключь. SSH — это протокол передачи данных, который похож на знакомый многим telnet, однако отличается тем, что трафик шифруется. SSH — ключь необходим для дешифровки GitHub’ом передаваемых вами данных.

Для начала давайте проверим имеются ли у вас SSH-ключи. Для этого вбиваем в консоль следующую команду:

$ cd ~/.ssh

Если у вас возникло сообщение “No such file or directory”, это значит, что SSH-ключи отсутствуют и вам следует их сгенерировать. Если же директория найдена, то вы можете использовать уже имеющиеся у вас ключи. В моем случае у меня уже имеется пара ключей id_rsa и id_rsa.pub, которые используются по умолчанию (ключи с такими именами используются по умолчанию).

Если же у вас нет SSH ключей, то вам следует их сгенерировать. Для генерации пары ssh ключей воспользуйтесь следующей командой в консоли:

$ ssh-keygen -t rsa -C «your@mail.com»

Generating public/private rsa key pair.
Enter file in which to save the key (/home/vladimir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vladimir/.ssh/id_rsa.
Your public key has been saved in /home/vladimir/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your@mail.com

«Enter file in which to save the key» предлагает вам ввести специальные имена для файлов ключей. Это необходимо, если у вас имеется несколько ключей. Если имя не указано, то файлы получат стандартные названия: id_rsa и id_rsa.pub.

«Enter passphrase» и «Enter same passphrase again» предлогают вам ввести пароль. Пароль необходим для того, чтобы люди имеющие доступ к вашему компьютеру не могли воспользоваться вашими ssh ключами.

Важно: если вы храните свои ключи не в стандартной директории или называете их не стандартными названиями, то вам следует воспользоваться командой: ssh-add path/to/my_key для того, чтобы сообщить SHH о том, где следует искать ключи.

Чтобы начать полноценно работать с GitHub, вам следует записать свои ключи в своемаккаунте на GitHub. GitHub позволяет добавлять уникальные ключи к каждому проекту (репозиторию), однако, поскольку у вас еще нет репозиториев и поскольку процедура добавления ключей для всех репозиториев сразу и ключей для одного репозитория одинакова, то я опишу процедуру добавления одного общего для всех репозиториев ключа.

Откройте файл id_rsa.pub, скопируйте его содержимое. После этого зайдите в настройки аккаунта на GitHub «Account Settings» -> SSH Public Keys -> Add another public key и вставьте скопированный ключь. Поле title — это описание ключа, если вы его оставите пустым, то оно приобретет значение комментария ключа, в нашем случае это будет «your@mail.com».

Теперь ключь добавлен и мы можем создать собственный репозиторий!

Создать удаленный репозиторий очень просто. По ссылке Dashboard вы можете видеть ленту событий, а слева список собственных репозиториев и список репозиториев на получение информации о которых вы подписались. Для того, чтобы создать репозиторий просто нажмите на кнопку «New Repository» и заполните простые поля: имя проекта, описание и адрес домашней страницы проекта. Далее вам следует скопировать имеющийся локальный репозиторий.

Для этого необходимо добавить адрес удаленного репозитория в настройки локального. Для этой операции используется специальная команда: git remote add:

git remote add origin git@github.com:egoholic/blog.git

Где origin — псевдоним репозитория. «git@github.com:egoholic/blog.git» — адрес репозитория, egoholic и blog — соответственно имя пользователя GitHub и название репозитория. Псевдоним репозитория используется для того, чтобы не использовать постоянно полный адреc репозитория, вместо этого вы используете псевдоним, другими словами псевдоним — это переменная, которая хранит адрес репозитория.

После добавления удаленного репозитория вы можете посмотреть список имеющихся у проекта удаленных репозиториев:

$ git remote
origin

Теперь, когда адрес удаленного репозитория добавлен, вы можете скопировать локальный репозиторий в удаленный. Для это следует использовать команду git push:

$ git push origin master
Counting objects: 62, done.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (62/62), 85.54 KiB, done.
Total 62 (delta 2), reused 0 (delta 0)
To git@github.com:egoholic/blog.git
* [new branch] master -> master

Где origin - псевдоним удаленного репозитория, а master — его ветвь, в которую следует произвести заливку изменений. Я называю команду push копированием для простоты, на самом деле она выполняет немного другие действия, но об этом позже.

Теперь у вас имеется первый собственный удаленный репозиторий, который доступен через веб интерфейс по адресу: https://github.com/egoholic/blog.git. В вашем случае вместо egoholic будет использован ваш собственный логин.

Теперь, если кто-то захочет присоединиться в вашему проекту на Github, то ему следует выполнить клонирование репозитория при помощи команды git clone:

$ git clone git@github.com:egoholic/blog.git
Initialized empty Git repository in /home/vladimir/proj/blog/.git/
remote: Counting objects: 62, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 62 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (62/62), 85.56 KiB, done.
Resolving deltas: 100% (2/2), done.

Скопировав репозиторий, человек, который это сделал должен добавить удаленный основной репозиторий в список удаленных репозиториев своего проекта:

$ git remote add coreteam git@github.com:egoholic/gittrapp.git

Это не обязательно, но необходимо для обратной связи с скопированным репозиторием.

Итак, вы установили и настроили все необходимое и создали Git репозиторий, однако вы забыли запустить ваше приложение! Для запуска приложения вам следует воспользоваться командой rails server, или сокращенной версией rails s:

$ rails s
Could not find gem ‘sqlite3 (>= 0, runtime)’ in any of the gem sources listed in your Gemfile.

Поздравляю! Вы получили свою первую ошибку. В сообщении нам говорится, что не удается найти gem sqlite3, который прописан в файле Gemfile нашего приложения. Для того, чтобы решить эту проблему, вам следует выполнить следущую команду:

$ bundle install
Fetching source index for http://rubygems.org/
Installing rake (0.8.7)
Using abstract (1.0.0)

Using rails (3.0.5)
Installing sqlite3 (1.3.3) with native extensions
Your bundle is complete! It was installed into /home/vladimir/.rvm/gems/ruby-1.9.2-p0@blog

Только что вы установили gem sqlite3 при помощи bundler’а. Bundler — это gem, менеджер зависимостей вашего Ruby / Rails приложения. Bundler позволяет в одну простую команду bundle install установить все необходимые для вашего приложения gem’ы. Давайте еще раз попробуем запустить наше приложение:

$ rails s
=> Booting WEBrick
=> Rails 3.0.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-03-07 16:29:31] INFO WEBrick 1.3.1
[2011-03-07 16:29:31] INFO ruby 1.9.2 (2010-08-18) [i686-linux]
[2011-03-07 16:29:31] INFO WEBrick::HTTPServer#start: pid=3731 port=3000

Поздравляю! Вы только что запустили свое первое приложение на Rails. Теперь, если вы проследуете по адресу localhost:3000, то увидите страницу приветствия Rails. Кликнув по ссылке «About your application’s environment«, вы увидите информацию о рабочей среде.

Теперь давайте определимся с редактором, который вы будете использовать для написания кода. Лично мой выбор пал на gedit (medit) который уже предустановлен в Ubuntu + плагины к нему и на Kate - немного более продвинутый и удобный редактор кода. Оба редактора достаточно минималичтичны и просты в использовании, оба отлично подсвечивают код и имеют множество полезных и удобных функций. Я рекомендую вам использовать один из них, однако вы можете использовать любой, который вам понравится и который подсвечивает код написанный на Ruby.

В следующей главе мы еще больше познакомимся с Rails, Git и Bundler.

Журнал правок и изминений:

(обновляется версионно, после больших обновлений и правок)

07.03.2011 - RDR3T v. 0.1. Версия текущей главы 0.1. Ruby v. 1.9.2. Rails v. 3.0.5.

Лучшая благодарность автору — ваши комментарии!

Tags: , , ,

Responses

  1. says:

    марта 7, 2011 at 19:24 (#)

    Думаю всё же wubi…

  2. admin says:

    марта 7, 2011 at 19:57 (#)

    Спасибо, поправил

  3. dre3k says:

    марта 8, 2011 at 11:46 (#)

    Git лучше устанавливать из ppa:git-core, новее будет.
    Перед
    sudo apt-get install git-core
    пишем и запускаем
    sudo add-apt-repository ppa:git-core/ppa
    Если уже установлен, то обновить можно так:
    sudo add-apt-repository ppa:git-core/ppa
    sudo aptitude update
    sudo aptitude full-upgrade
    На данный момент последняя версия git’а 1.7.4.1.

    Так важно вместо
    rvm install 1.9.2
    rvm install ree
    писать
    rvm install 1.9.2-p180
    rvm install ree-2011.03
    Будут проинсталированы самые последние, на данный момент, версии. В них исправлено много багов а также одна уязвимость для ведки 1.9.2 и две уязвимости для 1.8.7, на которой основан ree.

  4. mage says:

    марта 8, 2011 at 11:57 (#)

    А как же VIM в качетве редактора :)? Еще было бы неплохо прикрутить к сайту орфус (или что-то для проверки орфоргафии), поправил бы Вам пару ошибок :).

    Консоль перезапускать необязательно, достаточно сделать source ~/.bashrc

  5. dre3k says:

    марта 8, 2011 at 12:00 (#)

    Вот этого
    > $ sudo apt-get install sqlite3-ruby
    делать не надо. Это древняя либа для ruby 1.8.7 которая встанет в системный каталог и наверно потянет за собой супер древний ruby 1.8.7 или libruby-1.8.7(точно не знаю, не пробовал), и будет бесполезна для твоего rvm’а.

    Всё что нужно, это вслед за
    $ gem install rails
    сделать
    $ gem install sqlite3
    Тогда ты не получиш ошибку про gem sqlite3 и не надо делать bundle install(в твоём конкретном случае).

  6. admin says:

    марта 8, 2011 at 12:01 (#)

    dre3k, спасибо, чуть позже поправлю. Думаю, билды не стоит указывать в статье, вместо этого опишу процедуру установки последней версии git, ruby и т.д. в конкретный момент, когда человек будет читать статью, потому, как к тому времени могут появиться новые версии.

    Не знал, что sqlite3-ruby старая либа, поправлю все сегодня.
    Я через bundle install устанавливаю свежую версию, а до этого старую, которая не используется более.

  7. dre3k says:

    марта 8, 2011 at 12:22 (#)

    > Не знал, что sqlite3-ruby старая либа, поправлю все сегодня.
    Она не просто старая, она для системного руби, который не имеет никакого отношения к руби которые ты устанавливаеш под rvm.

    > Я через bundle install устанавливаю свежую версию, а до этого старую, которая не используется более.

    Если под твоим конкретным gemset’ом нет определённого джема который нужен для приложения(т.е. прописаного в Gemfile), то bundle install установит его в каталог ~/.bundler. Т.е. в gem list ты его всё равно не увидиш. Ты делаеш bundle intall чтобы установить недостающий sqlite3, но с таким же успехом ты могбы и не инсталировать gem rails, а просто сделать bundle install.

    Джемы обновляются командой:
    gem update
    Старые можно подчистить так:
    gem cleanup
    При этом в rvm надо находится в конкретном gemset’е, джэмы которого ты пытаешся обновить/почистить.

  8. admin says:

    марта 8, 2011 at 12:38 (#)

    Это все понятно, только у меня bundler устанавливает sqlite, rspec и rspec-rails непосредственно в gemset, при этом gemset blog абсолютно чист (был), а после bundler install в нем появились все зависимости, которые я прописывал для второй части учебника и sqlite3 из текущей части. Папка .bundler пуста, в ней находитя только файл конфигурации bundler’а.

  9. Igas says:

    марта 8, 2011 at 12:50 (#)

    «Так важно вместо
    rvm install 1.9.2
    rvm install ree
    писать
    rvm install 1.9.2-p180
    rvm install ree-2011.03″

    неважно, пишем в консоли $ rvm list known и видим:

    # MRI Rubies
    [ruby-]1.8.6[-p420]
    [ruby-]1.8.6-head
    [ruby-]1.8.7[-p334]
    [ruby-]1.8.7-head
    [ruby-]1.9.1-p378
    [ruby-]1.9.1[-p431]
    [ruby-]1.9.1-head
    [ruby-]1.9.2-preview1
    [ruby-]1.9.2-preview3
    [ruby-]1.9.2-rc1
    [ruby-]1.9.2-rc2
    [ruby-]1.9.2[-p180]
    [ruby-]1.9.2-head
    ruby-head

    # Ruby Enterprise Edition
    ree-1.8.6
    ree[-1.8.7][-2011.03]
    ree-1.8.6-head
    ree-1.8.7-head

    что говорит нам о том что 1.9.2 = ruby-1.9.2 = 1.9.2-p180 = ruby-1.9.2-p180 аналогично с ree.

  10. dre3k says:

    марта 8, 2011 at 12:54 (#)

    2 admin

    Понял, был не прав. Просто глянул в ~/.bundler а там не пусто, вот и написал глупость.

    Поправка: в ~/.bundler будут утанавливатся джэмы из git репозитариев, т.е. всякие там форки и edge-версии. Как например edge-версия rails если в Gemfile прописать:
    gem ‘rails’, :git => ‘git://github.com/rails/rails.git’

  11. Igas says:

    марта 8, 2011 at 12:59 (#)

    Я думаю раз мы работаем с консольки будет полезно (и возможно тогда не обязательно прописывать дефолт) использовать такой файл .rvmrc с содержимым:
    rvm use 1.9.2@blog
    тогда при переходе cd ~/proj/blog будет переключаться на соответствующий, а к примеру при переходе в ~/proj/super_puper_old_adapter_for_mysql на 1.8.7(но в ней тоже должен быть файл .rvmrc) и не придется каждый раз ручками команду rvm use version@gemset писать

  12. dre3k says:

    марта 8, 2011 at 13:01 (#)

    2 Igas

    В моём случае rvm list known про p180 и 2011.03 ни чего не знал, потомучто rvm был старой версии, установленой до выхода новых версий руби. После rmv update — узнал ;)

    Просто бросилось в глаза что у автора в посте вообще «ruby-1.9.2-p0″. rvm list known глянул и не нашел последние версии, думал он автоматом с инета проверяет, а оказалось надо обновлять rmv.

  13. Igas says:

    марта 8, 2011 at 13:22 (#)

    2 dre3k
    лучше использовать rvm get head для обновления.
    — к сожалению сейчас так =)

  14. dre3k says:

    марта 8, 2011 at 13:51 (#)

    2 Igas

    Согласен, в новом rvm, update убрали вообще. А ещё update обновил моего старого rvm версию до head.

    $ rvm get head

    Already up-to-date.

    $ rvm update
    ERROR: rvm update has been removed. See ‘rvm get’ and rvm ‘rubygems’ CLI API instead

  15. SuddenHead says:

    марта 8, 2011 at 14:22 (#)

    Лучший редактор для руби, как известно — Textmate. А под линукс есть Redcar, который уже прекрасно работает

  16. dre3k says:

    марта 8, 2011 at 14:39 (#)

    > Лучший редактор для руби, как известно – Textmate.
    Ну ты загнул ;))

    Текстмейты приходят и уходят, Vim это навсегда.

    TextMate may be the latest craze for developing Ruby on Rails applications, but Vim is forever.
    Tim Pope.

  17. says:

    марта 8, 2011 at 22:57 (#)

    У меня почему-то не получается работать с консолью Rails после установки Ruby 1.9.2

    Приходится каждый раз переустанавливать Ruby c параметром:
    —with-readline-dir=$HOME/.rvm/usr

    Почему-то об этом здесь не упоминается. Это только у меня такая проблема?

  18. admin says:

    марта 8, 2011 at 23:17 (#)

    С Vim не работал, но общее представление о нем имею, по мне так он слишком сложен и требует умения слепого 10-ти пальцевого набора. gedit, kate и т.д. -простые редакторы, которые вполне удовлетворят любого разработчика, темболее новичка.

  19. dre3k says:

    марта 9, 2011 at 10:37 (#)

    2 Artem

    У меня на убунте 10.04 чтобы нормально скомпилировался руби и все расширения к нему надо было установить несколько дополнитеольных пакетов. В частности чтобы была потдержка readline для rails console и irb нужен пакет libreadline5-dev. Вот одной строкой что надо для полной компиляции руби на голой убунте 10.04:
    sudo apt-get install build-essential libssl-dev libreadline5-dev zlib1g-dev libcurl4-openssl-dev libncursesw5-dev
    Также вроде нет curl в стандартной установке убунту 10.04, который нуден для rvm(точно не помню):
    sudo apt-get install curl

    2 admin

    Как по мне Vim не сложен, просто у него сильно крутая кривая обучения. Я вообще про него упомянул потому что товарищ SuddenHead, громко заявил что «Лучший редактор для руби, как известно – Textmate».
    Насчёт того что «gedit, kate … вполне удовлетворят любого разработчика», не согласен. Не любого ;). Если достаточно хорошо знаеш Vim, то получается супер эффективно работать, в частности на рэйлс проектом.
    Не буду говорить что лучше для новичка, новичок новичку рознь. Но для туториала и скринкаста, явно лучше gedit, kate, textmate… Вон Ryan Bates, сам пользует Vim, а скринкасты показывает с textmate, потому что так нагляднее.

  20. says:

    марта 9, 2011 at 14:50 (#)

    Эту книгу надо писать на github, с разметкой markdown, чтобы страждующие могли вномить изменения — вот это было бы круто.
    А то я слышал что народ пытается написать художественную книгу на гитхабе, но имхо с художественной ничего не выйдет, а вот техническая — самое оно будет.

  21. mikhail says:

    марта 9, 2011 at 17:38 (#)

    я также добавляю ~/.gemrc файл, чтобы gem’ы устанавливались без встроенной документации

    :update_sources: true
    :sources:
    - 
    - 
    :benchmark: false
    :bulk_threshold: 1000
    :backtrace: false
    :verbose: true
    gem: --no-ri --no-rdoc
    
  22. says:

    марта 9, 2011 at 23:31 (#)

    там где по два дефиса надо — заменилось на одно тире.

    А вобще похоже, что неплохая статья. Буду знакомых сюда отправлять)

  23. zinenko says:

    марта 9, 2011 at 23:35 (#)

    при установке rvm всё прошло гладко а вот с .bashrc небольшие траблы были

    я копипастом с вашего сайта в неего вписал [[ -s "$HOME/.rvm/scripts/rvm" ]] && . “$HOME/.rvm/scripts/rvm”

    при это ничего не работало

    когда написал
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . $HOME/.rvm/scripts/rvm

    то есть без кавычек, то всё заработало

  24. admin says:

    марта 10, 2011 at 06:40 (#)

    yas, zinenko, это все козни Вордпресса, он не может понять, что два минуса можно ставить подряд без умысла использовать длинный дефиз и что нужно использовать двойные кавычки компьютерные, вместо английских двойных кавычек, а ведь они являются совершенно разными символами.

  25. dr.Johanson says:

    марта 10, 2011 at 20:05 (#)

    А я все делал по инструкции. И на єтапе проверки

    andre@ubuntu:~$ type rvm|head -n1

    получил

    rvm is /usr/local/bin/rvm

    И как быть?

  26. admin says:

    марта 11, 2011 at 06:39 (#)

    В .bashrc в конец добавьте вместо

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm»

    Вот эту строку без кавычек в конце:

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . $HOME/.rvm/scripts/rvm

    Либо набирайте все вручную и набирайте с кавычками, просто движок блога подменяет символы, например если видите в статье длинное тире, то это два подряд идущих знака «-»

  27. dr.Johanson says:

    марта 12, 2011 at 18:59 (#)

    Все сработало — потанцевал чутька.
    Однако установка под юзером из rvm не идет — недостаточно привелегий.
    Установил все под рутом (sudo bash).Однако єтож не дело работать под рутом. Под пользователем не вЫдает лдаже версию rails
    rails -v, а под рутом выдает. Посмотрел рельса установлена в каталог
    usr/local/rvm/gems
    Вообще непонятно.ПОд каким юзером нужно все это ставить?

  28. Greham says:

    марта 17, 2011 at 10:46 (#)

    @dr.Johanson rvm лучше устанавливать по этой инструкции , из которой становится ясно что есть 2 способа установки. Я себе на сервер (debian) ставил по system-wide installation guide.
    Почитай внимательно этот метод установки.

  29. crsde says:

    марта 20, 2011 at 01:09 (#)

    Строка для установки rvm заработала у меня.
    На сайте rvm говорят, ставить надо так:
    [ruby]
    $ bash < <( curl )
    [ruby]

    И еще, добавьте пожалуйста про необходимость установки зависимостей, выводимых в 'rvm notes', а то если еще не стоят некоторые dev-пакеты, начинают вылазить косяки в неприятных местах, приходится перекомпилировать.

  30. systemIV says:

    апреля 1, 2011 at 00:40 (#)

    у меня были проблемы из за отсутствия «curl»

  31. systemIV says:

    апреля 1, 2011 at 09:48 (#)

    Зачем что то добавлять??? Статья отличная. Да в ней есть ошибки, но если человеку надо он пойдёт и с англоязычных сайтов туториалы будет курить! По установке ничего сложного. А вот по использованию, эт да….
    Ждём новых статей=)

  32. devel says:

    апреля 22, 2011 at 20:36 (#)

    Спасибо большое.
    Такие статьи очень ценны для «чайников», подобных мне, которые только начинают прикасаться к Ruby и RoR.
    Большое дело делаете ;))

    С наилучшими пожеланиями :)

  33. says:

    апреля 26, 2011 at 16:31 (#)

    Главное из под root не ставить rvm, не стоит верить мануалу, что там не сильно много отличий :)

    Я был очень удивлен в свое время, сколько траблов это создает :)

  34. says:

    мая 19, 2011 at 21:01 (#)

    Коллеги! при установке после запуска команды «$ mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone –depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install»

    система пишет

    Too many arguments.

    В чем дело? что не так? все предварительные команды выполнялись успешно. ОС Ubuntu

  35. admin says:

    мая 19, 2011 at 21:17 (#)

    tim, дело в том, что перед флагом depth должен стоять не тире, а 2 знака минус, движок блога автоматом подменяет два минуса на тире.

  36. says:

    мая 20, 2011 at 05:52 (#)

    Спасибо!

    сработало, но после этого файл .bashrc так и не создался. По крайней мере в указанной папке его нет, да и поиск молчит

  37. admin says:

    мая 20, 2011 at 06:20 (#)

    если RVM работает, то все ОК. Этот файл не нужно создавать он уже присутствует в системе, но поскольку он скрытый вам не удалось его найти. Попробуйте в поиске включить опцию: Show hidden and backup files, тогда он будет включен в поиск.

  38. says:

    мая 20, 2011 at 07:03 (#)

    А, нет. Предыдущая команда выполнилась не успешно, и файла по прежнему нет. По окончании компилляции команды

    «$ mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone –depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install»

    командная строка выдает

    bash: ./install»: No such file or directory

    Соотвественно, файла .bashrc нет. И ведь вроде все по инструкции делаю… Хм…

  39. Alexey says:

    июля 19, 2011 at 14:19 (#)

    Хорошо бы установить curl, а то у меня потребовалась его установка. Команда sudo apt-get install curl

  40. Dmitry says:

    августа 26, 2011 at 14:14 (#)

    Я прошу прощения, а куда делась страница?

  41. says:

    августа 28, 2011 at 16:31 (#)

    Ни одна статья не отображается!

  42. Ras says:

    ноября 27, 2011 at 18:12 (#)

    Вот эту строку:
    mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone –depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install

    правильнее писать:
    mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone —depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install

    И что делать если после ввода: type rvm | head -n1
    появляется ошибка?

  43. admin says:

    ноября 27, 2011 at 19:28 (#)

    Ras, WP пережевывает 2 знака «минус» в одно тире. Что за ошибка возникает? Текст ошибки в студию!

  44. Ras says:

    ноября 27, 2011 at 20:51 (#)

    Вообщем после добавления строки:
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm»

    в терминале при открытии первой строкой выводится:
    bash: «/home/ras/.rvm/scripts/rvm»: Нет такого файла или каталога

    а на команду:
    type rvm | head -n1

    соответственно выводится:
    bash: type: rvm: не найден

  45. Ras says:

    ноября 27, 2011 at 20:57 (#)

    и да… в домашнем каталоге присутствует и .rvm и в нем scripts

  46. admin says:

    ноября 27, 2011 at 21:39 (#)

    Ras, обрати внимание на кавычки. Они типографские, попробуй код вручную набрать с "" — таким вот кавычками, а не такими: «». Посмотри сюда: разные кавычки — это разные символы.

  47. Ras says:

    ноября 27, 2011 at 22:01 (#)

    Да проще загрузить rvm в оболочку как функцию командой:
    echo ‘[[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm» ‘ >> ~/.bashrc

  48. vladiboc says:

    декабря 11, 2011 at 16:09 (#)

    кроме Ubuntu все что написано выше работает также в ALtlinux

  49. ivan says:

    января 26, 2012 at 15:56 (#)

    столкнулся с проблемой отсутствия zlib, спасло:
    rvm install 1.9.2-p0 —with-zlib-dir=$rvm_path/usr
    правда пришлось переустановить для р290

  50. admin says:

    января 26, 2012 at 16:44 (#)

    ivan, спасибо. У самого были пару раз такие проблемы, но в статье об их решении упомянуть забыл.

  51. ivan says:

    января 29, 2012 at 21:32 (#)

    Admin, пара вопросов..

    1) Нормально, что на GitHub залилось всего 3 файла..?

    Counting objects: 3, done.
    Writing objects: 100% (3/3), 203 bytes, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To :ipanika/rails_first.git
    * [new branch] master -> master

    Заливка Вашим способом не прошла:
    fatal: The remote end hung up unexpectedly
    error: failed to push some refs to ‘git@github.com:{username}/{projectname}.git’

    пришлось выполнить все действия по инструкции GH.

    2) «rails s» не запускает сервер, предлагает использовать «rails new path_app»

  52. Fakir88 says:

    февраля 11, 2012 at 14:21 (#)

    После запуска сервера ругался ExecJS::RuntimeUnavailable.
    Помогло добавление гема therubyracer и запуск
    bundle install —without assets
    убунта 11.10
    мб кому пригодитсья.

  53. Alc77 says:

    марта 28, 2012 at 19:59 (#)

    Fakir88, спасибо, добрый человек!
    Та же система, та же проблема. Установка execjs и therubyracer не помогли. Отключил assets — заработало! Хотелось бы узнать, а что делать, когда эти assets понадобятся?

  54. admin says:

    марта 29, 2012 at 11:10 (#)

    Необходимо также устанавливать среду исполнения JS, например Node.js. У меня стоит именно Node потому, что судя по сообщениям в блогах там меньше проблем, ну и вообще Node.js как-то чаще ставится, чем другие альтернативы.

  55. anon says:

    апреля 9, 2012 at 09:19 (#)

    Владимир, можешь переписать статью с учетом всех пожеланий изложенных в комментариях и с оглядкой на опыт, который у тебя появился за прошедший год? Было бы очень здорово, потому что я запутался, читая комментарии…

  56. admin says:

    апреля 9, 2012 at 14:54 (#)

    anon, лучше уже новую статью написать. Думаю, на этой неделе напишу.

  57. anon says:

    апреля 10, 2012 at 14:46 (#)

    admin, буду ждать.

  58. miskovaleksey says:

    мая 24, 2012 at 15:34 (#)

    Поправьте пожалуйсто вот это место: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm» — в последней «$HOME/.rvm/scripts/rvm» кавычки не те стоят. Пока руками не поправил не заработало!

  59. admin says:

    мая 28, 2012 at 21:05 (#)

    ВордПресс двойные кавычки заменяет на типографские, а это разные символы и разное значение. Кавычки там не обязательно ставить.

  60. says:

    сентября 11, 2013 at 20:11 (#)

    Владимир, огромная благодарность!
    Как не танцевал с бубном — не хотел rvm работать, всё писало «rvm is not a function». По Вашему мануалу сработало на ура. У меня в виртуалке Ubuntu 11.10 сервер. В качестве хоста W7. Ruby 2.0 и Rails 4.0.

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.