Installa Discourse su Ubuntu o Debian per lo sviluppo

Personalmente, cancellerei il tuo pi (a meno che tu non abbia qualcosa da salvare) e ripartirò da zero, o semplicemente inizierò su una scheda SD separata e pulita.

Sembra che tu avessi due installazioni di discourse, da qui forse il secondo processo Redis.

1 Mi Piace

rm -rf *? O è troppo distruttivo?

Ora funziona. Ci mette molto tempo a caricare la pagina e dà timeout perché ci mette troppo tempo.

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 Mi Piace

Qual modello di Pi stai usando? Non tenterei questo su meno di un Pi 4.

Ci vorrà sicuramente del tempo.

Una volta che JavaScript è stato creato, emetti un’altra chiamata al browser. Dovrebbe quindi funzionare.

Era già successo (penso sia successo dopo l’embroider<0xC2><0xA0>webpack e il discourse-plugins<0xC2><0xA0>apply-patches (qualcosa del genere)). Sono su un Pi 4.

1 Mi Piace

Quei lavoratori sono unicorni (back end). Sembrano pronti. Devi assicurarti che anche il front end sia costruito.

E ricordati di connetterti su http://localhost:4200

Come farò a sapere quando avrà finito di essere creato?

1 Mi Piace

Si ottiene qualcosa di simile a:

[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)

(quei tempi sono sul mio mega-PC!)

Raspberry Pi 5 (8GB):

[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)

Guardando la memoria del mio pi 5, però, sta già utilizzando 4,27 GB solo con Discourse in esecuzione e una singola scheda Chromium aperta!

Quindi, se si verifica un uso intensivo dello swap (che di per sé è una cattiva idea su una scheda SD), ci vorrà molto tempo per arrivare a questo punto. Controlla con il comando htop in un altro terminale.

Potresti trovare impegnativo eseguire questo su un pi con meno di 8 GB!

1 Mi Piace

Penso di averlo capito anche io.

Lo eseguirò e ti farò sapere.

Quando diceva questo:

L’ultimo importo registrato era questo:

Poi si è bloccato (e lo è ancora). Probabilmente ha superato il limite. Ho chiuso la scheda del browser ma è ancora bloccato. Non posso nemmeno fare CTRL+C.

Sì, temo che il tuo piccolo pi abbia bisogno di più memoria. Una volta che è al massimo come quello, si bloccherà.

Un’opzione è aggiungere un’unità NVMe e aumentare lo swap.

Puoi quindi aumentare lo swap in sicurezza.

Penso che l’unica altra soluzione sia procurarsi un 8GB 5 per questo compito e usare il tuo 4 per qualcos’altro.

1 Mi Piace

Buongiorno

Quando digito il seguente comando non succede nulla:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
L'immagine mostra una finestra del terminale con un comando per eseguire uno script per l'installazione di Rails su un sistema Linux. (Didascalia dell'IA)

Mi manca qualcosa?

Forse non hai installato wget?

Verifica se lo hai con

which wget

Se non lo hai, probabilmente puoi installarlo con

sudo apt-get install wget -y
3 Mi Piace

A proposito, ho aggiunto un’unità NWMe questa settimana e il mio Pi 5 funziona alla grande. Ho anche aumentato lo swap (che è un processo leggermente diverso da un normale sistema Linux)

E soprattutto, ciò ha richiesto una reinstallazione completa di un’installazione di sviluppo di Discourse.

Ho scoperto che seguendo le istruzioni nell’OP le cose sono andate completamente lisce senza intoppi, quindi sembra che lo script e la compatibilità Pi siano in un posto davvero buono in questo momento, grazie a tutti i contributi!

6 Mi Piace

Ciao a tutti,

ho configurato con successo Discourse sul mio server locale Ubuntu 24.04 LTS per lo sviluppo. La guida ha funzionato, entrambi i comandi finali vengono eseguiti senza errori.

Ma come posso accedervi tramite la rete? Il server Ubuntu non ha un’interfaccia grafica dove localhost:4200 funzionerebbe.
E ServerIP:4200 mostra che non è raggiungibile.

Qualsiasi suggerimento su come abilitare l’accesso dai dispositivi di rete nella mia LAN?

Grazie!

2 Mi Piace

Se avvii Rails con bin/rails -b 0.0.0.0, questo dovrebbe renderlo disponibile ad altri host sulla tua rete. Dovrai quindi avviare Ember separatamente in una nuova scheda con bin/ember-cli.

Quindi visitare ServerIP:4200 dovrebbe funzionare (a meno che, ovviamente, tu non abbia problemi con il firewall).

3 Mi Piace

Ho provato un’installazione di Ubuntu 24 su WLS2. [1]

Ecco i problemi che ho riscontrato:

  • E: Impossibile individuare il pacchetto libltdl7-dev

  • La tua versione di Ruby è 3.2.1, ma il tuo Gemfile specifica ~\u003e 3.3
    Con il recente aumento della versione di Ruby a \u003e 3.3, anche lo script necessita di un aggiornamento: install-rails/linux at main · discourse/install-rails · GitHub

    • Quello che ho fatto:
      rbenv install 3.3.7
      rbenv global 3.3.7
      rbenv rehash
  • ERRORE Motore non supportato per /home/arkshine/discourse: richiesto: {\"pnpm\":\"^9\"} (attuale: {\"node\":\"v18.20.6\",\"pnpm\":\"10.5.2\"})

    • sudo è necessario: sudo pnpm install [2]
  • ERRORE Impossibile passare pnpm a v9.15.5. Sembra che il CLI di pnpm sia mancante in \"~/.local/share/pnpm/.tools/pnpm/9.15.5/bin\" o sia errato

    • Durante l’esecuzione di pnpm install. Sono riuscito a risolvere con:
      • npm install -g corepack@latest
      • corepack use pnpm@latest-9

Come non-root, la mancanza di sudo nel codice rende impossibile l’esecuzione alla fine. Non so se ci sia un modo intelligente, ma non l’ho trovato. Non ho avuto questi problemi con Ubuntu 22.
Come root, sono riuscito a farlo funzionare.

Come nota a margine, c’è Developing Discourse using a Dev Container come alternativa.


  1. Poiché l’aumento della versione di Ruby ora richiede v3.3+, non ho potuto risolvere la mia installazione con Ubuntu 22. ↩︎

  2. Se installi come non-root. ↩︎

2 Mi Piace

Ubuntu 22, l’ho di nuovo fatto funzionare. Sono solo un idiota. :baymax_yes:

Il mio problema originale era che rbenv conteneva solo la versione 3.3.0-dev.
Ricevevo questo tipo di errore:

(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 soluzione è aggiornare rbenv:

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

Quindi puoi installare una versione più recente e stabile:

(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

E ora funziona di nuovo! :party_popper:

2 Mi Piace

Ho appena provato a installare discourse su Ubuntu 24 (versione ARM in esecuzione all’interno di VMWare sul mio Macbook Mac OS). Ho riscontrato diversi problemi.

Modifica #1
L’installazione di ImageMagick fallisce. Nello script di installazione di ImageMagick stesso c’è una dipendenza da libltld7-dev. Questo deve essere impostato invece su libltld-dev.

Modifica #2
Per impostazione predefinita, viene installato Ruby 3.2.1. Questo non funziona con pnmp v9.x. L’ho impostato invece su 3.3.7, il che sembra aver funzionato.
vecchio:

ruby_version="3.2.1"

nuovo:

ruby_version="3.3.7"

Modifica #3
L’installazione di Node 18 ha causato alcuni errori. Nello script di installazione l’ho modificato in Node 20, il che sembra aver funzionato.
vecchio:

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

nuovo:

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

Grazie al commento di @Arkshine più sopra, che è stato utile.

6 Mi Piace

Con i tuoi aggiornamenti funziona ancora con la versione attuale. Grazie!