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.
Лучшая благодарность автору — ваши комментарии!
марта 7, 2011 at 19:24 (#)
Думаю всё же wubi…
марта 7, 2011 at 19:57 (#)
Спасибо, поправил
марта 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.
марта 8, 2011 at 11:57 (#)
А как же VIM в качетве редактора :)? Еще было бы неплохо прикрутить к сайту орфус (или что-то для проверки орфоргафии), поправил бы Вам пару ошибок :).
Консоль перезапускать необязательно, достаточно сделать source ~/.bashrc
марта 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(в твоём конкретном случае).
марта 8, 2011 at 12:01 (#)
dre3k, спасибо, чуть позже поправлю. Думаю, билды не стоит указывать в статье, вместо этого опишу процедуру установки последней версии git, ruby и т.д. в конкретный момент, когда человек будет читать статью, потому, как к тому времени могут появиться новые версии.
Не знал, что sqlite3-ruby старая либа, поправлю все сегодня.
Я через bundle install устанавливаю свежую версию, а до этого старую, которая не используется более.
марта 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, 2011 at 12:38 (#)
Это все понятно, только у меня bundler устанавливает sqlite, rspec и rspec-rails непосредственно в gemset, при этом gemset blog абсолютно чист (был), а после bundler install в нем появились все зависимости, которые я прописывал для второй части учебника и sqlite3 из текущей части. Папка .bundler пуста, в ней находитя только файл конфигурации bundler’а.
марта 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.
марта 8, 2011 at 12:54 (#)
2 admin
Понял, был не прав. Просто глянул в ~/.bundler а там не пусто, вот и написал глупость.
Поправка: в ~/.bundler будут утанавливатся джэмы из git репозитариев, т.е. всякие там форки и edge-версии. Как например edge-версия rails если в Gemfile прописать:
gem ‘rails’, :git => ‘git://github.com/rails/rails.git’
марта 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 писать
марта 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.
марта 8, 2011 at 13:22 (#)
2 dre3k
лучше использовать rvm get head для обновления.
— к сожалению сейчас так =)
марта 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
марта 8, 2011 at 14:22 (#)
Лучший редактор для руби, как известно — Textmate. А под линукс есть Redcar, который уже прекрасно работает
марта 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.
марта 8, 2011 at 22:57 (#)
У меня почему-то не получается работать с консолью Rails после установки Ruby 1.9.2
Приходится каждый раз переустанавливать Ruby c параметром:
—with-readline-dir=$HOME/.rvm/usr
Почему-то об этом здесь не упоминается. Это только у меня такая проблема?
марта 8, 2011 at 23:17 (#)
С Vim не работал, но общее представление о нем имею, по мне так он слишком сложен и требует умения слепого 10-ти пальцевого набора. gedit, kate и т.д. -простые редакторы, которые вполне удовлетворят любого разработчика, темболее новичка.
марта 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, потому что так нагляднее.
марта 9, 2011 at 14:50 (#)
Эту книгу надо писать на github, с разметкой markdown, чтобы страждующие могли вномить изменения — вот это было бы круто.
А то я слышал что народ пытается написать художественную книгу на гитхабе, но имхо с художественной ничего не выйдет, а вот техническая — самое оно будет.
марта 9, 2011 at 17:38 (#)
я также добавляю ~/.gemrc файл, чтобы gem’ы устанавливались без встроенной документации
марта 9, 2011 at 23:31 (#)
там где по два дефиса надо — заменилось на одно тире.
А вобще похоже, что неплохая статья. Буду знакомых сюда отправлять)
марта 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
то есть без кавычек, то всё заработало
марта 10, 2011 at 06:40 (#)
yas, zinenko, это все козни Вордпресса, он не может понять, что два минуса можно ставить подряд без умысла использовать длинный дефиз и что нужно использовать двойные кавычки компьютерные, вместо английских двойных кавычек, а ведь они являются совершенно разными символами.
марта 10, 2011 at 20:05 (#)
А я все делал по инструкции. И на єтапе проверки
получил
И как быть?
марта 11, 2011 at 06:39 (#)
В .bashrc в конец добавьте вместо
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm»
Вот эту строку без кавычек в конце:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . $HOME/.rvm/scripts/rvm
Либо набирайте все вручную и набирайте с кавычками, просто движок блога подменяет символы, например если видите в статье длинное тире, то это два подряд идущих знака «-»
марта 12, 2011 at 18:59 (#)
Все сработало — потанцевал чутька.
Однако установка под юзером из rvm не идет — недостаточно привелегий.
Установил все под рутом (sudo bash).Однако єтож не дело работать под рутом. Под пользователем не вЫдает лдаже версию rails
rails -v, а под рутом выдает. Посмотрел рельса установлена в каталог
usr/local/rvm/gems
Вообще непонятно.ПОд каким юзером нужно все это ставить?
марта 17, 2011 at 10:46 (#)
@dr.Johanson rvm лучше устанавливать по этой инструкции , из которой становится ясно что есть 2 способа установки. Я себе на сервер (debian) ставил по system-wide installation guide.
Почитай внимательно этот метод установки.
марта 20, 2011 at 01:09 (#)
Строка для установки rvm заработала у меня.
На сайте rvm говорят, ставить надо так:
[ruby]
$ bash < <( curl )
[ruby]
И еще, добавьте пожалуйста про необходимость установки зависимостей, выводимых в 'rvm notes', а то если еще не стоят некоторые dev-пакеты, начинают вылазить косяки в неприятных местах, приходится перекомпилировать.
апреля 1, 2011 at 00:40 (#)
у меня были проблемы из за отсутствия «curl»
апреля 1, 2011 at 09:48 (#)
Зачем что то добавлять??? Статья отличная. Да в ней есть ошибки, но если человеку надо он пойдёт и с англоязычных сайтов туториалы будет курить! По установке ничего сложного. А вот по использованию, эт да….
Ждём новых статей=)
апреля 22, 2011 at 20:36 (#)
Спасибо большое.
Такие статьи очень ценны для «чайников», подобных мне, которые только начинают прикасаться к Ruby и RoR.
Большое дело делаете ;))
С наилучшими пожеланиями :)
апреля 26, 2011 at 16:31 (#)
Главное из под root не ставить rvm, не стоит верить мануалу, что там не сильно много отличий :)
Я был очень удивлен в свое время, сколько траблов это создает :)
мая 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
мая 19, 2011 at 21:17 (#)
tim, дело в том, что перед флагом depth должен стоять не тире, а 2 знака минус, движок блога автоматом подменяет два минуса на тире.
мая 20, 2011 at 05:52 (#)
Спасибо!
сработало, но после этого файл .bashrc так и не создался. По крайней мере в указанной папке его нет, да и поиск молчит
мая 20, 2011 at 06:20 (#)
если RVM работает, то все ОК. Этот файл не нужно создавать он уже присутствует в системе, но поскольку он скрытый вам не удалось его найти. Попробуйте в поиске включить опцию: Show hidden and backup files, тогда он будет включен в поиск.
мая 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 нет. И ведь вроде все по инструкции делаю… Хм…
июля 19, 2011 at 14:19 (#)
Хорошо бы установить curl, а то у меня потребовалась его установка. Команда sudo apt-get install curl
августа 26, 2011 at 14:14 (#)
Я прошу прощения, а куда делась страница?
августа 28, 2011 at 16:31 (#)
Ни одна статья не отображается!
ноября 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
появляется ошибка?
ноября 27, 2011 at 19:28 (#)
Ras, WP пережевывает 2 знака «минус» в одно тире. Что за ошибка возникает? Текст ошибки в студию!
ноября 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: не найден
ноября 27, 2011 at 20:57 (#)
и да… в домашнем каталоге присутствует и .rvm и в нем scripts
ноября 27, 2011 at 21:39 (#)
Ras, обрати внимание на кавычки. Они типографские, попробуй код вручную набрать с "" — таким вот кавычками, а не такими: «». Посмотри сюда: разные кавычки — это разные символы.
ноября 27, 2011 at 22:01 (#)
Да проще загрузить rvm в оболочку как функцию командой:
echo ‘[[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm» ‘ >> ~/.bashrc
декабря 11, 2011 at 16:09 (#)
кроме Ubuntu все что написано выше работает также в ALtlinux
января 26, 2012 at 15:56 (#)
столкнулся с проблемой отсутствия zlib, спасло:
rvm install 1.9.2-p0 —with-zlib-dir=$rvm_path/usr
правда пришлось переустановить для р290
января 26, 2012 at 16:44 (#)
ivan, спасибо. У самого были пару раз такие проблемы, но в статье об их решении упомянуть забыл.
января 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»
февраля 11, 2012 at 14:21 (#)
После запуска сервера ругался ExecJS::RuntimeUnavailable.
Помогло добавление гема therubyracer и запуск
bundle install —without assets
убунта 11.10
мб кому пригодитсья.
марта 28, 2012 at 19:59 (#)
Fakir88, спасибо, добрый человек!
Та же система, та же проблема. Установка execjs и therubyracer не помогли. Отключил assets — заработало! Хотелось бы узнать, а что делать, когда эти assets понадобятся?
марта 29, 2012 at 11:10 (#)
Необходимо также устанавливать среду исполнения JS, например Node.js. У меня стоит именно Node потому, что судя по сообщениям в блогах там меньше проблем, ну и вообще Node.js как-то чаще ставится, чем другие альтернативы.
апреля 9, 2012 at 09:19 (#)
Владимир, можешь переписать статью с учетом всех пожеланий изложенных в комментариях и с оглядкой на опыт, который у тебя появился за прошедший год? Было бы очень здорово, потому что я запутался, читая комментарии…
апреля 9, 2012 at 14:54 (#)
anon, лучше уже новую статью написать. Думаю, на этой неделе напишу.
апреля 10, 2012 at 14:46 (#)
admin, буду ждать.
мая 24, 2012 at 15:34 (#)
Поправьте пожалуйсто вот это место: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm» — в последней «$HOME/.rvm/scripts/rvm» кавычки не те стоят. Пока руками не поправил не заработало!
мая 28, 2012 at 21:05 (#)
ВордПресс двойные кавычки заменяет на типографские, а это разные символы и разное значение. Кавычки там не обязательно ставить.
сентября 11, 2013 at 20:11 (#)
Владимир, огромная благодарность!
Как не танцевал с бубном — не хотел rvm работать, всё писало «rvm is not a function». По Вашему мануалу сработало на ура. У меня в виртуалке Ubuntu 11.10 сервер. В качестве хоста W7. Ruby 2.0 и Rails 4.0.