# Note sull'installazione di Discourse su Ubuntu 20.04

**URL:** https://meta.discourse.org/t/notes-about-installing-discourse-on-ubuntu-20-04/226363
**Category:** Development
**Created:** [30 Aprile 2022, 2:11pm UTC](https://meta.discourse.org/t/notes-about-installing-discourse-on-ubuntu-20-04/226363 "2022-04-30T14:11:01Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)
#### Post date: [6 Maggio 2022, 6:15pm UTC](https://meta.discourse.org/t/notes-about-installing-discourse-on-ubuntu-20-04/226363/2 "2022-05-06T18:15:14Z")

</div>

> [@s-o-n-o-s-u-s](#):
>
> Ho problemi con il passaggio `bundle install`.

Recentemente ho riscontrato un problema simile a quello di @Sonosus e ho scoperto che era causato dall’ultima versione di Ubuntu (20.04) che viene preinstallata con OpenSSL 3.0.2. Questa situazione potrebbe essere presente anche con altre versioni di Ubuntu/Debian che vengono preinstallate con OpenSSL. Se riscontri questo problema, probabilmente vorrai compilare una versione precedente di OpenSSL da sorgente (ho usato OpenSSL-1.1.1n) e quindi rieseguire il comando `bundle install`. Essenzialmente, questo messaggio di errore riguarda **OpenSSL \>= 1.0.1, \< 3.0.0** , e si scopre che 1.1 è l’unica alternativa.

Dovrai anche controllare quale versione di Ruby stai usando con `ruby --version`. Discourse utilizza ancora Ruby 2, quindi se stai usando Ruby 3.x o versioni successive, dovrai utilizzare una versione precedente. A seconda di come stai installando Ruby, è probabile che incontrerai un problema simile con OpenSSL nell’installazione di una versione precedente, quindi ti consiglio di utilizzare un gestore di versioni per Ruby qui, e ho scoperto che Ruby 2.7.6 è attualmente la versione migliore da utilizzare con Discourse.

Dopo aver installato una nuova istanza di Ubuntu 20.04, ecco cosa ho fatto per far funzionare correttamente `bundle install`:

### Installa le dipendenze di Discourse, `asdf` e Clona Discourse

```bash
<(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)
sudo apt install build-essential checkinstall zlib1g-dev
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0
git clone https://github.com/discourse/discourse.git ~/discourse

```

### Imposta il database

Crea un ruolo **con lo stesso nome del tuo nome utente di sistema Ubuntu** :

```bash
sudo -u postgres createuser -s "$USER"

```

### Installa OpenSSL-1.1.1n da sorgente

```bash
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz
tar -zxf openssl-1.1.1n.tar.gz && cd openssl-1.1.1n
./config --prefix=/opt/openssl-1.1.1n --openssldir=/opt/openssl-1.1.1n shared zlib
make
make test
make install
sudo rm -rf /opt/openssl-1.1.1n/certs
sudo ln -s /etc/ssl/certs /opt/openssl-1.1.1n

```

Ho quindi aggiunto la seguente riga al mio file `.bashrc`

```bash
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/openssl-1.1.1n/"

```

Mentre ci siamo, ho anche aggiunto le seguenti righe per `asdf`

```bash
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash

```

Salva ed esci, e poi

```bash
source ~/.bashrc

```

### Installa Ruby 2.7.6

```bash
asdf plugin add ruby
asdf install ruby 2.7.6

```

Potresti essere in grado di eseguire `bundle install` ora, tuttavia, ho riscontrato un paio di altri problemi durante il processo di installazione di Discourse che menzionerò qui per riferimento nel caso in cui questi accadano a qualcun altro.

### Si è verificato un errore durante l’installazione di mini\_racer

Durante l’esecuzione di `bundle install` ho continuato a riscontrare questo problema dopo aver installato OpenSSL-1.1.1n e Ruby 2.7.6

```plaintext
Si è verificato un errore durante l'installazione di mini_racer (0.6.1) e Bundler non può continuare.

```

Che può essere risolto modificando la seguente riga nella tua versione locale di discourse/Gemfile:

> <https://github.com/discourse/discourse/blob/main/Gemfile#L124>

E sostituendola con

```ruby
gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

```

Dopo questo passaggio sono stato in grado di eseguire `bundle install` con successo.

Questo è simile a un problema che si verifica su MacOS di cui puoi leggere di più [qui](https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-macos-for-development/15772/302)

### File o directory non trovati - convert

Nei passaggi successivi dell’installazione di Discourse, ho anche riscontrato il seguente problema durante l’esecuzione di `bundle exec rake autospec`

```plaintext
Fallimenti:
  1. AboutController.index dovrebbe visualizzare la pagina about per l'utente connesso quando login_required è true
    Fallimento/Errore: expect(response.status).to eq(200)

    atteso: 200
    ottenuto: 500

      (confrontato usando ==)
    #./spec/requests/about_controller_spec.rb:27:in 'block (3 levels) in <main>'
    #./spec/rails_helper.rb:277:in 'block (2 levels) in <top (required)>'
    #---------------------
    #---Causato da:---
    # Errno::ENOENT
    # File o directory non trovati - convert
    # ./lib/letter_avatar.rb:105:in ``'

```

Questo errore significa che il pacchetto `ImageMagick` non è installato (fornisce l’eseguibile `convert`)

Presumibilmente questo script all’inizio del processo di installazione di Discourse dovrebbe avere tutti i pacchetti necessari, ma sembra che questo possa essere stato escluso.

Infine, dopo aver installato `ImageMagick` con `sudo apt install imagemagick`, sono stato in grado di far funzionare correttamente il mio server Discourse!

Spero che queste informazioni siano utili a chiunque stia attraversando questo processo e abbia qualche difficoltà. 😄

---

_[View the full topic](https://meta.discourse.org/t/notes-about-installing-discourse-on-ubuntu-20-04/226363)._
