Installer Discourse sur Ubuntu ou Debian pour le développement

Personnellement, je supprimerais votre pi (sauf si vous avez quelque chose à sauvegarder) et je recommencerais à zéro, ou je commencerais simplement sur une nouvelle carte SD séparée.

Il semble que vous ayez eu deux installations de Discourse - d’où peut-être le second processus Redis.

1 « J'aime »

rm -rf * ? Ou est-ce trop destructeur ?

Ça marche maintenant. Le chargement de la page prend très longtemps et des timeouts se produisent car cela prend trop de temps.

E, [2024-11-08T14:57:11.960623 #2213] ERROR -- : worker=0 PID:2323 running too long (65s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:18.033374 #2213] ERROR -- : worker=0 PID:2323 timeout (65s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.607509 #2213] ERROR -- : reaped #<Process::Status: pid 2323 SIGKILL (signal 9)> worker=0                                                                                                                             
E, [2024-11-08T14:57:20.645299 #2213] ERROR -- : worker=1 PID:2324 running too long (63s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:20.645461 #2213] ERROR -- : worker=1 PID:2324 timeout (63s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.681291 #2213] ERROR -- : reaped #<Process::Status: pid 2324 SIGKILL (signal 9)> worker=1                                                                                                                             
I, [2024-11-08T14:57:23.676422 #2555]  INFO -- : worker=0 ready                                                                                                                                                                              
I, [2024-11-08T14:57:23.681733 #2556]  INFO -- : worker=1 ready 
1 « J'aime »

Quel modèle de Pi utilisez-vous ? Je ne tenterais pas cela sur moins qu’un Pi 4.

Cela prendra certainement du temps.

Une fois que le JavaScript sera généré, émettez un autre appel de navigateur. Cela devrait alors fonctionner.

C’était déjà (je pense que c’était après le embroider<0xC2><0xA0>webpack et le discourse-plugins<0xC2><0xA0>apply-patches (quelque chose comme ça)). Je suis sur un Pi 4.

1 « J'aime »

Ces travailleurs sont des licornes (back-end). Ils semblent prêts. Vous devez vous assurer que le front-end est également construit.

Et n’oubliez pas de vous connecter sur http://localhost:4200

Comment saurai-je quand il aura fini de construire ?

1 « J'aime »

Vous obtenez quelque chose comme :

[ember-cli] Build successful (41838ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 23127ms
[ember-cli] Babel: admin (1) | 4067ms
[ember-cli] Funnel (422) | 2826ms (6 ms)

(ces temps sont sur mon méga-PC !)

Raspberry Pi 5 (8 Go) :

[ember-cli] Build successful (148604ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 83461ms
[ember-cli] @embroider/compat/app (1) | 13488ms
[ember-cli] Babel: discourse-plugins (25) | 9313ms (372 ms)
[ember-cli] Babel: admin (1) | 8695ms
[ember-cli] Funnel (407) | 8557ms (21 ms)

Cependant, en regardant la mémoire de mon pi 5, il utilise déjà 4,27 Go rien qu’avec Discourse en cours d’exécution et un seul onglet Chromium ouvert !

Donc, si vous rencontrez une utilisation intensive du swap (ce qui est en soi une mauvaise idée sur une carte SD), il sera très lent d’en arriver là. Vérifiez avec la commande htop dans un autre terminal.

Vous pourriez trouver difficile de faire fonctionner cela sur un pi avec moins de 8 Go !

1 « J'aime »

Je pense que j’ai aussi compris ça.

Je vais exécuter cela et je reviens vers vous.

Quand il a dit ceci :

Le dernier montant enregistré était ceci :

Puis il s’est bloqué (et l’est toujours). Il a probablement dépassé la limite. J’ai fermé l’onglet du navigateur mais il est toujours bloqué. Je ne peux même pas faire CTRL+C.

Oui, je crains que votre petit pi n’ait besoin de plus de mémoire. Une fois qu’il est saturé comme ça, il se bloque.

Une option consiste à ajouter un disque NVMe et à augmenter le swap.

Vous pourrez alors augmenter le swap en toute sécurité.

Je pense que la seule autre solution est de trouver un 8 Go 5 pour cette tâche et d’utiliser votre 4 pour autre chose.

1 « J'aime »

Bonjour

Lorsque je tape la commande suivante, rien ne se passe :

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
L'image montre une fenêtre de terminal avec une commande pour exécuter un script d'installation de Rails sur un système Linux. (Légendé par l'IA)

Manque-t-il quelque chose ?

Peut-être que vous n’avez pas wget installé ?

Vérifiez si c’est le cas avec

which wget

Sinon, vous pouvez probablement l’installer avec

sudo apt-get install wget -y
3 « J'aime »

Au fait, j’ai ajouté un disque NWMe cette semaine et mon Pi 5 fonctionne très bien. J’ai également augmenté le swap (ce qui est un processus légèrement différent d’un système Linux normal)

Et surtout, cela a nécessité une réinstallation complète d’une installation de développement de Discourse.

J’ai trouvé qu’en suivant les instructions dans le message d’origine, tout s’est déroulé sans problème, donc il semble que le script et la compatibilité Pi soient en très bon état en ce moment, merci pour toutes vos contributions !

6 « J'aime »

Salut à tous,

J’ai configuré Discourse avec succès sur mon serveur Ubuntu 24.04 LTS local pour le développement. Le guide a fonctionné, les deux dernières commandes s’exécutent sans erreur.

Mais comment puis-je y accéder via le réseau ? Le serveur Ubuntu n’a pas d’interface graphique où localhost:4200 fonctionnerait.
Et ServerIP:4200 indique qu’il ne peut pas être atteint.

Des suggestions pour activer l’accès depuis les appareils connectés sur mon réseau local ?

Merci !

2 « J'aime »

Si vous démarrez Rails avec bin/rails -b 0.0.0.0, cela devrait le rendre disponible à d’autres hôtes sur votre réseau. Vous devrez ensuite également démarrer Ember séparément dans un nouvel onglet avec bin/ember-cli.

Ensuite, visiter ServerIP:4200 devrait fonctionner (sauf si, bien sûr, vous avez des problèmes de pare-feu).

3 « J'aime »

J’ai essayé une installation d’Ubuntu 24 sur WLS2. [^1]

Voici les problèmes que j’ai rencontrés :

  • E: Impossible de trouver le paquet libltdl7-dev

  • Votre version de Ruby est 3.2.1, mais votre Gemfile spécifie ~> 3.3
    Avec la mise à jour de la version Ruby à > 3.3 récemment, le script doit également être mis à jour : install-rails/linux at main · discourse/install-rails · GitHub

    • Ce que j’ai fait :
      rbenv install 3.3.7
      rbenv global 3.3.7
      rbenv rehash
  • ERREUR Support moteur non pris en charge pour /home/arkshine/discourse : voulu : {"pnpm":"^9"} (actuel : {"node":"v18.20.6","pnpm":"10.5.2"})

    • sudo est nécessaire : sudo pnpm install [^2]
  • ERREUR Échec du passage de pnpm à v9.15.5. Il semble que le CLI pnpm soit manquant à "/home/arkshine/.local/share/pnpm/.tools/pnpm/9.15.5/bin" ou soit incorrect

    • Lors de l’exécution de pnpm install. J’ai pu résoudre le problème avec :
      • npm install -g corepack@latest
      • corepack use pnpm@latest-9

En tant qu’utilisateur non root, le manque de sudo dans le code rend impossible l’exécution à la fin. Je ne sais pas s’il existe une méthode intelligente, mais je ne l’ai pas trouvée. Je n’ai pas eu ces problèmes avec Ubuntu 22.
En tant que root, j’ai réussi à le faire fonctionner.

En aparté, il existe Developing Discourse using a Dev Container comme alternative.

[^1] : Parce que la mise à jour de la version Ruby nécessite maintenant v3.3+, je n’ai pas pu corriger mon installation avec Ubuntu 22.
[^2] : Si vous installez en tant qu’utilisateur non root.

2 « J'aime »

Concernant Ubuntu 22, j’ai réussi à le faire fonctionner à nouveau. Je suis juste un idiot. :baymax_yes:

Mon problème initial était que rbenv ne contenait que la version 3.3.0-dev.
J’obtenais ce genre d’erreur :

(base) arkshine@HOME:~/discourse$ rake db:migrate
Sorry, you can't use byebug without Readline. To solve this, you need to
rebuild Ruby with Readline support. If using Ubuntu, try sudo apt-get     install libreadline-dev and then reinstall your Ruby.
rake aborted!
LoadError: cannot load such file -- readline (LoadError)
/home/arkshine/discourse/config/application.rb:44:in '<top (required)>'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
/home/arkshine/discourse/Rakefile:7:in '<top (required)>'
(See full trace by running task with --trace)

La solution est de mettre à jour rbenv :

git -C ~/.rbenv/plugins/ruby-build pull

Ensuite, vous pouvez installer une version plus récente et stable :

(base) arkshine@HOME:~/discourse$ rbenv install --list
3.1.6
3.2.7
3.3.7
3.4.2
rbenv install 3.3.7
rbenv global 3.3.7
rbenv rehash

Et maintenant, ça fonctionne à nouveau ! :party_popper:

2 « J'aime »

J’ai essayé d’installer Discourse sur Ubuntu 24 (version ARM fonctionnant dans VMWare sur mon Macbook Mac OS). J’ai rencontré plusieurs problèmes.

Changement #1
L’installation d’ImageMagick échoue. Dans le script d’installation d’ImageMagick lui-même, il y a une dépendance sur libltld7-dev. Celle-ci doit être remplacée par libltld-dev.

Changement #2
Par défaut, Ruby 3.2.1 est installé. Cela ne fonctionne pas avec pnmp v9.x. Je l’ai remplacé par 3.3.7, ce qui a semblé fonctionner.
ancien :

ruby_version="3.2.1"

nouveau :

ruby_version="3.3.7"

Changement #3
L’installation de Node 18 a causé quelques erreurs. Dans le script d’installation, je l’ai remplacé par Node 20, ce qui a semblé fonctionner.
ancien :

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

nouveau :

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Merci au commentaire de @Arkshine plus haut, qui a été utile.

6 « J'aime »

Avec vos mises à jour, cela fonctionne toujours avec la version actuelle. Merci !