Discourse unter Windows für die Entwicklung installieren

:information_source: Diese Anleitung wurde unter Windows 10 und 11 getestet.

Um eine Entwicklungsumgebung für Discourse unter Windows einzurichten, können Sie die Funktion Windows Subsystem for Linux verwenden.

Diese Einrichtung erfordert die Installation von WSL 2. Sie ist nur in Windows 10 Builds 18917 oder höher verfügbar. Wir gehen davon aus, dass Sie bereits Windows Subsystem for Linux 2 (Ubuntu) auf Ihrem Windows 10-System installiert haben. WARNUNG: Installieren Sie Ubuntu 18.04 und nicht 20.04, da einige Installationen unter 20.04 fehlschlagen können. Weitere Informationen finden Sie in den Notizen vom 30. Juni 2020 am Ende dieses Beitrags.

Legen wir los!

Discourse installieren

  1. Befolgen Sie zunächst die Schritte aus dem Thema Beginners Guide to Install Discourse on Ubuntu for Development bis zum Schritt Discourse klonen.
  1. Bevor Sie die Datenbank einrichten, müssen Sie den PostgreSQL-Dienst und den Redis-Server manuell mit folgenden Befehlen starten:

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Folgen Sie dann allen verbleibenden Schritten des Ubuntu-Leitfadens.

Einen Befehl zum Starten von Discourse erstellen

Ihre Entwicklungsumgebung ist jetzt fast einsatzbereit. Das einzige Problem ist, dass Sie jedes Mal, wenn Sie Ubuntu unter Windows öffnen, den PostgreSQL-Dienst und den Redis-Server manuell starten müssen. Keine Sorge, wir können dies umgehen, indem wir einen benutzerdefinierten Befehl erstellen :wink:

cd ~

Erstellen Sie eine neue Datei mit dem Befehl nano start-discourse, fügen Sie den untenstehenden Inhalt ein, speichern Sie und beenden Sie.

#!/bin/bash

# zum Starten von PostgreSQL
sudo service postgresql start

# zum Starten des Redis-Servers
redis-server --daemonize yes

Ändern Sie nun die CHMOD-Berechtigungen mit dem folgenden Befehl:

chmod +x start-discourse

Und kopieren Sie die Datei in Ihren Bin-Ordner:

sudo cp start-discourse /usr/bin/

Fertig. Jetzt können Sie jedes Mal, wenn Sie Ubuntu Bash öffnen, einfach den folgenden Befehl ausführen und mit der Entwicklung beginnen :+1:

start-discourse

Alternativ können Sie, wenn Sie Windows 10 Enterprise, Pro oder Education Edition verwenden, eine Linux-Virtualmaschine in Hyper-V erstellen, um die Discourse-Entwicklungsumgebung einzurichten.

Hinweise zur Windows-Umgebung

Stand 30. Juni 2020:
Stand 1. Juli 2020

Zuletzt überprüft von @SaraDev am 2022-06-16T02:00:00Z


Dieses Dokument ist versionskontrolliert – schlagen Sie Änderungen auf GitHub vor.

52 „Gefällt mir“
How to install Discourse on windows
Help installing Discourse for Developer
Database connection error when setting up Discourse development environment using Linux Bash Shell on Windows 10
Restoring backup fails in Win10/Ubuntu development environment
How to Install Discourse on LocalHost in Windows?
How can i install Discourse forum on my win 10 dedicated server OVH
Error installing `bullseye-backports` when trying to install for Development
How to install on localhost
Restoring backup fails in Win10/Ubuntu development environment
Trying to set up Discourse on my website
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Unable to setup discourse in my windows 10
Self hosting discourse with WSL shows an error, the command shown also doesnt work
No such file or directory - convert (Errno::ENOENT)
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
I'm having trouble installing a local Discourse instance on Windows 11
Issues while installing Discourse on WSL
Guide to Setting Up Discourse Development Environment - Windows 11
Need help integrating code wrote on Edittext to the Discourse
Problem in development Installation
Contributing to Discourse development
Subscribe to post an ad
Restoring backup fails in Win10/Ubuntu development environment
Migrate a Ning forum to Discourse
Windows server publish method
Use the Discourse API ruby gem
Topics which users cannot directly reply to, but can create a linked topic?
How to add a new language
How to Start Sidekiq When Using Puma
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
How can I directly edit Discourse database from a GUI?
Can't set up dev environment due to cppjieba_rb failing to install
Cloning and making our own Discourse community
How to Add Ngrok to Allowed Hosts
»vagrant up« hangs
Discourse installation end to end on Windows Server 2016
No connection to db issue
How to Install Discourse on LocalHost in Windows?
WSL environment deadlocks
Problem with development on Windows with Docker and mounted volume
Please help, how do I install Discourse on macOS?
Discourse standalone
Set up a local Discourse Development Environment?
Migrate a NodeBB forum with Redis to Discourse

Okay, Lösung gefunden.

Mir ist aufgefallen, dass das Ersetzen von 127.0.0.1 durch localhost die Bilder reparieren würde.

Nach einigem Suchen ist dies der Befehl, mit dem Sie Discourse starten können:

DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u


Ich werde versuchen, die Anleitung später zu aktualisieren.

4 „Gefällt mir“

Gibt es eine Möglichkeit, diesen PR zu überprüfen?

Das würde diese Anleitung ein wenig benutzerfreundlicher machen.

3 „Gefällt mir“

Haben Sie eine Idee, warum ich nach bundle install\n die Meldung „Leider ist ein unerwarteter Fehler aufgetreten, und Bundler kann nicht fortfahren.“ erhalte?

1 „Gefällt mir“

Gleiches Problem

Können Sie einen Screenshot des Fehlers bereitstellen? Welche Ruby-Version ist installiert?

Ich habe Probleme mit Abhängigkeiten:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
Sie müssen Bundler 2 oder höher mit dieser Lockfile verwenden.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1

ux430uq@Asus-UX430UQ:~/discourse$ gem install bundler

Fetching: bundler-2.4.20.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    Sie haben keine Schreibberechtigungen für das Verzeichnis /var/lib/gems/2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] Passwort für ux430uq:
Fetching: bundler-2.4.20.gem (100%)
ERROR:  Error installing bundler:
        Die letzte Version von bundler (>= 0), die Ihre Ruby- & RubyGems-Version unterstützt, war 2.3.26. Versuchen Sie, sie mit `gem install bundler -v 2.3.26` zu installieren.
        bundler erfordert Ruby-Version >= 2.6.0. Die aktuelle Ruby-Version ist 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

Wie kann ich das einfach beheben? Ich habe versucht, 2.6.0 und dann 2.7.0 zu installieren, aber es gab immer wieder andere Probleme.

Wie in einigen der früheren Kommentare erwähnt, hatte ich auch einige Schwierigkeiten und Fehler, als ich versuchte, dieser Anleitung zu folgen – getestet auf einem Windows 10- und einem Windows 11-Desktop.

Nach einiger Ausprobiererei habe ich endlich Schritte gefunden, die zu einer voll funktionsfähigen Entwicklungsumgebung unter Windows 11 führen, getestet auf dem neuesten Build 22H2 und auch auf der kommenden 23H2 Release Preview (ich gehe davon aus, dass es auch auf dem neuesten Build von Windows 10 funktionieren wird).

Wenn es jemandem nützt, habe ich die Anleitung gerade hier veröffentlicht:-

Hoffentlich hilft das Leuten wie mir, die versuchen, Discourse unter Windows zum Laufen zu bringen :smiley:

2 „Gefällt mir“

Ich habe diese gesamte offizielle Anleitung noch einmal durchgesehen, um sicherzustellen, dass seit meinem letzten Versuch nichts kaputt gegangen ist.
Ich habe Ubuntu (nicht spezifizierte Version) über WSL unter Windows 11 installiert, was die letzte LTS-Version, in diesem Fall 22.04, installiert hat.

Ich bin auf keine Probleme gestoßen; alles war unkompliziert, keine Fehler, und die Dev-Installation funktioniert.

Wenn Sie in Zukunft Probleme bei der Installation von etwas mit einer unserer offiziellen Anleitungen haben, schreiben Sie bitte die Fehler auf und melden Sie sie uns, das ist immer nützlich :smile:


Zwei Warnungen allerdings:

Bei der Installation von Node.js:

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           SCRIPT DEPRECATION WARNING


  Dieses Skript, das sich unter https://deb.nodesource.com/setup_X befindet,
  wurde verwendet, um Node.js zu installieren, ist jetzt veraltet und wird
  schließlich inaktiviert.

  Besuchen Sie das NodeSource-Distributionen-Github und folgen Sie den
  Anweisungen zur Migration Ihres Repos.
  https://github.com/nodesource/distributions

  Das GitHub-Repository für NodeSource Node.js Linux-Distributionen enthält
  Informationen darüber, welche Versionen von Node.js und welche Linux-Distributionen
  unterstützt werden und wie die Installation erfolgt.
  https://github.com/nodesource/distributions


                          SCRIPT DEPRECATION WARNING

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

UM DIESE WARTEZEIT ZU VERMEIDEN, MIGRATEN SIE DAS SKRIPT
Fortsetzung in 60 Sekunden (drücken Sie Strg-C zum Abbrechen) ...

Beim Ausführen von redis-server --daemonize yes:

# WARNUNG Memory overcommit muss aktiviert sein! Ohne ihn kann ein Hintergrundspeichern oder eine Replikation unter geringem Arbeitsspeicher fehlschlagen. Wenn es deaktiviert ist, kann es auch ohne geringen Arbeitsspeicher zu Fehlern kommen. Siehe https://github.com/jemalloc/jemalloc/issues/1328. Um dieses Problem zu beheben, fügen Sie 'vm.overcommit_memory = 1' zu /etc/sysctl.conf hinzu und starten Sie dann neu oder führen Sie den Befehl 'sysctl vm.overcommit_memory=1' aus, damit dies wirksam wird.

Ich bin mir nicht sicher, warum ich dann so viele Probleme hatte! Vielleicht gab es etwas Seltsames in meiner Windows-Installation, das ich während meiner Fehlersuche behoben habe, ohne es zu merken! :stuck_out_tongue:

Ich bin aber immer noch zufrieden mit dem, was ich bisher gelernt habe, und freue mich darauf, weiterhin daran zu arbeiten, meine Foren nach Discourse zu migrieren.

2 „Gefällt mir“

Ich musste Windows neu installieren und habe jetzt ein frisches Windows 11 installiert.
Ich werde dem Leitfaden folgen und später berichten! Ich werde auch @AliBenBongo’s Leitfaden im Hinterkopf behalten.

1 „Gefällt mir“

Hier ist eine Nachlese.
Der Leitfaden könnte sicherlich ein Update gebrauchen, aber er funktioniert auf einem frischen Windows 11 22H2 immer noch wunderbar. :+1:
Das einzige Problem, das ich hatte, war, dass die WSL-Funktion standardmäßig nicht aktiviert war, obwohl der Befehl wsl in einem Terminal funktionierte:

3 „Gefällt mir“

Ich glaube, diese Anleitung ist veraltet. Die im Ubuntu/Debian-Leitfaden erwähnten Schritte existieren nicht mehr.

Gibt es eine Möglichkeit, all diese Schritte rückgängig zu machen, z. B. das Rückgängigmachen des Installationsskripts von Paketen, Gems und das Klonen?

Ist die Installation von 18.04 über 20.04 noch erforderlich?

Fehler bei der Installation von nodejs:

# apt install nodejs

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Einige Pakete konnten nicht installiert werden. Das könnte bedeuten, dass Sie
eine unmögliche Situation angefordert haben, oder, wenn Sie die
instabile Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder aus Incoming entfernt wurden.
Die folgenden Informationen helfen möglicherweise bei der Lösung des Problems:

Die folgenden Pakete haben nicht erfüllte Abhängigkeiten:
 nodejs : Hängt ab von: libc6 (>= 2.28) aber 2.27-3ubuntu1.6 soll installiert werden
E: Fehler beim Korrigieren von Problemen, Sie haben zurückgehaltene Pakete.```

Installation von 24.04 fehlgeschlagen, Host-System kann nicht auf Port 3000 zugreifen.

Ich habe es auf 24.04. zum Laufen gebracht. Ich empfehle, mehr Informationen darüber zu teilen, wie die Situation aussieht, wenn du den Server startest.

Versuche FORCE_HOSTNAME=localhost bin/ember-cli -u, wodurch sowohl der Backend- als auch der Frontend-Server gleichzeitig ausgeführt werden.

(Unterwegs: aus dem Gedächtnis)