Ruby on Rails unter Debian 12 mit Mise installieren
Rails ist ein freies und quelloffenes Webframework, das mit der Programmiersprache Ruby entwickelt wurde. Es basiert auf dem Model-View-Controller-Prinzip (MVC) und eignet sich ideal für die Entwicklung leistungsstarker und dynamischer Webseiten. Rails verfolgt das Konzept „Konvention vor Konfiguration“ (CoC) und bietet integrierte Funktionen wie Routing, Datenverarbeitung und Asset-Management.
Diese Anleitung zeigt dir Schritt für Schritt, wie du Ruby on Rails unter Debian 12 installierst. Du richtest Ruby ein und installierst alle notwendigen Abhängigkeiten, um eine einfache Rails-Anwendung auszuführen.
Voraussetzungen
- Du hast Zugriff auf ein Debian-12-System, auf dem Ruby on Rails installiert werden soll.
- Ein A-Record verweist auf die IP-Adresse deines Servers, z. B.:
app.example.com
.
Mise und benötigte Ruby-Abhängigkeiten installieren
Mise ist ein Tool zur Versions- und Abhängigkeitsverwaltung von Ruby. Die folgenden Schritte zeigen, wie du Mise installierst und alle benötigten Ruby-Komponenten einrichtest.
Schritt 1: APT-Paketindex aktualisieren
Aktualisiere zuerst den Paketindex deines Systems:
$ sudo apt update
Schritt 2: Erforderliche Systembibliotheken installieren
Installiere die Bibliotheken und Tools, die Ruby benötigt:
$ sudo apt install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev git -y
Schritt 3: Mise herunterladen und installieren
Führe den folgenden Befehl aus, um Mise herunterzuladen und zu installieren:
$ curl https://mise.run | sh
Dieser Befehl installiert Mise im Verzeichnis .local/bin/mise
im Home-Verzeichnis deines Benutzers.
Schritt 4: Mise in deiner Bash-Sitzung aktivieren
Füge folgenden Befehl deiner ~/.bashrc
-Datei hinzu, um Mise in der Shell zu aktivieren:
$ echo "eval \"\$(/home/user/.local/bin/mise activate bash)\"" >> ~/.bashrc
Lade anschließend die Konfiguration neu, um die Änderungen in der aktuellen Sitzung zu übernehmen:
$ source ~/.bashrc
Schritt 5: Mise-Installation überprüfen
Prüfe, ob Mise korrekt installiert wurde, und zeige die installierte Version an:
$ mise -v
Beispielausgabe:
____ ___ (_)_______ ___ ____ ____ / /___ _________ / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \ / / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/ /_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/ /_/ 2024.12.24 linux-x64 (b04359f 2024-12-31)
Schritt 6: Mise-Diagnose ausführen
Führe abschließend den folgenden Befehl aus, um die Installation zu testen und sicherzustellen, dass alles korrekt eingerichtet ist:
$ mise doctor
Der Befehl liefert Informationen zur Mise-Umgebung, einschließlich Shell, Build-Konfiguration und Systemstatus. Achte darauf, dass die folgende Zeile in der Ausgabe erscheint:
No problems found
Ruby und Rails unter Debian 12 installieren
RubyGems, auch bekannt als gem
, ist der Standard-Paketmanager für Ruby. Damit kannst du Bibliotheken und Abhängigkeiten auf deinem Server installieren. Wenn du Ruby mit Mise installierst, ist RubyGems bereits enthalten – damit lassen sich Frameworks wie Rails bequem einrichten. Die folgenden Schritte zeigen dir, wie du Ruby mit Mise installierst, RubyGems einrichtest und Rails auf deinem Debian-12-System konfigurierst.
Schritt 1: Ruby mit Mise installieren
Verwende diesen Befehl, um die aktuelle Ruby-3-Version zu installieren:
$ mise use -g ruby@3
Dieser Befehl installiert die neueste Ruby-3-Version. Um die genaue Version zu prüfen, kannst du die offizielle Ruby-Release-Seite aufrufen.
Beispielausgabe:
mise ruby@3.3.6 ✓ installed
mise ~/.config/mise/config.toml
tools: ruby@3.3.6
Schritt 2: Ruby-Version prüfen
Überprüfe die installierte Ruby-Version mit folgendem Befehl:
$ ruby -v
Erwartete Ausgabe:
ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux]
Schritt 3: Bundler installieren
Installiere das bundler
-Paket, das Abhängigkeiten in Ruby-Projekten verwaltet:
$ gem install bundler
Beispielausgabe:
Fetching bundler-2.6.2.gem
Successfully installed bundler-2.6.2
Parsing documentation for bundler-2.6.2
Installing ri documentation for bundler-2.6.2
Done installing documentation for bundler after 0 seconds
1 gem installed
A new release of RubyGems is available: 3.5.22 → 3.6.2!
Run `gem update --system 3.6.2` to update your installation.
Schritt 4: RubyGems aktualisieren
Aktualisiere RubyGems auf die neueste Version:
$ gem update --system
Schritt 5: Rails installieren
Installiere das Rails-Framework mit RubyGems:
$ gem install rails
Beispielausgabe bei erfolgreicher Installation:
Done installing documentation for zeitwerk, thor, rack, rackup, concurrent-ruby, tzinfo, i18n, connection_pool, activesupport, useragent, nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, rack-test, rack-session, erubi, builder, actionview, actionpack, railties, marcel, activemodel, activerecord, globalid, activejob, activestorage, actiontext, mini_mime, mail, actionmailer, actionmailbox, websocket-extensions, websocket-driver, nio4r, actioncable, rails after 37 seconds
38 gems installed
Schritt 6: Rails-Version prüfen
Mit folgendem Befehl überprüfst du die installierte Rails-Version:
$ rails -v
Beispielausgabe:
Rails 8.0.1
Schritt 7: Node.js für Rails installieren
Installiere Node.js Version 22 mit Mise, um JavaScript in Rails-Anwendungen auszuliefern:
$ mise use -g node@22
Beispielausgabe:
gpg: Signature made Tue 03 Dec 2024 08:37:27 PM UTC
gpg: using RSA key 108F52B48DB57BB0CC439B2997B01419BD92F80A
gpg: Good signature from "Ruy Adorno <ruyadorno@hotmail.com>" [unknown]
mise node@22.12.0 ✓ installed
mise ~/.config/mise/config.toml
tools: node@22.12.0
Schritt 8: Node.js-Version anzeigen
Führe diesen Befehl aus, um die Node.js-Version anzuzeigen:
$ node -v
Ausgabe:
v22.12.0
Schritt 9: Yarn mit Npm installieren
Installiere Yarn global mit Npm:
$ npm install -g yarn
Beispielausgabe bei erfolgreicher Installation:
added 1 package in 907ms
npm notice
npm notice New major version of npm available! 10.9.0 -> 11.0.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.0.0
npm notice To update run: npm install -g npm@11.0.0
npm notice
Reshimming mise 22.12.0...
Schritt 10: Yarn-Version prüfen
Führe folgenden Befehl aus, um die installierte Yarn-Version zu überprüfen:
$ yarn -v
Erwartetes Ergebnis:
1.22.22
Falls du stattdessen Ubuntu verwendest, kannst du Ruby on Rails auch unter Ubuntu 24.04 mit ähnlichen Schritten installieren.
Rails-Anwendung unter Debian 12 starten und ausführen
Rails stellt eine Kommandozeilenschnittstelle bereit, mit der sich Anwendungen schnell erstellen und verwalten lassen. Die folgenden Schritte zeigen dir, wie du eine neue Rails-Anwendung initialisierst und startest.
Schritt 1: Neues Rails-Projekt erzeugen
Um ein neues Projekt namens myrailsapp
zu erstellen, verwende diesen Befehl:
$ rails new myrailsapp
Dieser Befehl legt ein neues Verzeichnis myrailsapp
an und füllt es mit allen wichtigen Projektdateien. Die Struktur sieht folgendermaßen aus:
.
├── app
├── bin
├── config
├── config.ru
├── db
├── Dockerfile
├── Gemfile
├── Gemfile.lock
├── lib
├── log
├── public
├── Rakefile
├── README.md
├── script
├── storage
├── test
├── tmp
└── vendor
13 directories, 6 files
Schritt 2: Überblick über die Projektstruktur
- config.ru: Rack-Konfigurationsdatei, die als Einstiegspunkt der App dient.
- Dockerfile: Anleitung zur Containerisierung der App mit Docker.
- Gemfile: Listet alle benötigten Ruby-Gems auf.
- Gemfile.lock: Sperrt die Versionen der Gems zur Sicherstellung der Konsistenz.
- Rakefile: Definiert Tasks, die mit Rake ausgeführt werden können.
- README.md: Dokumentation zum Ausführen der Anwendung.
- app: Enthält den Anwendungs-Code wie Controller, Views und Models.
- bin: Beinhaltet Rails-Skripte und ausführbare Dateien.
- config: Konfigurationsdateien, Umgebungsvariablen, Routen usw.
- db: Datenbankschema, Migrationen und Seed-Daten.
- lib: Eigene Ruby-Module und Libraries.
- log: Logdateien für Entwicklung und Produktion.
- public: Statische Dateien wie Bilder, CSS und JavaScript.
- script: Zusätzliche benutzerdefinierte Skripte.
- storage: Persistente Dateien und Uploads.
- test: Tests, gegliedert nach Modulen wie Controller oder Models.
- tmp: Zwischenspeicher, PID-Dateien und temporäre Daten.
- vendor: Externe Bibliotheken und Abhängigkeiten.
Schritt 3: In das Projektverzeichnis wechseln
Wechsle ins Projektverzeichnis, um dort weiterzuarbeiten:
$ cd myrailsapp
Schritt 4: Port 3000 in der Firewall öffnen
Erlaube eingehende Verbindungen auf Port 3000, dem Standardport für Rails im Entwicklungsmodus:
$ sudo ufw allow 3000/tcp
Schritt 5: UFW-Konfiguration neu laden
Aktualisiere die Firewall-Regeln mit diesem Befehl:
$ sudo ufw reload
Schritt 6: Rails-Server starten
Starte den Entwicklungsserver und binde ihn an alle Netzwerkschnittstellen:
$ rails server --binding=0.0.0.0
Beispielausgabe bei erfolgreichem Start:
=> Booting Puma
=> Rails 8.0.0.1 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 6.5.0 ("Sky's Version")
* Ruby version: ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux]
* Min threads: 3
* Max threads: 3
* Environment: development
* PID: 30417
* Listening on http://0.0.0.0:3000
Use Ctrl-C to stop
Schritt 7: Anwendung im Browser aufrufen
Öffne in einem Webbrowser (z. B. Chrome) die folgende Adresse:
http://Server-IP:3000
Die Standardseite der Rails-Anwendung sollte nun angezeigt werden.
Schritt 8: Rails-Server beenden
Um den laufenden Rails-Server zu beenden, drücke im Terminal Strg + C
.
Rails-Anwendung anpassen und eine benutzerdefinierte Startseite festlegen
Standardmäßig zeigt Rails über die Root-Route eine Willkommensseite an. In dieser Anleitung erfährst du, wie du dein myrailsapp
-Projekt so anpasst, dass eine eigene Startseite mit einer Greetings-Nachricht angezeigt wird. Dafür erstellst du einen neuen Controller, eine View-Datei und passt die Routing-Konfiguration an.
Schritt 1: Neuen Controller mit Aktion erstellen
Verwende das Rails-Kommandozeilen-Tool, um einen Home
-Controller mit der Aktion index
zu generieren:
$ rails generate controller Home index
Beispielausgabe:
create app/controllers/home_controller.rb
route get "home/index"
invoke erb
create app/views/home
create app/views/home/index.html.erb
invoke test_unit
create test/controllers/home_controller_test.rb
invoke helper
create app/helpers/home_helper.rb
invoke test_unit
Schritt 2: Standard-View-Datei sichern
Sichere die ursprüngliche View-Datei, bevor du Änderungen daran vornimmst, indem du sie umbenennst:
$ mv app/views/home/index.html.erb app/views/home/index.html.erb.ORIG
Diese Datei erzeugt HTML-Ausgaben mit eingebettetem Ruby-Code, wenn die index
-Aktion des Home
-Controllers aufgerufen wird.
Schritt 3: Neue View-Datei erstellen
Erstelle eine neue Version der View-Datei mit einem Texteditor wie nano
:
$ nano app/views/home/index.html.erb
Füge folgenden Inhalt ein:
<h1>Greetings</h1>
Speichere die Datei und beende den Editor.
Schritt 4: Root-Route konfigurieren
Öffne die Datei routes.rb
, um die neue Startseite als Root-Route festzulegen:
$ nano config/routes.rb
Füge innerhalb des Blocks Rails.application.routes.draw do
folgende Zeile hinzu:
root "home#index"
Speichere deine Änderungen und schließe die Datei.
Schritt 5: Rails-Server neu starten
Starte den Rails-Server neu und binde ihn an alle Netzwerkschnittstellen:
$ rails server --binding=0.0.0.0
Schritt 6: Angepasste Rails-App im Browser aufrufen
Öffne in deinem Webbrowser die folgende Adresse und ersetze Server-IP
durch die tatsächliche IP deines Servers:
http://Server-IP:3000
Die neue Startseite mit der Nachricht Greetings sollte nun angezeigt werden.
Fazit
Du hast erfolgreich Ruby on Rails unter Debian 12 installiert, eine Beispielanwendung erstellt und die Startseite angepasst. Für den produktiven Einsatz kannst du Rails als Systemdienst einrichten und Nginx als Reverse Proxy verwenden, um Anfragen sicher zu verwalten. Ausführlichere Informationen findest du in der offiziellen Ruby on Rails-Dokumentation.