2011-02-02 11 views
18

Conosco il comando che funziona per farlo, ma non capisco perché. Cosa fa `...` facendo in questo contesto.Come controllare l'elenco delle gemme su heroku

so che posso correre:

heroku console 
`gem list` 

o

heroku console 
`gem list`.split("\n") 

per ottenere una bella uscita, ma non capisco ciò che questi stanno facendo. Perché lo ``?

risposta

36

Ho aggiornato questo caso in cui qualcuno capita di incontrare heroku console come è stato disabilitato.

heroku run gem list 

Mostra gemme installati tramite: git

heroku run bundle show 
+1

Risposta migliore IMHO. – Hauleth

+0

Sto scoprendo che questo non mostra gemme installate tramite git. C'è un modo per vedere queste gemme? – Carpela

+0

Secondo la documentazione di Bundler, le gemme provenienti da fonti git non verranno visualizzate nell'elenco gemma perché il comando gem non può elaborarle, quindi Bundler deve fare tutto il lavoro da solo. Bundler memorizza queste gemme nella sua posizione. Puoi invece fare '' heroku run bundle show'' – ahmet

8

I tick posteriori effettuano effettivamente una chiamata di sistema e restituiscono la risposta scritta su stdout. Dai uno sguardo allo Kernel ruby docs per maggiori informazioni.

+0

quindi, in inglese semplice questo significa fondamentalmente che ti consente di uscire dall'ambiente di rota che stai eseguendo sul server e di inviare un comando al sistema server stesso ??? –

+0

In inglese semplice è più o meno, sì. –

7

heroku console fondamentalmente sta eseguendo una console irb sul computer remoto, quindi ci si trova in una console ruby ​​quando lo si fa. I backtick (`) sono un modo standard per eseguire un comando di sistema in ruby.

1

In Ruby, è possibile eseguire un comando di sistema utilizzando Kernel#exec o inserendo il contenuto nei backtick. È lo stesso che digitare gem list sulla riga di comando e ottenere il risultato come una stringa.

1

Per esempio

heroku run 'gem list' 

siccome

heroku console 

viene rimosso dal Heroku

Problemi correlati