Ho alcuni problemi nell’impostazione di discourse per lo sviluppo sul mio Mac M1.
Le gemme fast_xs e gc_tracer non riescono a installarsi con errori quasi simili. Ho incollato qui sotto il messaggio di errore di fast_xs. Qualcuno può aiutarmi?
Building native extensions. This could take a while...
ERROR: Error installing fast_xs:
ERROR: Failed to build gem native extension.
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
/Users/sisirkoppaka/.rubies/ruby-3.2.0/bin/ruby -I /Users/sisirkoppaka/.rubies/ruby-3.2.0/lib/ruby/site_ruby/3.2.0 extconf.rb
checking for assert.h... yes
creating Makefile
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7 clean
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7
compiling fast_xs.c
fast_xs.c:144:39: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(VALUE, VALUE)' (aka 'unsigned long (*)(unsigned long, unsigned long)') [-Wincompatible-function-pointer-types]
144 | array = rb_rescue(unpack_utf8, self, unpack_uchar, self);
| ^~~~~~~~~~~
/Users/sisirkoppaka/.rubies/ruby-3.2.0/include/ruby-3.2.0/ruby/internal/iterator.h:364:62: note: passing argument to parameter 'r_proc' here
364 | VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2);
| ^
1 error generated.
make: *** [fast_xs.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0 for inspection.
Results logged to /Users/sisirkoppaka/.gem/ruby/3.2.0/extensions/arm64-darwin-22/3.2.0-static/fast_xs-0.8.0/gem_make.out```
Sono riuscito a eseguire il comando git ma da qualche parte lungo la strada ho rotto il mio ambiente di sviluppo. Ora ho finito con un ambiente di sviluppo rotto, mostra la mia homepage di sviluppo di Discourse ma nulla sembra funzionare (Nuovo argomento continua a girare).
Qual è il modo più semplice per resettare o fare un’installazione pulita della mia installazione di sviluppo di Discourse?
Ho provato a rieseguire i comandi di installazione all’inizio di questo argomento (si interrompe al comando pnpm install). Ho anche provato a eseguire rake db:drop db:create db:migrate proposto da Arpit in precedenza in questo argomento, senza successo.
Sono riuscito ad aggiornare le mie installazioni di pnpm e node eseguendo npm install -g pnpm e brew install node che mi hanno permesso di rieseguire nuovamente le istruzioni di installazione. Tuttavia, ora sto ricevendo il seguente errore di compilazione:
Module not found: Error: Can't resolve '@ember/debug' in '/Users/pieces/discourse/app/assets/javascripts/node_modules/ember-tracked-storage-polyfill/addon/index.js'
Eseguito bin/ember-cli in una finestra di terminale separata
L’esecuzione del passaggio 6 genera l’errore.
Guardando i dettagli del link che hai fornito, sembra che i moduli Node gestiti da Yarn non siano stati convertiti correttamente in pnpm? Si parla di rimuovere manualmente la cartella ‘node_modules’. Tuttavia, questo dovrebbe essere gestito con il nuovo pull di git, giusto?
Si prega di vedere di seguito l’errore del passaggio 6.
Vale la pena notare che non ho un sistema macOS su cui testarlo. Tuttavia, ho recentemente aggiornato la mia istanza locale di Discourse su un sistema Arch Linux. Mi aspetterei che il modo in cui vengono gestite le dipendenze javascript sia simile su entrambi i sistemi.
Non credo sia corretto. La directory node_modules non è tracciata da git. I moduli node vengono installati quando esegui pnpm install.
Non posso garantire che sia corretto, ma se stessi riscontrando l’errore, rimuoverei e reinstallerei le dipendenze con:
Penso che ember-tracked-storage-polyfill si trovi direttamente in discourse/node_modules, ma dovrebbe essere sicuro eseguire il comando completo che ho postato sopra.
Potresti anche provare a eseguire pnpm install con il logging dettagliato se restituisce errori:
Ho appena rimosso e reinstallato le dipendenze, il comando fornito ha funzionato bene. Rimuove e installa pnpm senza errori.
Tuttavia, quando eseguo bin/ember-cli ricevo ancora lo stesso errore.
C’è un modo per rimuovere completamente la mia installazione di sviluppo di Discourse ed eseguire un pull pulito da Git ed eseguire un’installazione pulita?
Non mi dispiace affatto perdere i dati dal mio ambiente di sviluppo.
Potresti eseguire rm -rf ~/discourse per rimuovere completamente il codice sorgente di Discourse. Quindi segui la guida all’installazione dal suo passaggio “Clona Discourse”: Install Discourse on macOS for development.
Ottimo! Suppongo che il problema fosse correlato agli asset memorizzati nella cache che erano stati precedentemente compilati nella directory /discourse/tmp/cache/assets/sprockets/. Forse il problema poteva essere risolto eseguendo:
Non sto avendo molta fortuna nel seguire queste istruzioni. Non forniscono un ambiente funzionante poiché ottengo un errore 500 quando provo a installare qualsiasi cosa (plugin, tema, componente-tema). Sembra che la procedura guidata non funzioni correttamente. L’ho installata circa 10 volte e ho disinstallato e reinstallato le dipendenze. Quando eseguo l’autospec, ottengo molti fallimenti ma non molte informazioni su di essi. Qualsiasi idea è benvenuta su come posso rendere operativo questo sistema, funzionalmente.
Per chiunque abbia iniziato dal README di sviluppo di Discourse e sia arrivato qui: se stai configurando le tue dipendenze per la prima volta, ti consiglio PostgreSQL 14+, anche se nel README è indicato PostgreSQL 13.
Perché? Quando configuri il tuo database ed esegui le migrazioni, fallirà quando tenterà di accedere all’estensione pgvector in una delle migrazioni. E installare pgvector per PostgreSQL 13 è un po’ complicato. Ma se installi PostgreSQL 14 e poi pgvector, tutto funzionerà.
Consiglio Homebrew per entrambi:
brew install postgresql@14
brew install pgvector
Inoltre! Riceverai un errore la prima volta che avvii il server Rails se non hai installato ImageMagick. (So che è indicato come opzionale all’inizio di questa guida)