Installing the Discourse-Entwicklungsumgebung auf Ubuntu 设i Ubuntu 上安装 Discourse 开发环境

:warning: Dieser Leitfaden richtet sich nur an die Konfiguration der Discourse-Entwicklungsumgebung. Wenn Sie Discourse in einer Produktionsumgebung installieren müssen, besuchen Sie bitte: Install Discourse in production with the official supported instructions.

:information_source: Die englische Originalversion der Einrichtung der Entwicklungsumgebung finden Sie unter: Set up a local Discourse Development Environment?.


Dieser Artikel konzentriert sich nur auf die Einrichtung der Entwicklung unter Ubuntu, da Discourse auf Ruby basiert und die Ruby-Entwicklungsumgebung unter Ubuntu am einfachsten einzurichten ist. Daher wird die Ausführung von Discourse in der Produktionsumgebung auch offiziell unter Ubuntu empfohlen. Obwohl unsere Community auch unter REHL problemlos läuft, da Docker-Container verwendet werden, ist es ratsam, eine Ubuntu-Umgebung zu verwenden, wenn Sie Discourse entwickeln möchten.

Wenn Sie Windows verwenden, müssen Sie die WSL-Umgebung installieren. WSL ist eine auf Ubuntu basierende Umgebung, die von Windows bereitgestellt wird und hauptsächlich zur Lösung von Problemen bei der Entwicklung von Linux-Anwendungen unter Windows dient.

Dieser Artikel geht davon aus, dass Sie Ruby/Rails/Postgres/Redis noch nicht in Ihrer Ubuntu-Umgebung installiert haben. Beginnen wir mit der Konfiguration der Entwicklungsumgebung!

Obwohl dieser Entwicklungsleitfaden davon ausgeht, dass Sie eine Ubuntu-Entwicklungsumgebung verwenden, können alle auf Debian basierenden Linux-Systeme verwendet werden.

Dieser Entwicklungsleitfaden wurde unter Ubuntu 18 verifiziert und erfordert keine zusätzlichen Schritte zur Einrichtung der Entwicklungsumgebung.

:exclamation: Aufgrund von Unterschieden bei der Verwendung von Ubuntu/Debian für die Entwicklungsumgebung müssen Sie möglicherweise die folgenden Informationen beim Entwickeln unter Ubuntu/Debian konsultieren:

Installation der Discourse-Testumgebung unter Ubuntu 20.04 und neuer

Unter Ubuntu 20.04 und neueren Versionen wird standardmäßig OpenSSL 3.0.2 installiert. Möglicherweise müssen Sie es aus einer früheren OpenSSL-Version kompilieren und die obige Version ersetzen (die offiziell empfohlene Version ist OpenSSL-1.1.1n). Sie müssen auch die installierte Ruby-Version überprüfen. Sie können den Befehl ruby --version verwenden, um die Ruby-Version anzuzeigen. Discourse verwendet derzeit noch Ruby 2. Wenn Sie Ruby 3.x oder eine neuere Version verwenden, müssen Sie Ihre Ruby-Version herabstufen. Es wird empfohlen, ein Ruby-Versionsverwaltungstool zur Versionsherabstufung zu verwenden. Für die aktuelle Ausführungsumgebung von Discourse hält die offizielle Stelle Ruby 2.7.6 für die am besten geeignete Version für Discourse. Weitere Informationen finden Sie unter: Notes about Installing Discourse on Ubuntu 20.04 - #2 by SaraDev.

Installation der Discourse-Testumgebung unter Ubuntu Versionen vor 20.04

Der folgende Abschnitt wurde am 16.05.22 von @pfaffman hinzugefügt. Möglicherweise tritt ein Fehler auf, aber möglicherweise auch nicht.

HINWEIS: Bitte beachten Sie: Failed to build ruby 2.7.5 on ubuntu 22.04 · rbenv/ruby-build · Discussion #1940 · GitHub für relevante Informationen.

Ende der @pfaffman-Ergänzungen.

Nach unseren Testerfahrungen kann es unter Ubuntu 22 zu Kompilierungs- und Paketfindungsfehlern kommen. Wir haben die lokale Entwicklungsumgebung bisher nur unter 20.04 eingerichtet.

Installation der Discourse-Abhängigkeiten

Als normaler Benutzer können Sie den folgenden Befehl im Terminal ausführen: dieses Skript. Der obige Befehl hilft Ihnen, Rails schnell in Ihrer lokalen Entwicklungsumgebung einzurichten.

Der auszuführende Befehl lautet:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)

Der obige Befehl installiert die folgenden Pakete auf Ihrem lokalen System:

Wenn einige Software bereits auf Ihrem lokalen Betriebssystem installiert ist oder Sie nicht alle Software installieren möchten, konsultieren Sie bitte das Skript und wählen Sie die Software aus, die Sie derzeit nicht installieren möchten. Der obige Installationsskript installiert alle für den Betrieb von Discourse erforderlichen Softwarepakete, die den Betrieb von Discourse unterstützen.

Nachdem Sie alle Discourse-Abhängigkeiten installiert haben, können wir mit der Installation von Discourse fortfahren.


Das obige Bild zeigt die Installationsoberfläche unter Ubuntu. Der gesamte Softwareinstallationsprozess ist recht zeitaufwendig und kann je nach System über 5 Minuten dauern.

Discourse klonen

Klonen Sie Discourse in den Ordner ~/discourse

git clone https://github.com/discourse/discourse.git ~/discourse

~ definiert den aktuellen Home-Ordner, was bedeutet, dass das Discourse-Programm in Ihren Home-Ordner kopiert wird.

Da wir das WSL-Subsystem verwenden, klonen wir die Dateien tatsächlich auf mein Laufwerk D.

Datenbank einrichten

Erstellen Sie einen Benutzer mit demselben Namen wie Ihr Ubuntu-Benutzername:

sudo -u postgres createuser -s "$USER"

Wenn Sie bei der Ausführung des obigen Befehls eine Fehlermeldung erhalten:

createuser: error: could not connect to database template1: could not connect to server: No such file or directory

Bitte konsultieren Sie: iSharkFly - 飞鲨.

Discourse starten

Wechseln Sie in Ihr geklontes Discourse-Verzeichnis:

cd ~/discourse

Installieren Sie die benötigten Gems

source ~/.bashrc
bundle install

Installieren Sie auch die benötigten JS-Abhängigkeiten

yarn install

Bis zu diesem Punkt haben Sie alle benötigten Gems und Abhängigkeiten installiert. Versuchen Sie, die folgenden Befehle auszuführen:

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Wenn während der Ausführung ein Fehler auftritt, konsultieren Sie bitte: iSharkFly - 飞鲨.

Versuchen Sie, den folgenden Befehl auszuführen:

bundle exec rake autospec

Ihr Projekt sollte alle Tests bestehen.

Dieser Test ist sehr zeitaufwendig und kann übersprungen werden, sonst dauert es wahrscheinlich Stunden.

Führen Sie den folgenden Befehl aus, um den Server zu starten:

bundle exec rails server

Nach Abschluss der obigen Installationsschritte sollten Sie auf Ihr lokal installiertes Discourse über http://localhost:3000 zugreifen können.

Ab Discourse 2.5+ ist EmberCLI für die lokale Entwicklungsumgebung obligatorisch:

Wenn Sie direkt über die Benutzeroberfläche auf Port 3000 zugreifen, erhalten Sie die folgende Eingabeaufforderung:


Wechseln Sie in Ihrem Konsolen-Terminal in den Ordner (cd ~/discourse) und führen Sie aus:

bin/ember-cli

Sie sollten Ihre lokale Discourse-Installation über die Adresse http://localhost:4200 aufrufen können.

:warning: Beachten Sie, dass diese beiden Server gleichzeitig gestartet werden müssen. Ember-cli greift über einen Reverse-Proxy auf 3000 zu.

Erstellen eines neuen Admin-Kontos

Bevor Sie sich in der Entwicklungsumgebung anmelden können, müssen Sie ein Administratorkonto erstellen. Führen Sie den folgenden Befehl aus, um es zu erstellen:

RAILS_ENV=development bundle exec rake admin:create

Bitte folgen Sie den Anweisungen in der Befehlszeile, um dieses Administratorkonto zu erstellen.

Die einzugebenden Informationen sind E-Mail-Adresse und Passwort.

Konfigurieren von E-Mails

Führen Sie MailHog aus:

mailhog

Nachdem Sie alle oben genannten Schritte abgeschlossen haben, ist Ihre lokale Discourse-Entwicklungsumgebung konfiguriert. Sie können sich jetzt als Administrator bei Discourse anmelden.

Wenn Sie Discourse-Plugins entwickeln möchten, konsultieren Sie bitte: Developing Discourse Plugins - Part 1 - Create a basic plugin.


2 „Gefällt mir“

Hallo, welcher Benutzer ist mit dem Ubuntu-Systembenutzernamen gemeint?

Sie müssen ihn nicht selbst finden. Dieser Befehl bedeutet, dass die Umgebungsvariable $USER auf den Benutzernamen gesetzt wird. Sie können ihn einfach ausführen. Diese Aussage erklärt, was dieser Befehl tut.

3 „Gefällt mir“

Richtig, danke.

Das ist genau das, was gemeint ist.

1 „Gefällt mir“

Okay, danke für deine geduldige Antwort

Tatsächlich wurde Chinesisch übersetzt, ich bin hier, um es besonders zu loben.