Domanda

Se non installi gemme con sudo su un mac, per impostazione predefinita verranno posizionate in una directory come

.gem/ruby/1.8/gems/

Se esegui l'installazione con sudo , la mia comprensione è che normalmente sono collocati nelle directory di sistema, in questo modo:

 /usr/local/lib/ruby/gems/1.8/gems/

C'è una buona ragione per cui dovresti installare gemme con sudo , oltre a permettere semplicemente ad altri di condividerle con te? *

Ho l'impressione che avresti installato gemme perché se tu come utente bob installa le gemme nella directory di bob , allora un utente come www -data (usato da Passenger / Apache su Ubuntu Linux quando serve i file), per usarli - è questa l'unica ragione per usarli in questo modo?

O ora è meglio usare qualcosa come Ruby Version Manager invece ora?

Gradirei molto sapere da alcuni sviluppatori di rubini più esperti su dove memorizzi i tuoi e perché.

È stato utile?

Soluzione

L'esecuzione di gem install con sudo significa che stai eseguendo l'installazione come utente amministratore e come tale la installerà per l'intero sistema. Se corri come un normale utente, inserirà le gemme nella tua home directory.

Per la tua macchina o server di sviluppo, /usr/local/lib/ruby/gems/1.8/gems/ è quasi sicuramente il posto giusto per mettere le gemme. Se sei su una sorta di hosting condiviso o stai giocando con le versioni di sviluppo di alcune gemme, tienile nella tua home directory in modo da non ingombrare il sistema per altri utenti.

Non ho mai sentito parlare di Ruby Version Manager prima. Lo controllerò.

Altri suggerimenti

AFAIK, Ruby Version Manager (RVM) ha lo scopo di semplificare il lavoro con più versioni di Ruby (1.8.6, 1.8.7, 1.9.1, MRI, JRuby, ecc. ecc.) sulla stessa macchina. Poiché molte gemme includono elementi specifici della versione e / o compilati, potrebbero essere necessarie versioni gemme differenti per l'uso all'interno di quelle versioni di Ruby. RVM ti consente di cambiare ambiente Ruby ma all'interno di quell'ambiente [sudo] gem install è lo stesso di sempre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top