J'utilise rbenv, alors pourquoi y a-t-il deux chemins Gem sur mon système? (OS X Lion)
De préciser, je suis en utilisant rbenv
à gérer mon ruby versions. J'étais sous l'impression que les binaires sont gérés comme shims
dans leur version de ruby répertoire.
Voici ce que mon système affiche quand je lance le joyau de l'environnement (je suis à l'exclusion de la pertinence des pièces):
- GEM PATHS:
- /Volumes/Data/nathan/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1
- /Volumes/Data/nathan/.gem/ruby/1.9.1
Aucune raison d'avoir deux emplacements? Les esprits curieux veulent savoir.
source d'informationauteur Nathan | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
Je pense que j'ai compris la réponse à cette question, donc je vais le poster.
Rbenv permet pour une approche globale et/ou locaux de version de ruby. Donc, une fois que ruby est installé et géré par rbenv, vous pouvez le déclarer en tant que global ruby version utilisée par l'ensemble de votre système.
De même, vous pouvez déclarer un local version de ruby dans un répertoire donné (ex: un rails de projet).
L' .bijou de fichier dans votre maison chemin est utilisé par l'ensemble de la version de ruby, où, comme le nichée dans la rbenv répertoire est utilisé par la version de ruby.
Note, vous pouvez (pour quelque raison que ce soit) déclarer une version locale qui est le même que la version internationale. Dans ce cas, la version locale va s'appuyer sur le gem fichiers qui sont dans le plus profond rbenv répertoire, au lieu de ~/.gem répertoire.
Garder à l'esprit que la version de ruby gestionnaires comme rbenv et rvm sont relativement récentes créations. Avant qu'ils existaient, un utilisateur admin serait de effectuer l'installation de ruby dans un système à l'échelle de l'emplacement /usr/local. Mais les non-admins besoin d'un endroit pour installer leurs propres pierres précieuses, comme ils n'avaient pas la permission d'écrire dans le répertoire /usr/local . Ainsi, le rubygems créateurs ont décidé d'ajouter une deuxième gem chemin dans l'actuel répertoire home de l'utilisateur, ce qui aurait une structure similaire à l'emplacement du système.
Voici un exemple de ce que le gem chemins regardé comme dans les vieux jours:
Il y a peut-être encore des machines où ruby est installé comme ça, et vous avez toujours le recours de l'automatique secondaire gem chemin. Bien sûr, vous pouvez également ajouter plus de chemins à l'aide de la GEM_PATH variable d'environnement, mais l'auto est belle pour le traitement de la plupart des cas.
Si vous avez les droits d'admin, ou si vous utilisez un gestionnaire de versions, vous pouvez simplement ignorer le ~/.gem dir comme un artefact, une relique du passé, si vous voulez.
est de rbenv, de sorte que ruby regarde pour les gemmes rbenv installé.
Apparemment, rbenv ne se limite pas à ses propres pierres précieuses, mais aussi les joyaux de système de ruby, mais seulement ceux qui sont installés en tant qu'utilisateur (via
gem --user-install
).