Wie man Ruby on Rails unter Debian 12 installiert
Ruby on Rails oder RoR ist ein freies und quelloffenes Framework für Webanwendungen, das in Ruby geschrieben und unter der MIT-Lizenz veröffentlicht wurde. Rails ist ein Full-Stack-Webframework, mit dem du ganz einfach unternehmenstaugliche Anwendungen erstellen kannst. Rails wird mit verschiedenen Tools ausgeliefert, die es Entwicklern ermöglichen, sowohl Frontend- als auch Backend-Anwendungen zu erstellen. Ruby on Rails verfügt außerdem über eingebaute Sicherheitsfunktionen wie den Schutz vor gängigen Angriffen wie SQL-Injection, XSS und CSRF.
Ruby on Rails bietet eine Standardstruktur für die Datenbank, das Rendern von HTML-Vorlagen, einen Webservice und eine Webseite. Es folgt der Model-View-Controller (MVC)-Architektur und verwendet außerdem bekannte Designphilosophien wie Don’t Repeat Yourself (DRY), Convention over Configuration (CoC) und Active Records Pattern. Ruby on Rails wurde so konzipiert, dass es schnell und einfach zu benutzen und zu lernen ist. Einige bekannte Websites wie Twitch, Airbnb, Github, Soundcloud usw. wurden mit Rails entwickelt.
In dieser Anleitung führen wir dich durch die Installation von Ruby on Rails auf dem Debian 12 Server. Du wirst Ruby on Rails mit einem PostgreSQL-Datenbankserver und dem Ruby-Versionsmanager Rbenv installieren. Außerdem erstellst du ein Scaffold, die Grundstruktur des Rails-Projekts.
Voraussetzungen
Bevor du beginnst, solltest du sicherstellen, dass du Folgendes hast
- Einen Debian 12 Server.
- Einen Nicht-Root-Benutzer mit sudo-Administrator-Rechten.
Installieren der Abhängigkeiten
Im ersten Schritt wirst du einige grundlegende Abhängigkeiten auf deinem Debian-Server installieren. Dazu gehören der PostgreSQL-Datenbankserver, der als Datenbank für dein Rails-Projekt verwendet wird, node.js und der Yarn-Paketmanager, der von Rails zum Kompilieren statischer Assets verwendet wird.
Um zu beginnen, aktualisiere deinen Paketindex, indem du den Befehl apt update ausführst.
sudo apt update
Als Nächstes installierst du die Abhängigkeiten mit dem folgenden apt install-Befehl. Dazu gehören der PostgreSQL-Datenbankserver, der libpq-Treiber, Node.js, Yarn, Git und einige Systembibliotheken und Tools.
sudo apt install postgresql libpq-dev nodejs yarnpkg git zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
Bestätige mit y und fahre mit der Installation fort.
Sobald die Abhängigkeiten installiert sind, überprüfe den Status des PostgreSQL-Servers mit dem folgenden Befehl. Damit stellst du sicher, dass PostgreSQL auf deinem Debian-Rechner läuft und aktiviert ist.
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
Wenn PostgreSQL aktiviert ist, solltest du die Ausgabe aktiviert erhalten. Wenn PostgreSQL läuft, solltest du die Ausgabe active(running) oder active(exited) erhalten.
Überprüfe abschließend den Node.js- und Yarn-Paketmanager, indem du den folgenden Befehl ausführst.
node --version yarnpkg --version
In diesem Beispiel ist Node.js 18 und Yarn 1.22 installiert.
Rbenv installieren
Nachdem du die Paketabhängigkeiten installiert hast, musst du im nächsten Schritt Rbenv installieren, den Ruby-Versionsmanager für Unix-ähnliche Betriebssysteme. Mit Rbenv kannst du deine Ruby-Applikationsumgebung einfach verwalten und mehrere Ruby-Versionen auf deinem System installieren.
Melde dich mit folgendem Befehl bei deinem Benutzer an.
su - user
Lade den rbenv-Quellcode und das ruby-build-Plugin über den unten stehenden git-Befehl herunter.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Führe nun den folgenden Befehl aus, um deiner Shell einen eigenen PATH hinzuzufügen.
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Lade deine ~/.bashrc-Konfiguration neu, um die Änderungen zu übernehmen. Nachdem du den Befehl ausgeführt hast, sollte deine rbenv-Installation aktiviert sein.
source ~/.bashrc
Überprüfe rbenv, indem du den folgenden rbenv-Befehl ausführst. Wenn die Installation von rbenv erfolgreich war, solltest du die verfügbaren rbenv-Befehle/Optionen sehen.
rbenv commands
Installieren von Ruby über Rbenv
Wenn du Rbenv installiert hast, kannst du Ruby auf deinem System installieren. Mit Rbenv installierst du Ruby nur in deiner aktuellen Umgebung, was sich nicht auf das gesamte System auswirkt. Du wirst Ruby 3.2.2 in deiner aktuellen Benutzerumgebung installieren.
Führe den unten stehenden Befehl rbenv install aus, um Ruby 3.2.2 auf deinem System zu installieren.
rbenv install 3.2.2
Während der Installation solltest du dies sehen:
Sobald Ruby installiert ist, führe den folgenden Befehl aus, um die Standardversion von Ruby auf 3.2.2 einzustellen.
rbenv global 3.2.2
Überprüfe abschließend die Ruby-Version auf deinem System mit dem folgenden Befehl.
ruby -v
Wenn alles klappt, solltest du sehen, dass Ruby 3.2.2 installiert ist.
Installation von Ruby on Rails
Jetzt ist dein System konfiguriert und bereit, Ruby on Rails auf deinem Debian-Rechner zu installieren. In diesem Beispiel wirst du Ruby on Rails 7.0 installieren und die Liste der verfügbaren Rails-Versionen auf der offiziellen Website überprüfen.
Führe die folgenden gem-Befehle aus, um den Bundler zu installieren, und installiere dann Ruby on Rails 7.0.7.2.
gem install bundler gem install rails -v 7.0.7.2
Während der Installation solltest du eine Ausgabe wie die folgende sehen:
Führe nun den Befehl rebenv aus, um deine aktuelle Umgebung neu zu laden.
rbenv rehash
Zum Schluss führst du den Befehl rails aus, um sicherzustellen, dass Ruby on Rails installiert ist.
rails version rails -h
Wenn die Installation erfolgreich war, solltest du deine aktuelle Rails-Version und die Hilfeseite des rails-Befehls sehen.
Das erste Rails-Projekt erstellen
In diesem Abschnitt lernst du, wie du dein erstes Projekt mit Ruby on Rails erstellst. Du wirst PostgreSQL als Standarddatenbank für dein Rails-Projekt verwenden. Dazu musst du folgende Schritte ausführen:
- Den PostgreSQL-Benutzer für die Anwendung vorbereiten.
- Das erste Rails-Projekt erstellen.
Datenbankbenutzer vorbereiten
Zuerst musst du einen neuen PostgreSQL-Benutzer erstellen, der für deine Rails-Anwendung verwendet wird. Dieser Benutzer muss die Berechtigung haben, Datenbanken und Benutzer zu erstellen.
Gehe zurück zu deinem Benutzerkonto und melde dich mit dem unten stehenden Befehl am PostgreSQL-Server an.
sudo su sudo -u postgres psql
Erstelle nun einen neuen Benutzer bob mit dem Passwort p4sswordbob. Weisen Sie dem Benutzer bob neue Berechtigungen zum Erstellen einer Datenbank und Rollen zu.
CREATE USER bob WITH PASSWORD 'p4sswordbob'; ALTER USER bob CREATEDB CREATEROLE;
Überprüfe die Liste der Benutzer und Berechtigungen auf deinem PostgreSQL-Server mit dem unten stehenden Befehl.
\du
Du solltest den Benutzer bob mit den Privilegien CREATEDB und CREATEROLE sehen.
Gib \q ein, um dich vom PostgreSQL-Server abzumelden.
Zuletzt meldest du dich mit deinem Benutzer an und führst den folgenden psql-Befehl aus, um dich als neuer Benutzer bob am PostgreSQL-Server anzumelden.
su - user psql -U bob -h 127.0.0.1 -d postgres
Sobald du mit dem PostgreSQL-Server verbunden bist, führe die folgende Abfrage aus, um deine Verbindungsinformationen zu überprüfen.
\conninfo
Du solltest sehen, dass du dich mit dem PostgreSQL-Server als Benutzer bob verbunden hast.
Gib \q ein, um den PostgreSQL-Server zu verlassen.
Rails-Projekt erstellen
Nachdem du einen PostgreSQL-Benutzer angelegt hast, kannst du nun mit dem Rails-Kommandozeilenprogramm ein neues Rails-Projekt erstellen.
Um ein neues Rails-Projekt zu erstellen, führst du den folgenden Rails-Befehl aus. In diesem Beispiel wirst du ein neues Projekt testapp mit der Standarddatenbank PostgreSQL erstellen.
rails new testapp -d postgresql
Die Ausgabe des Befehls sollte wie folgt aussehen:
Nachdem das Projekt erstellt wurde, wird auch das neue Verzeichnis ~/testapp erstellt. Wechsle in das Verzeichnis ~/testapp und öffne die Datenbankkonfiguration config/database.yml mit deinem bevorzugten Texteditor.
cd testapp/ nano config/database.yml
Ändere die Standarddatenbankeinstellungen für Entwicklung, Test und Produktion. Achte darauf, dass du deinen PostgreSQL-Benutzernamen und dein Passwort eingibst.
development: <<: *default database: testapp_development # The specified database role is being used to connect to postgres. # To create additional roles in postgres see `$ createuser --help`. # When left blank, postgres will use the default role. This is # the same name as the operating system user running Rails. username: bob # The password associated with the postgres role (username). password: p4sswordbob # Connect on a TCP socket. Omitted by default since the client uses a # domain socket that doesn't need configuration. Windows does not have # domain sockets, so uncomment these lines. host: localhost # The TCP port the server listens on. Defaults to 5432. # If your server runs on a different port number, change accordingly. port: 5432
Speichere und beende die Datei, wenn du fertig bist.
Führe nun den folgenden Rails-Befehl aus, um die Datenbank zu migrieren. Dadurch wird automatisch eine neue Datenbank für dein Testapp-Projekt erstellt.
rails db:setup rails db:migrate
Unten siehst du die Ausgabe während der Datenbankmigration des Testapp-Projekts.
Nachdem die Datenbank migriert wurde, führe den folgenden Rails-Befehl aus, um das testapp-Projekt zu starten. Dadurch wird testapp innerhalb deiner IP-Adresse auf Port 3000 ausgeführt.
rails server -b 192.168.10.15
In der folgenden Ausgabe solltest du sehen, dass testapp läuft.
Starte nun deinen Lieblings-Webbrowser und rufe die IP-Adresse deines Servers gefolgt von Port 3000 auf, zum Beispiel http://192.168.10.15:3000/. Wenn deine Installation erfolgreich war, solltest du die Standardseite index.html von Ruby on Rails sehen.
Drücke Strg+c, um deine Rails-Anwendung zu beenden.
Rails-Gerüst für das Starter Kit
Ein Scaffold ist eine automatische Methode, um die Grundstruktur eines Rails-Projekts zu erstellen, die einen Controller, ein Model und eine View umfasst.
Führe den folgenden Rails-Befehl aus, um Scaffold Books mit den drei Feldern title, author und publication_year zu erstellen.
rails g scaffold books title:string author:string publication_year:integer
Migriere nun die Datenbank, um die Änderungen mit dem unten stehenden Rails-Befehl zu übernehmen.
rails db:migrate
Als Nächstes führst du dein Rails-Projekt aus, indem du den unten stehenden Befehl rails server ausführst.
rails server -b 192.168.10.15
Sobald testapp läuft, überprüfe das Büchergerüst über den URL-Pfad /books, z. B. http://192.168.10.15:3000/books. Wenn alles gut läuft, solltest du das generierte Gerüst wie das folgende sehen:
Du kannst jetzt neue Daten in das Books-Gerüst einfügen, wie im Folgenden gezeigt:
Schlussfolgerung
Abschließend hast du die Installation von Ruby on Rails mit dem PostgreSQL-Datenbankserver und Rbenv auf dem Debian 12-Server abgeschlossen. Außerdem hast du gelernt, wie du Gerüste für grundlegende Strukturen für das Rails-Projekt erstellst.