Quando installi Discourse (per lo sviluppo) sul mio Mac ricevo questo errore:
ERROR: While executing gem ... (Gem::FilePermissionError)
Non hai i permessi di scrittura per la directory /Library/Ruby/Gems/2.6.0.
Come posso risolvere?
Grazie.
Quando installi Discourse (per lo sviluppo) sul mio Mac ricevo questo errore:
ERROR: While executing gem ... (Gem::FilePermissionError)
Non hai i permessi di scrittura per la directory /Library/Ruby/Gems/2.6.0.
Come posso risolvere?
Grazie.
Hai seguito lo script di installazione di Discourse qui?
Stai usando macOS Catalina? Se è così, sembra che Discourse stia cercando di utilizzare la versione di Ruby del sistema. Dovresti usare qualcosa come rbenv per impostare la tua versione di Ruby ed evitare questo problema.
Sto usando MacOS Catalina. Ho eseguito quello script, ma si è interrotto a metà perché, credo, fosse già installato.
Puoi incollare l’output di which rbenv?
E hai un file .bashrc o .zshrc personalizzato?
/usr/local/bin/rbenv
Non ne sono sicuro. Non credo, ma forse sì.
Puoi cd nella directory di Discourse e condividere l’output di which ruby?
Ops, non l’avevo notato. L’ho fatto e ho ottenuto /usr/bin/ruby
Ok, quindi stai usando il Ruby di sistema per Discourse, ed è per questo che riscontri quel problema.
Controlla la variabile PATH digitando echo $PATH. Dovresti vedere /Users/<il tuo username>/.rbenv/bin e /Users/<il tuo username>/.rbenv/shims elencati lì.
Se non li vedi, aggiungili nel file di configurazione della tua shell .bashrc o .zshrc. Per ZSH puoi aggiungerli in questo modo: export PATH=/percorso/numero/1:/percorso/numero/2:$PATH
Se li vedi, controlla in che ordine si trovano. Se sono piĂą avanti nella catena, probabilmente non vengono caricati prima del Ruby di sistema, il che significa che per Discourse viene utilizzato il Ruby di sistema. Puoi utilizzare lo stesso approccio descritto sopra per spostare i percorsi piĂą in alto nella catena.
Pensavo che @david avesse aggiunto un controllo della versione di Ruby al nostro ambiente di sviluppo? ![]()
Credo che fosse per la CLI del tema.
C’è un modo per aggiungere qui un controllo equivalente?
Credo che abbiamo già verificato la compatibilità della versione di Ruby su Discourse — il problema qui è che il nostro bundle di Discourse non può scrivere gem per la versione di Ruby a livello di sistema inclusa in macOS. Potrei sbagliarmi sui dettagli specifici, ma credo che sia dovuto a una modifica apportata da Apple con macOS Catalina. Ho riscontrato lo stesso problema e ci è voluto un bel po’ di risoluzione dei problemi per capirlo.
Ho riscontrato lo stesso errore dell’OP.
Leggi questo:
Ho pensato che non fosse in realtà un errore di permessi del file, ma che l’installer stesse guardando nel posto sbagliato.
Sapevo che riavviare il terminale avrebbe ricaricato il mio file .zshrc, quindi ho chiuso e riaperto il terminale.
Ho eseguito nuovamente lo script di installazione e non ho piĂą riscontrato questo errore.
Questo problema potrebbe essere risolto con un refresh del terminale posizionato strategicamente durante il processo di installazione? ![]()