rails - windows update ruby




Comment mettre à jour Ruby Gems derrière un proxy(ISA-NTLM) (12)

Le pare-feu que je suis derrière exécute le serveur Microsoft ISA en mode NTLM uniquement. Quelqu'un a-t-il réussi à obtenir ses gemmes Ruby à installer / mettre à jour via la gemme Ruby SSPI ou une autre méthode?

... ou suis-je juste paresseux?

Note: rubysspi-1.2.4 ne fonctionne pas.

Cela fonctionne également pour "igem", une partie du projet IronRuby


Cela a fonctionné pour moi dans une boîte de Windows:

set HTTP_PROXY=http://server:port
set HTTP_PROXY_USER=username
set HTTP_PROXY_PASS=userparssword
set HTTPS_PROXY=http://server:port
set HTTPS_PROXY_USER=username
set HTTPS_PROXY_PASS=userpassword

J'ai un fichier batch avec ces lignes que j'utilise pour définir les valeurs d'environnement quand j'en ai besoin.

L'astuce, dans mon cas, était les ensembles HTTPS_PROXY . Sans eux, j'ai toujours eu une erreur d'authentification du proxy 407.


Cela a résolu mon problème parfaitement:

gem install -p http://proxy_ip:proxy_port compass

Vous devrez peut-être ajouter votre nom d'utilisateur et votre mot de passe:

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass

Créez un fichier .gemrc (soit dans / etc / gemrc ou ~ / .gemrc ou par exemple avec chef gem dans / opt / chef / incorporé / etc / gemrc) contenant:

http_proxy: http://proxy:3128

Ensuite, vous pouvez gem install comme d'habitude.


J'ai essayé certaines de ces solutions, et aucune d'elles n'a fonctionné. J'ai finalement trouvé une solution qui fonctionne pour moi:

gem install -p http://proxy_ip:proxy_port rails

utiliser le paramètre -p pour passer le proxy. J'utilise Gem version 1.9.1.



Je n'ai pas réussi à faire fonctionner le mien à partir du commutateur de ligne de commande, mais j'ai été capable de le faire simplement en définissant ma variable d'environnement HTTP_PROXY . (Notez que ce cas semble être important). J'ai un fichier batch qui a une ligne comme celle-ci:

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%

J'ai mis les quatre variables référencées avant que j'arrive à cette ligne évidemment. Par exemple si mon nom d'utilisateur est "wolfbyte", mon mot de passe est "secret" et mon proxy s'appelle "pigsy" et fonctionne sur le port 8080:

SET HTTP_PROXY=http://wolfbyte:[email protected]:8080

Vous voudrez peut-être faire attention à la façon dont vous gérez cela, car il stocke votre mot de passe en texte brut dans la session de la machine, mais je ne pense pas que ce soit trop problématique.


Les messages abondent sur ce sujet, et pour aider les autres à économiser des heures d'essayer différentes solutions, voici le résultat final de mes heures de bricolage.

Les trois solutions sur Internet en ce moment sont: rubysspi apserver cntlm

Rubysspi ne fonctionne qu'avec une machine Windows, AFAIK, car elle repose sur la bibliothèque Win32Api. Donc, si vous êtes dans une boîte Windows essayant de passer par un proxy, c'est la solution pour vous. Si vous êtes sur une distribution Linux, vous n'avez pas de chance.

apserver semble être un projet mort. Le lien répertorié dans les messages que j'ai vus mène à la page 404 sur sourceforge. Je recherche "apserver" sur sourceforge ne renvoie rien.

Le lien sourceforge pour cntlm que j'ai vu redirige vers http://cntlm.awk.cz/ , mais qui expire. Une recherche sur sourceforge affiche ce lien, qui fonctionne: http://sourceforge.net/projects/cntlm/

Après avoir téléchargé et configuré cntlm, j'ai réussi à installer une gemme via le proxy, ce qui semble être la meilleure solution pour les distributions Linux.


Plutôt que d'éditer des fichiers batch (ce que vous devrez peut-être faire pour d'autres gemmes Ruby, par exemple Bundler), il est probablement préférable de le faire une fois, et de le faire correctement.

Sous Windows, derrière mon proxy d'entreprise, tout ce que je devais faire était d'ajouter la variable d'environnement HTTP_PROXY à mon système.

  1. Démarrer -> faites un clic droit sur Ordinateur -> Propriétés
  2. Choisissez "Paramètres système avancés"
  3. Cliquez sur Avancé -> Variables d'environnement
  4. Créez une nouvelle variable système nommée " HTTP_PROXY " et définissez la valeur sur votre serveur proxy
  5. Redémarrez ou déconnectez-vous et revenez à nouveau

En fonction de vos besoins d'authentification, la valeur HTTP_PROXY peut être aussi simple que:

http://proxy-server-name

Ou plus complexe que d'autres l'ont souligné

http://username:[email protected]ame:port-number


Si derrière un proxy, vous pouvez naviguer vers les téléchargements Ruby , cliquez sur Télécharger, qui téléchargera la mise à jour spécifiée (ou Gem) à l'endroit désiré.

Ensuite, via la ligne de commande Ruby, accédez à l'emplacement téléchargé en utilisant: pushd [directory]

par exemple: pushd D:\Setups

puis exécutez la commande suivante: gem install [update name] --local

Exemple: gem install rubygems-update --local .

Testé sur Windows 7 avec la mise à jour de Ruby version 2.4.1.

Pour vérifier l'utilisation de la commande suivante: ruby -v


Si vous utilisez un système * nix, utilisez ceci:

export http_proxy=http://${proxy.host}:${port}
export https_proxy=http://${proxy.host}:${port}

puis essayez:

gem install ${gem_name}





ironruby