2009-05-11 6 views
19

Quand je lanceComment empêcher l'utilitaire 'gem' d'accéder à mon répertoire personnel?

gem install <somegem> 
commande

l'utilitaire gem tente d'accéder à mon répertoire. Il contient des caractères non latins et l'installation échoue à cause de cela. Par exemple:

E:\ruby\bin>gem install <somegem> 
ERROR: While executing gem ... (Errno::ENOENT) 
    No such file or directory - C:\Documents and Settings\<user> 

Si je passe à un autre compte utilisateur avec un nom d'utilisateur contenant des caractères ASCII gem fonctionne très bien.

Est-ce que quelqu'un sait comment dire à gem de ne pas vérifier mon répertoire personnel?

MISE À JOUR: J'ai essayé de mettre en place GEM_HOME comme suggéré ci-dessous, mais il n'a pas aidé (chèques encore le répertoire personnel de l'utilisateur)

Répondre

34

Il suffit de modifier HOMEDRIVE et HOMEPATH avant d'exécuter gem et de restaurer après (si nécessaire).

J'ai changé gem.bat comme ceci:

@ECHO OFF 
SET _HOMEDRIVE=%HOMEDRIVE% 
SET _HOMEPATH=%HOMEPATH% 
SET HOMEDRIVE=E: 
SET HOMEPATH=/Dev/Ruby 
IF NOT "%~f0" == "~f0" GOTO :WinNT 
@"ruby.exe" "E:/Dev/Ruby/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9 
GOTO :EOF 
:WinNT 
@"ruby.exe" "%~dpn0" %* 
SET HOMEDRIVE=%_HOMEDRIVE% 
SET HOMEPATH=%_HOMEPATH% 

E:/Dev/Ruby/ est mon chemin Ruby. Il semble que HOMEPATH peut être changé en n'importe quoi d'autre avec des caractères ASCII seulement dans le chemin.

+18

Une autre meilleure façon consiste à définir la variable d'environnement HOME dans le script "gem" lui-même. Ajouter la ligne suivante au début de "bin/gem": ENV ['HOME'] = "E:/Dev/Ruby" Cette correction fonctionne pour tous les usages "gem". Comme mentionné précédemment, ce chemin peut être changé, en utilisant ruby ​​dir n'est pas nécessaire. –

+1

Ces modifications de script ont fonctionné avec mon Windows7. Merci! – Falkayn

+0

Merci pour ça. Fonctionne bien dans Vista –

0

Peut-être essayer de changer la valeur du répertoire de l'environnement GEM_HOME?

0

Si GEM_PATH est défini sur votre répertoire utilisateur, il y aura toujours accès. Essayez de changer GEM_HOME et GEM_PATH.

1

Il est plus simple d'écrire:

@ECHO OFF 
SET HOMEPATH= 
IF NOT "%~f0" == "~f0" GOTO :WinNT 
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me. 
GOTO :EOF 
:WinNT 
@"ruby.exe" "%~dpn0" %* 

Dans ce cas, vous n'avez pas besoin d'écrire votre chemin et peut remplacer ou redistribuer avec le fichier pour les nouvelles installations

0

il suffit d'exécuter le fichier postinstall pi.bat ou pi.sh ce fichier se trouve dans ./RubyDevKit/postinstall.

cela a fonctionné pour moi. il semble que l'installateur de cygwin a cassé mes paramètres.

0

Redémarrez la console d'invite de commande car une erreur s'est produite. J'ai eu le même problème, et redémarrer la console réinitialiser mon environnement.

+0

Peut-être utile d'expliquer pourquoi vous pensez que cela va fonctionner. –

+0

révisé avec explication. – konyak

Questions connexes