Быстрая установка Ruby on Rails 3 и Ruby из пакетов на Ubuntu
В этом посте я опишу установку Ruby on Rails и самого Ruby из пакетов. Это не в пример проще, чем установка его из исходников. К тому же пакеты проще администрировать. Установка производилась на чистой Ubuntu 10.10. В конце статьи будет одна строка для apt-get’а, которая сразу всё поставит, для тех кому лень читать. Думаю это сильно облегчит новичкам знакомство с миром Rails.
Подготавливаем систему (ставим недостающие пакеты)
Если вы уверены, что эти пакеты уже стоят, то можете их не ставить. Для работы с mysql они обязательны.
> sudo apt-get install mysql-server-5.1 mysql-client-5.1 libmysql-ruby libmysqlclient-dev
Ставим Ruby1.8 и RubyGems из пакетов
Версия 1.8 руби выбрана потому, что, например, Radiant CMS не работает под 1.9.*
> sudo apt-get install ruby1.8 ruby1.8-dev libruby1.8-extras libdbd-mysql-ruby1.8 rubygems1.8 rubygems-doc rdoc
Ставим Rails 3.0.0 и другие гемы
Перед version идёт два дефиса (“–“).
> sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n sqlite3-ruby
> sudo gem install rack-mount –version=0.4.0
> sudo gem install rails –version=3.0.0
Делаем симлинки
> sudo ln -s /var/lib/gems/1.8/bin/rails /usr/local/bin/rails
> sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle
> sudo ln -s /var/lib/gems/1.8/bin/rake /usr/local/bin/rake
Проверяем установку
> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
> gem -v
1.3.7
> rails -v
Rails 3.0.0
Создаем тестовое приложение
> mkdir /home/andrey/ruby/
> cd /home/andrey/ruby/
> rails new testapp –database=mysql
> cd ./testapp
Правим конфиг /config/database.yml в котором заполняем пароль (password: “pass_for_root”). Затем устанавливаем гемы, необходимые для тестового приложения.
> sudo bundle install
Sudo здесь используется, т.к. сначала идёт попытка установить гемы в общесистемный каталог гемов. У меня это /var/lib/gems/1.8/. И лучше ставить именно тудаю Если прав не хватит, то установка пойдёт вдомашний каталог текущего пользователя, что не очень хорошо. Запускаем rails сервер, с помощью команды:
> rails server
Далее заходим по адресу http://localhost:3000/
И вуаля, видим наше тестовоевеб-приложение.
Установка одной строкой
Указанные команды ставят Ruby on Rails. Как тестировать установку и создавать тестовое приложение написано выше.
sudo apt-get install install mysql-server-5.1 mysql-client-5.1 libmysql-ruby libmysqlclient-dev ruby1.8 ruby1.8-dev libruby1.8-extras libdbd-mysql-ruby1.8 rubygems1.8 rubygems-doc; sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n sqlite3-ruby; sudo gem install rack-mount --version=0.4.0; sudo gem install rails --version=3.0.0; ln -s /var/lib/gems/1.8/bin/rails /usr/local/bin/rails; ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle; ln -s /var/lib/gems/1.8/bin/rake /usr/local/bin/rake;
Если есть вопросы, пишите в комментариях.
UPD: Вообще народ делает очень хорошую штуку – Ubuntu on Rails. Но пока её нет в репозитариях. Только на launchpad.
UPD: Если вам не важно, какую версию Rails ставить, то установкастановится ещё проще:
sudo apt-get install rails
После этого установится Rails 2.3.5
Большущее спасибо! Установил все без проблем.
Пожалуйста, Александр!
Вот ради таких комментов я и завел этот блог! Всегда рад помочь!
dns@dns-desktop:~/ruby$ sudo bundle install
Could not locate Gemfile
в чем проблема?
Напишите сюда ваш Gemfile, тогда смогу сказать точнее. Пока похоже на то, что один из репозиатриев недоступен, где гемы лежат.
Токарчук рулит ) статья помогла ) спасибо )))
Не получается выполнить sudo gem install rails –version=3.0.0
Пишет: “ERROR: Could not find a valid gem ‘–version=3.0.0’ (>= 0) in any repository”.
Подключенные гемы:
*** CURRENT SOURCES ***
http://rubygems.org/
http://gems.rubyonrails.org
В чем мб проблема?
Время идёт. Сейчас актуальная версия Rails – 3.0.3 (http://rubygems.org/gems/rails)
Попробуйте: sudo gem install rails –version=3.0.3
Да я пониманию, в репозиториях есть и 3.0.0 и 3.0.3. Это ситуацию не изменит.
А что выводит?
«ERROR: Could not find a valid gem ‘–version=3.0.3′ (>= 0) in any repository».
В винде поставил рельсы без проблем, но не могу зающать руби в геме pik. После команды pik use 187, руби все равно не работает за пределами бинарника.
Не рельсы блин, а магия.
Попробуйте удалить gems.rubyonrails.org из источников, и попробовать снова.
$ gem sources -r http://gems.rubyonrails.org
См. http://forums.pragprog.com/forums/148/topics/4567
Да, я это видел. Этого репозитория и не было изначально. Была такая же ошибка и я его добавил.
В общем поставил я рельсы. Поставил из репа руби, рубигемс и выполнил sudo gem install rails и все, на борту 3.0.3. Единственное, не знаю как сделать по дефолту их, т.к. стоят рельсы 2 из репа, а пик не работает почему то 🙂
Отлично! Так надо вторые убрать:
sudo gem uninstall rails
$ sudo gem install rails
Successfully installed rails-3.0.3
1 gem installed
Installing ri documentation for rails-3.0.3…
File not found: lib
$ rails -v
bash: /usr/bin/rails: Нет такого файла или каталога
система не видит рельсы
Просто симлинков не хватает:
> sudo ln -s /var/lib/gems/1.8/bin/rails /usr/local/bin/rails
> sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle
> sudo ln -s /var/lib/gems/1.8/bin/rake /usr/local/bin/rake
Вот в том и дело, что симлинки сделал, а рельсов не видно. После ребута увидел свои рельсы, ура 🙂 Спасибо за помощь.
Вы не пробовали rvm? Читал, что проще устанавливать и следить за рельсами.
Отлично, рад что помог! RVM не пробовал.
У меня не в какую не хочет открываться http://localhost:3000 🙁
Ruby – 1.8.7
Gem – 1.5.2
Rails – 3.0.4
В чём может быть проблема?
А rails server то запускали? Windows? Файерволом не заблокирован, порт не занят?
> А rails server то запускали?
Конечно. Делал всё как официальном сайте описано http://rubyonrails.org/download
> Windows?
Боже упаси! 🙂 У меня Ubuntu Server 10.04.1
> Файерволом не заблокирован, порт не занят?
Каспера на компе отключал, всё равно не показывает. А как проверить не занят ли порт?
Пробовал и так http://127.0.0.1:3000 и так http://127.0.0.1 но всё равно ничего не показывает 🙁
Ну т.е. рельсы в процессах есть?
Порты можно глянуть так: netstat -l
Забавно у меня получается – Ruby есть в процессах, а Rauls нет 🙂
Порт не занят.
После rails server выдаёт:
root@**********:~# rails server
Usage:
rails new APP_PATH [options]
Options:
-G, [–skip-git] # Skip Git ignores and keeps
[–dev] # Setup the application with Gemfile pointing to your Rails checkout
-b, [–builder=BUILDER] # Path to an application builder (can be a filesystem path or URL)
[–edge] # Setup the application with Gemfile pointing to Rails repository
[–skip-gemfile] # Don’t create a Gemfile
-r, [–ruby=PATH] # Path to the Ruby binary of your choice
# Default: /usr/bin/ruby1.8
-d, [–database=DATABASE] # Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db)
# Default: sqlite3
-O, [–skip-active-record] # Skip Active Record files
-J, [–skip-prototype] # Skip Prototype files
-T, [–skip-test-unit] # Skip Test::Unit files
-m, [–template=TEMPLATE] # Path to an application template (can be a filesystem path or URL)
Runtime options:
-s, [–skip] # Skip files that already exist
-f, [–force] # Overwrite files that already exist
-p, [–pretend] # Run but do not make any changes
-q, [–quiet] # Supress status output
Rails options:
-h, [–help] # Show this help message and quit
-v, [–version] # Show Rails version number and quit
Description:
The ‘rails new’ command creates a new Rails application with a default
directory structure and configuration at the path you specify.
Example:
rails new ~/Code/Ruby/weblog
This generates a skeletal Rails installation in ~/Code/Ruby/weblog.
See the README in the newly created application to get going.
Ага, так а rails server нужно делать находясь в каталоге с приложением. Роман, вы точно оттуда делаете?
Да, я делаю из созданного каталога. У меня что-то непонятное:
Выполняю rails -v
Пишет Rails 3.0.4
А в папке /var/lib/gems/1.8/bin/ лежит только файл rake 🙁
Сейчас ещё одно приложение создал и оттуда запустил:
root@******:~# cd first
root@******:~/first# rails server
=> Booting WEBrick
=> Rails 3.0.4 application starting in development on ht tp://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-02-15 17:02:51] INFO WEBrick 1.3.1
[2011-02-15 17:02:51] INFO ruby 1.8.7 (2010-01-10) [x86 _64-linux]
[2011-02-15 17:02:51] INFO WEBrick::HTTPServer#start: p id=21120 port=3000
^C[2011-02-15 17:04:51] INFO going to shutdown …
[2011-02-15 17:04:51] INFO WEBrick::HTTPServer#start done.
Exiting
Ага, уже лучше. Веб-сервер значит стартует. Теперь остается понять, чего же он падает. По предыдущему комменту – надо сделать симлинки. Похоже, что вы их уже сделали.
Нет, я их не сделал как раз потому, что файлов rails и bundle у меня в папке /var/lib/gems/1.8/bin/ нет. 🙁 Вот и пытаюсь разобраться почему.
Они наверное установлены в домашнюю папку юзера. Попробуйте их от рута установить, насколько я помню в этом случае они в /var/lib/… ставятся.
Но я под рутом и устанавливал всё. Сейчас нашёл:
/usr/lib/ruby/gems/1.8/gems/rails-3.0.4/bin/rails
У меня похоже криво RoR был установлен. Сейчас попробовал переустановить:
root@******:~# gem install rails
Successfully installed rails-3.0.4
1 gem installed
Installing ri documentation for rails-3.0.4…
File not found: lib
ERROR: While generating documentation for rails-3.0.4
… MESSAGE: exit
… RDOC args: –ri –op /usr/lib/ruby/gems/1.8/doc/rails-3.0.4/ri –quiet lib –title rails-3.0.4 Documentation
(continuing with the rest of the installation)
Installing RDoc documentation for rails-3.0.4…
File not found: lib
ERROR: While generating documentation for rails-3.0.4
… MESSAGE: exit
… RDOC args: –op /usr/lib/ruby/gems/1.8/doc/rails-3.0.4/rdoc –quiet lib –title rails-3.0.4 Documentation
(continuing with the rest of the installation)
После команды Rails server Пишет : Could not find gem ‘sqlite3 (>= 0, runtime)’ in any of the gem sources listed in your Gemfile. Подскажите , что сделать?
Скорее всего вы не указали тип БД при создании приложения (rails new testapp –database=mysql)
поэтому бзается sqlite.
указал, но в database.yml
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
как надо исправить?
Вот мой конфиг(database.yml), который сгенерил rails new testapp –database=mysql (перед database два дефиса):
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql2
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: testapp_development
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
# Warning: The database defined as “test” will be erased and
# re-generated from your development database when you run “rake”.
# Do not set this db to the same as development or production.
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: testapp_test
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: testapp_production
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
Андрей, скажите пожалуйста, Я следуя всем вашим рекомендациям по установке RoR и создания тестового приложения последовал и всё получилось, но когда начал делать другой прект на команду ruby script/generate он пишет No such file or directory — script/generate (LoadError)…..В чём может быть дело?
Думаю, неправильно создалось приложение.
Но войдя в папку testapp и пробуя ruby script/generate он отвечает так же..
И в script находится только один файл rails…
script/generate было раньше, теперь надо делать rails generate …
Тоже самое с запуском – rails server
Спасибо большое, всё получилось)))
Отлично, рад помочь!)
Спасибо Андрюха!
и привет из Екб 😉
О, Санёк! Привет, рад видеть тебя в своём уютненьком 🙂
вот ноут взял hp dv6 6051er решил на нём убунту воткнуть. мана помогла твоя )
Поздравляю, отличному ноуту – отличная ось!) Рад, что мана помогла.
Но с бубном я поплясал – особенно когда решил RVM после устаноки рельс воткнуть, + прыг скок с мускулом от скулайта, ппц.
И пришлось обратно на бук вернуть винду 7 а сверху виртуалкой с убунту, поскольку нет дров на вайвай у либо они не встают под ось, да еще и падала постоянно под этим буком
порнография хлеще немецкой
Сань, так а надо сначала RVM ставить, а потом уже Rails. А ты думал, всё легко получится? Пмонится я со своим первым линухом (Red Hat какой-то бородатой версии) провел много времени, но потом всё-таки поставил. Если интересно, думаю ты вернешься к этому вопросу и разберешься. Со своей стороны готов оказать всяческую помощь и поддержку.
я уже всё замутил, во всю экспериментирую. но если что обращусь
Увидел неприятное сообщение: «Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)»
Если вы используете Ubuntu 11.04, то скорее всего вас ждёт то де самое:-)
Даная проблема решается просто-надо установить node.js, например так:
> sudo apt-get install python-software-properties
> sudo add-apt-repository ppa:chris-lea/node.js
> sudo apt-get update
> sudo apt-get install nodejs
Спасибо! На 11.10 такая же фигня((
Спасибо большое за статью! Все поставилось, теперь будем учить)))
Не заметил сразу. Возникла вот такая ошибка:
Started GET “/assets/rails.png” for 127.0.0.1 at Tue Nov 15 16:52:49 +0400 2011
Mysql2::Error (Unknown database ‘testapp2_development’):
Эм, а почему у вас запросы на статику доходят до движка, который ошибку выплёвывает?
мне кажется дело не в статике, просто стэк вылез, сделай базу и всё
Неплохой набор из двух статей можно прочитать здесь: unixfun.ru/archives/83 и здесь: unixfun.ru/archives/76
Там на мой взгляд подробнее описана настройка PostgreSQL.
Руководств по установке RoR на сервер — много. Но мой написан для тех, кто сталкивается с ruby вообще впервые. Поэтому кроме настройки рабочего окружения я, по возможности, буду рассказывать и об основных особенностях RoR.