Installare Discourse su Ubuntu o Debian per lo sviluppo

❯ sudo -i -u postgres
[sudo] password for scossar:
[postgres@rocknosh ~]$

Inserisci quanto segue nel prompt di postgres:

initdb --locale en_US.UTF-8 -D /var/lib/postgres/data
exit

Quindi dalla riga di comando:

# abilita e avvia il servizio postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql

# aggiungi il tuo utente al gruppo postgres
# -a aggiunge l'utente corrente ($USER) al gruppo postgres (-G postgres)
sudo usermod -aG postgres "$USER"

# crea un superutente postgresql con il tuo nome utente
sudo -u postgres createuser -s "$USER"
1 Mi Piace

Grazie, ha funzionato. Non dovrei eseguire il task db create in Rails come root? Se lo faccio, ottengo FATAL: role "root" does not exist (PG::ConnectionBad) ma se non lo faccio, ottengo un errore di permessi LoadError: cannot load such file -- /usr/lib/ruby/gems/3.3.0/gems/colored2-4.0.0/lib/colored2.rb (LoadError).

No, dovrebbe essere eseguito come utente normale:

❯ bin/rails db:create
❯ bin/rails db:migrate

L’errore con la gemma colored2 suggerisce che la gemma è mancante.

Assicurati di aver eseguito bundle install prima di eseguire rake db:create.

1 Mi Piace

Se incontri una schermata simile, esegui il seguente comando:
bin/rails db:migrate risolverà il problema.

Dopo aver installato questo plugin, ho riscontrato questo errore e ho riflettuto su una soluzione per due giorni. Mi è venuto improvvisamente in mente di eseguire una migrazione…

Quindi sto solo copiando e incollando le diverse cose da installare dal file di installazione.
C’è questa parte:

log_info "Installazione delle utility per le immagini..."
  sudo -E apt-get -y install advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush pngquant
  sudo -E apt-get -y install jhead

  # Installa oxipng
  cd /tmp && \
    wget https://github.com/shssoichiro/oxipng/releases/download/v8.0.0/oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    tar -xzvf oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    sudo cp oxipng-8.0.0-x86_64-unknown-linux-musl/oxipng /usr/local/bin
  cd /tmp && \
    rm oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    rm -Rf oxipng-8.0.0-x86_64-unknown-linux-musl

Dopo aver eseguito questo, sono ancora nella directory /tmp. Dovrei uscirne o continuare a installare il resto lì? Ho installato in /tmp, era la cosa giusta da fare? Ho presunto che se il file fosse stato eseguito per intero, si sarebbe comunque installato lì.

EDIT: Ruby è stato installato.

Per la sezione subito prima di quella riga, installa imagemagick con pacman. Sono abbastanza sicuro che puoi ignorare il comando per installare libtool:

❯ sudo pacman -S imagemagick

Quindi installa la maggior parte dei pacchetti nella sezione delle utility per le immagini con:

❯ sudo pacman -S gifsicle jpegoptim libjpeg-turbo optipng pngcrush pngquant jhead

advancecomp non è nel repository principale di Arch. Può essere installato con questo pacchetto dall’AUR:

https://aur.archlinux.org/advancecomp-git.git

oxipng è nel repository principale di Arch, quindi ignora il comando cd /tmp dallo script ed esegui semplicemente:

❯ sudo pacman -S oxipng

Un po’ più in basso nello script, mailhog è disponibile tramite l’AUR:

https://aur.archlinux.org/mailhog-bin.git

Se configurerò Discourse sul mio altro computer, lo testerò di nuovo e scriverò una guida completa. È in realtà un po’ più facile che installare Discourse su Ubuntu, perché tutti i pacchetti sono o nel repository principale, o disponibili dall’AUR. Per ora, fammi sapere se ti blocchi da qualche parte.

Forse questi post potrebbero essere spostati in un altro argomento?

1 Mi Piace

Ho installato Ruby in /tmp. Va bene?

Non sono sicuro di come Arch gestisca la directory /tmp. Sospetto che venga periodicamente ripulita da un job di systemd. La directory /tmp è destinata ai file temporanei.

Suppongo che tu possa semplicemente spostare Ruby nella tua directory ~/.

Installare Ruby su Arch è stato un po’ più complesso che installarlo su altri sistemi. L’ho installato tramite Rbenv: rbenv - ArchWiki. Per installare le versioni di Ruby con rbenv è anche necessario installare https://aur.archlinux.org/packages/ruby-build.

Sospetto che tu possa saltare questo passaggio e semplicemente installare il pacchetto Ruby con pacman: Ruby - ArchWiki. Sembra che questo ti darebbe Ruby 3.3.5. Dovrebbe andare bene per Discourse.

Sarei dovuto essere più chiaro: lo sto facendo su un Pi.

Ottimo! Non credo che cambierà nulla. Evita di mettere cose che vuoi installare permanentemente sul tuo computer nella directory /tmp. Ruby dovrebbe funzionare bene dalla tua home directory (~/).

1 Mi Piace

Ho provato a installarlo con sudo apt install pacman. Poi, per verificare se pacman fosse in esecuzione, ho digitato pacman --help, che ha restituito:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  27
  Current serial number in output stream:  31

Non ho molta familiarità con Linux e la riga di comando.

Mi dispiace, ero molto confuso. Pensavo di rispondere a darkpixlz, di qualche post precedente. Ignora la mia risposta. È pertinente solo per Arch Linux.

1 Mi Piace

Ci riprovo, penso che possa funzionare.

Per caso è stato installato in /usr/games? (Notando l’“Errore X”, non c’è motivo per cui uno strumento CLI debba cercare un font…)

Non credo. In ogni caso, questo è irrilevante (vedi il nuovo nuovo argomento che ho pubblicato).

Ho appena controllato sul mio pi, pacman sembra essere un gioco, il gestore di pacchetti sembra essere pacman-package-manager:

firepup650@firepi:~ $ apt search pacman 2>/dev/null|grep -e '^pacman' -1

pacman/stable,now 10-19+b1 arm64 [installed]
  Insegui mostri in un labirinto

pacman-package-manager/stable,now 6.0.2-3 arm64 [installed]
  Semplice gestore di pacchetti basato su librerie

pacman4console/stable,now 1.3-1+b4 arm64 [installed]
  gioco pacman basato su ncurses
firepup650@firepi:~ $
1 Mi Piace

Come dovrebbe apparire?
Vedo solo un sacco di [ember-cli] ...[@embroider/webpack]. Immagino che alla fine termini?

EDIT:
Vedo anche questo errore:

[ember-cli] ...[@embroider/webpack]                                                                                     D, [2024-10-27T18:11:10.974072 #18143] DEBUG -- : waiting 31.0s after suspend/hibernation                               Pipelining commands on a Redis instance is deprecated and will be removed in Redis 5.0.0.                                                                                                                                                       redis.multi do                                                                                                            redis.get("key")                                                                                                      end                                                                                                                                                                                                                                             should be replaced by                                                                                                                                                                                                                           redis.multi do |pipeline|                                                                                                 pipeline.get("key")                                                                                                   end                                                                                                                                                                                                                                             (called from /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in `public_send'}                                D, [2024-10-27T18:12:50.733620 #18143] DEBUG -- : waiting 31.0s after suspend/hibernation                               [ember-cli] ...[@embroider/webpack]                                                                                     [ember-cli] ...[@embroider/webpack]                                                                                     D, [2024-10-27T18:15:31.729849 #18143] DEBUG -- : waiting 31.0s after suspend/hibernation                               #Si è verificato un errore nel mio aggiornamento

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Per favore, aiutami a correggerlo.. pid: 18423 Demon::Sidekiq #<Thread:0x0000007f738abbf8 /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/scheduler.rb:34 run> terminato con eccezione (report_on_exception è true): /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:58:in block in _read_from_socket': Connection timed out (Redis::TimeoutError) da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:54:in loop’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:54:in _read_from_socket' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:47:in gets’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:382:in read' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:311:in block in read’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:299:in io' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:310:in read’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in block in call' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:279:in block (2 livelli) in process’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:411:in ensure_connected' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in block in process’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in logging' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in process’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in call' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in block in profile_method’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:270:in block in send_command' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in synchronize’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in send_command' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/commands/sets.rb:131:in smembers’ da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in public_send' da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in block (3 livelli) in class:DiscourseRedis’ da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:29:in ignore_readonly' da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in block (2 livelli) in class:DiscourseRedis’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/redis_store.rb:329:in get_patterns' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/pattern.rb:37:in find_all’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/base_store.rb:188:in block in report' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/cache.rb:13:in fetch’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/base_store.rb:187:in report' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/logger.rb:167:in report_to_store’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/defer_logger.rb:11:in block in report_to_store' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/scheduler.rb:43:in do_work’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/scheduler.rb:34:in block (2 livelli) in start_thread' /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:58:in block in _read_from_socket’: Redis::TimeoutError (Redis::TimeoutError) da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:54:in loop' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:54:in _read_from_socket’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:47:in gets' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/connection/ruby.rb:382:in read’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:311:in block in read' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:299:in io’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:310:in read' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in block in call’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:279:in block (2 livelli) in process' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:411:in ensure_connected’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in block in process' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in logging’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in process' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in call’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in block in profile_method' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:270:in block in send_command’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in synchronize' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in send_command’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/redis-4.8.1/lib/redis/commands/sets.rb:131:in smembers' da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in public_send’ da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in block (3 livelli) in <class:DiscourseRedis>' da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:29:in ignore_readonly’ da /home/natedhaliwal/discourse-f/lib/discourse_redis.rb:148:in block (2 livelli) in <class:DiscourseRedis>' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/redis_store.rb:329:in get_patterns’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/pattern.rb:37:in find_all' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/base_store.rb:188:in block in report’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/cache.rb:13:in fetch' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/base_store.rb:187:in report’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/logger.rb:167:in report_to_store' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/defer_logger.rb:11:in block in report_to_store’ da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/scheduler.rb:43:in do_work' da /home/natedhaliwal/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/logster-2.20.0/lib/logster/scheduler.rb:34:in block (2 livelli) in start_thread’ [ember-cli] …[@embroider/webpack] I, [2024-10-27T18:28:06.724985 #19748] INFO – : Caricamento di Sidekiq nel processo id 19748 [ember-cli] …[@embroider/webpack]

Questi non sono errori.

Sono log della console del processo di compilazione JavaScript che include una parte di Ember convertita in JavaScript nativo.

Questo è un progresso salutare.

A questo punto, di solito vengono utilizzate molta memoria e CPU, quindi potrebbe volerci del tempo.

2 Mi Piace

@merefield Che ne dici di

O

molto utile!