Question

Existe-t-il quelque chose de similaire à l'utilitaire Python environnement virtuel?

Fondamentalement, il vous permet d'installer des packages Python dans un environnement sandbox, donc easy_install django ne va pas dans le répertoire des packages de site à l'échelle de votre système, il ira dans le répertoire créé par virtualenv.

Par exemple:

$ virtualenv test
New python executable in test/bin/python
Installing setuptools...cd .........done.
$ cd test/
$ source bin/activate
(test)$ easy_install tvnamer
Searching for tvnamer
Best match: tvnamer 0.5.1
Processing tvnamer-0.5.1-py2.5.egg
Adding tvnamer 0.5.1 to easy-install.pth file
Installing tvnamer script to /Users/dbr/test/bin

Using /Library/Python/2.5/site-packages/tvnamer-0.5.1-py2.5.egg
Processing dependencies for tvnamer
Finished processing dependencies for tvnamer
(test)$ which tvnamer 
/Users/dbr/test/bin/tvnamer

Existe-t-il quelque chose comme ça pour RubyGems ?

Était-ce utile?

La solution

RVM fonctionne plus près du fonctionnement de virtualenv car il vous permet de mettre en sandbox différentes versions de Ruby et leurs gemmes, etc.

Autres conseils

Ni sandbox, RVM, ni rbenv ne gèrent les versions des dépendances de gem de votre application. L’outil correspondant est bundler .

  • utilisez un Gemfile comme déclaration de dépendance de votre application
  • utiliser bundle install pour installer des versions explicites de ces dépendances dans un emplacement isolé
  • utilisez bundle exec pour exécuter votre application

Personne ne semble avoir mentionné rbenv .

Je pense que vous aimerez le le bac à sable .

Si vous n'avez besoin d'installer que des gems en tant que non-root, essayez de définir la variable d'environnement GEM_HOME. Il suffit ensuite de lancer gem.

Par exemple:

$ export GEM_HOME=$HOME/local/gems
$ gem install rhc

Je mentionnerai comment je fais cela avec Bundler (que j'utilise avec RVM - RVM pour gérer les rubis et un ensemble de gemmes globales par défaut, Bundler pour gérer les gemmes spécifiques au projet)

bundler install --binstubs --path vendor

L'exécution de cette commande à la racine d'un projet installera les gems répertoriés dans votre Gemfile, placera les bibliothèques dans ./vendor et tous les exécutables dans ./bin et tous les require s (si vous utilisez bundle console ou le Bundler a besoin) référencera ces exes et libs.

Fonctionne pour moi.

je recommande direv.Il s'agit d'un sélecteur d'environnement pour le shell.

Avant chaque invite, il vérifie l'existence d'un fichier ".envrc" dans les répertoires actuel et parent.Si le fichier existe (et autorisé), il est chargé dans un sous-shell bash et toutes les variables exportées sont ensuite capturées par direnv puis mises à disposition du shell actuel.

Voici comment utiliser direnv avec Ruby-Install

+ installation Ruby

Ajoutez ceci au ~/.direnvrc

use_ruby() {
  local ruby_root=$HOME/.rubies/$1
  load_prefix "$ruby_root"
  layout_ruby
}

Installez Ruby-Install (brew install ruby-install) et installez un tas de rubis.

ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0

Et puis créez quelques liens symboliques pour plus de commodité :

ln -s .rubies/1.9 ruby-1.9.3-p*
ln -s .rubies/2.0 ruby-2.0.0
ln -s .rubies/2.2 ruby-2.2.0

Et enfin dans n'importe quel projet .envrc:

use ruby 2.0

Cela mettra toutes les pierres précieuses sous la responsabilité du projet. .direnv/ruby répertoire (facilite l’ouverture des gemmes).bundler placera les binaires du wrapper dans .direnv/bin (pas plus bundle exec!).

+ rbenv

Il est également possible d'utiliser rbenv en ajoutant le use rbenv commande dans n'importe quel .envrc déposer.Cela activera rbenv qui, à son tour, placera les wrappers Ruby dans le PATH.

Notez qu'il n'est pas nécessaire d'installer rbenv dans le .bashrc ou le .zshrc pour que cela fonctionne.

+ RVM

Voici le .envrc le plus compliqué que j'utilise sur les projets Ruby :

rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin

rvm est utilisé pour sélectionner la version Ruby qui vous convient

Les commandes de mise en page définissent automatiquement certaines des variables d'environnement habituelles.Pour l'instant, seule la disposition Ruby existe.Ce qu'il fait, c'est définir la variable d'environnement GEM_HOME et son répertoire bin sur votre chemin.Parce que cela dépend de la version Ruby, assurez-vous de l'appeler après "rvm".Étant donné que chaque répertoire de mise en page Ruby a son propre GEM_HOME, vous n'avez pas besoin d'utiliser les gemsets de rvm.

PATH_add ajoute et développe le chemin relatif donné.Dans ce cas, j'utilise ceci pour séparer les binstubs du bundler de mes propres scripts bin avec bundle install --binstubs .direnv/bundler-bin

Si vous voulez savoir exactement ce que font ces commandes, pour l’instant :chat direnv stdlib | moins

Mineshaft est un projet sur lequel je travaille depuis un certain temps et qui poursuit actuellement des travaux de développement. sur.

Il offre la possibilité de créer des environnements virtuels similaires à ceux de virtualenv et d’installer Ruby globalement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top