Gegeben ist ein nacktes Debian 8. Rails und die dazugehörigen Gems benötigen einige Debian Pakete (wir fügen zusätzlich das PostgreSQL Repository hinzu da wir Rails nicht mit sqlite oder MySQL nutzen möchten):
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
aptitude update
aptitude -y install ca-certificates ruby ruby-dev gcc libxml2-dev libsqlite3-dev make zlib1g-dev postgresql-9.4 postgresql-server-dev-9.
Damit User Gems installieren können müssen wir noch eine /etc/gemrc
Datei erstellen mit folgendem Inhalt:
gem: --user-install
Wenn man die Installation beschleunigen möchte und keine Dokus benötigt kann man noch --no-document
ergänzen.
Danach kann ein neuer User angelegt und Rails installiert werden:
adduser api
su api
cd ~
Hier haben wir nun zwei Optionen, die Gems Userweit zu installieren oder ordnerspezifsch (Ich empfehle Version 2):
1. Möglichkeit:
gem install rails --verbose
Aktuell (Rail 4.2.0) installiert dies 27 Gems: actionmailer, actionpack, actionview, activejob, activemodel, activerecord, arel, builder, bundler, erubis, globalid, hike, loofah, mail, mime-types, multi_json, nokogiri, rack, rack-test, rails, rails-dom-testing, rails-html-sanitizer, railties, sprockets, sprockets-rails, thor, tilt
Um die Gems in der Shell ausführen zu können müssen wir noch unsere PATH Variable anpassen, dazu folgenden Code in die ~/.bashrc schreiben:
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
Wenn man die Datei nun einliest mit
source ~/.bashrc
wird die PATH Variable erweitert und wir können nun Rails nutzen.
Mit dem Befehl
rails --version
kann überprüft werden ob Rails erfolgreich installiert wurde. Die Ausgabe lautet etwa: Rails 4.2.0
Unser erstes Rails Projekt existiert schon. Um Appspezifisch Gems zu installieren bietet sich bundle an. Dazu müssen wir in unser neues Projekt wechseln:
cd mailapi
bundle install --path=vendor/bundle
2. Möglichkeit:
Wir erstellen eine Konfigurationsdatei für bundler und sagen Ihm das Gems in ein bestimmtes Verzeichnis Installiert werden sollen, danach installieren wir mit bundle die Gems:
mkdir .bundle
echo "---\nBUNDLE_PATH: vendor/bundle\nBUNDLE_DISABLE_SHARED_GEMS: '1'\n" > .bundle/config
bundle install
Links:
Rails Starter Guide