Установка Ruby on Rails на FreeBSD

Сначала установим компоненты, необходимые для Rails. БД я выбрал Postgresql, можно вместо неё использовать sqlite или MySQL.

portmaster -d devel/automake devel/bison
ftp/curl databases/gdbm devel/git
devel/libtool textproc/libxml2
textproc/libxslt textproc/libyaml
www/node-devel security/openssl
devel/readline security/sudo ftp/wget

Теперь от пользователя ставим rbenv – инструмент, позволяющий манипулировать разными версиями Ruby и Rails. Т.к. у меня zsh, то я вношу изменения в ~/.zshrc (для Bash - ~/.bashrc)

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
$ source ~/.zshrc

Далее устанавливаем Ruby:

$ rbenv install 2.0.0-p195
$ rbenv rehash
$ rbenv global 2.0.0-p195

И Rails:

$ gem install rails
$ rbenv rehash

В принципе всё. Теперь можно создавать свой проект:

$ rails new myapp --database=postgresql
$ cd myapp
$ bundle install
$ rails s

В браузере переходим по адресу http://localhost:3000/

Для привязки конкретной версии Ruby к проекту, делаем:

$ rbenv local 2.0.0-p195

###Git

Теперь настроим систему контроля версий Git (core.editor устанавливайте какой нравится):

$ git config --global user.name "Your Name"
$ git config --global user.email your.email@example.com
$ git config --global alias.co checkout
$ git config --global core.editor "mcedit"

Github

Теперь надо зарегестрироваться на github. Там мы будем хранить свои проекты. Затем:

$ ssh-keygen -t rsa -C "your.email@example.com"
$ cat ~/.ssh/id_rsa.pub

Полученный ключ вставляем сюда:

https://github.com/settings/ssh

И проверяем, видит ли Github наш ключ:

$ ssh -T git@github.com

Ответ должен быть примерно такой:

Hi ******! You've successfully authenticated, but GitHub does not provide shell access.

Postgresql

Осталось настроить БД. Тут стандартно для FreeBSD:
Если postgresql уже стоит более старой версии, то меняем:

# portmaster -d -o databases/postgresql92-client postgresql-client-\*
# portmaster -d -o databases/postgresql92-server postgresql-server-\*

Если ничего не стояло — ставим:

# portmaster -d databases/postgresql92-client databases/postgresql92-server

в /etc/rc.conf:

postgresql_enable="YES"
postgresql_class="postgres"

В /etc/login.conf

postgres|PostgreSQL User Account:\
    :charset=UTF-8:\
    :lang=ru_RU.UTF-8:\
    :tc=default:


# cap_mkdb /etc/login.conf

Для инициализации кластера:

# /usr/local/etc/rc.d/postgresql initdb

Запуск:

# /usr/local/etc/rc.d/postgresql start

Теперь ставим админский пароль на БД:

# su pgsql
$ psql -U pgsql template1
template1=#\password

И запрещаем ходить в БД без пароля, ставим везде md5 вместо trust и прочего.
В файле /usr/local/pgsql/data/pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.0/24          md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     pgsql                                trust
#host    replication     pgsql        127.0.0.1/32            trust
#host    replication     pgsql        ::1/128                 trust

Для того,чтобы изменения вступили в силу - перезагружаем Postgres

# service postgresql restart

Теперь PgAdmin-ом можно пробовать зацепиться к БД с именем pgsql и паролем, который установили.

Вроде всё.


Использованные материалы:

Поделиться Комментарии