Comment mettre à jour Ruby Gems à partir de derrière un Proxy (ISA-NTLM)

le pare-feu derrière lequel je suis tourne le serveur ISA de Microsoft en mode NTLM uniquement. Hash quelqu'un a-t-il réussi à obtenir ses gemmes Ruby pour installer/mettre à jour via Ruby SSPI gem ou une autre méthode?

... ou suis-je juste être paresseux?

Remarque: rubysspi-1.2.4 ne fonctionne pas.

cela fonctionne aussi pour "igem", partie du projet IronRuby

213
demandé sur the Tin Man 2008-08-07 09:21:16

18 réponses

Je n'ai pas réussi à faire fonctionner le mien à partir du commutateur de ligne de commande, mais j'ai pu le faire simplement en paramétrant ma variable d'environnement HTTP_PROXY . (Notez que le 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 défini les quatre variables référencées avant d'arriver à cette ligne évidemment. Par exemple, si mon nom d'utilisateur est "wolfbyte", mon mot de passe est "secret" et mon mandataire est appelé "pigsy" et opère sur le port 8080:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

vous pourriez vouloir être prudent comment vous gérez cela parce qu'il stocke votre mot de passe en texte clair dans la session de la machine, mais je ne pense pas que ce devrait être trop d'un problème.

204
répondu Mike Minutillo 2016-01-29 17:28:20

pour le système D'exploitation Windows, J'ai utilisé Fiddler pour contourner le problème.

  1. Installer/Exécuter Fiddler de www.fiddler2.com
  2. Exécuter gem:

    $ gem install --http-proxy http://localhost:8888 $gem_name
    
199
répondu Peter Moresi 2016-01-29 18:09:35

cela a totalement fonctionné:

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name
119
répondu SethRocker 2016-01-29 17:30:58

j'ai utilisé cntlm ( http://cntlm.sourceforge.net / ) au travail. La Configuration est très similaire à ntlmaps.

fonctionne très bien, et me permet également de connecter ma boîte Ubuntu au proxy ISA.

Check out http://cntlm.wiki.sourceforge.net / pour plus information

48
répondu Jason Navarrete 2008-08-31 21:59:45

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

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

37
répondu kfox 2016-01-29 18:04:04

cela a parfaitement résolu mon problème:

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

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

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass
14
répondu HomTom 2014-04-09 08:48:40

créer un .gemrc fichier (dans /etc/gemrc ou ~/.gemrc ou par exemple avec le chef de gem dans /opt/chef/embedded/etc/gemrc) contenant:

http_proxy: http://proxy:3128

, Alors vous pouvez gem install comme d'habitude.

14
répondu lukapiske 2016-05-09 17:04:19

si vous avez des problèmes à vous authentifier par votre mandataire, assurez-vous de définir les variables d'environnement exactement dans le format ci-dessous:

set HTTP_PROXY=some.proxy.com
set HTTP_PROXY_USER=user
set HTTP_PROXY_PASS=password

la syntaxe user:password@ ne semble pas fonctionner et il y a aussi des variables d'environnement mal nommées qui flottent sur le débordement de la pile et divers messages forum.

Aussi être conscient que cela peut prendre un certain temps pour vos gemmes pour démarrer le téléchargement. Au début, je pensais que ce n'était pas en travaillant mais avec un peu de patience, ils ont commencé à télécharger comme prévu.

10
répondu Benjamin Wootton 2016-01-29 17:29:51

j'ai essayé toutes les solutions ci-dessus, mais aucune n'a fonctionné. Si vous êtes sous linux / macOS, je suggère fortement d'utiliser tsocks sur un tunnel ssh. Ce dont vous avez besoin pour obtenir cette configuration de travail est une machine où vous pouvez vous connecter via ssh, en outre, un programme appelé tsocks installé.

l'idée ici est de créer un tunnel dynamique via SSH (un proxy socks5). Nous configurons ensuite tsocks pour utiliser ce tunnel et pour démarrer nos applications, dans ce cas:

tsocks gem install ...

ou pour les rails 3.0:

tsocks bundle install

un guide plus détaillé se trouve sous:

http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu /

bien qu'elle soit écrite pour Ubuntu, la procédure devrait s'appliquer à toutes les machines basées sur Unix. Une alternative à tsocks Pour Windows est FreeCap ( http://www.freecap.ru/eng / ). Un client SSH viable sur windows s'appelle putty.

8
répondu Christian F 2011-09-06 05:04:51

les billets 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 autour d'internet à l'heure actuelle sont: rubysspi apserver cntlm

rubysspi ne fonctionne qu'à partir D'une machine Windows, AFAIK, car il s'appuie sur la bibliothèque Win32Api. Donc si vous êtes sur une fenêtre et que vous essayez de passer par un proxy, c'est la solution pour vous. Si vous êtes sur un Distribution Linux, vous n'avez pas de chance.

apserver semble être un projet mort. Le lien indiqué dans les billets que j'ai vu mener à la page 404 sur sourceforge. Je cherche "apserver" sur sourceforge ne retourne rien.

le lien sourceforge pour cntlm que j'ai vu redirige vers http://cntlm.awk.cz / , mais ça va. Une recherche sur sourceforge fait apparaître ce lien, qui fonctionne: http://sourceforge.net/projects/cntlm/

après avoir téléchargé et configuré cntlm, j'ai réussi à installer un gem par l'intermédiaire du proxy, ce qui semble être la meilleure solution pour Linux distros.

7
répondu 2009-03-10 11:37:13

une solution est d'installer http://apserver.sourceforge.net sur votre machine locale, configurez-la et lancez des gemmes à travers ce proxy.

  • Install: il suffit de télécharger apserver 097 (et pas l'experimental 098!) et de décompresser.
  • configurer: éditer le serveur.fichier cfg et mettre les valeurs de votre MS proxy dans PARENT_PROXY et PARENT_PROXY_PORT . Entrez les valeurs du domaine et de L'utilisateur. Laisser le mot de passe en blanc (rien après le côlon) – vous serez invité lors du lancement.
  • Exécuter apserver: cd aps097; python main.py
  • Exécuter Gemmes: gem install—http-proxy http://localhost:5865/ library
5
répondu Jarin Udom 2016-01-29 18:11:56

je travaille derrière un proxy et je viens d'installer SASS en téléchargeant directement à partir de http://rubygems.org .

j'ai alors couru sudo gem install [path/to/downloaded/gem/file] . Je ne peux pas dire que cela fonctionnera pour toutes les gemmes, mais cela pourrait aider certaines personnes.

4
répondu Zander 2016-01-29 18:03:16

cela a fonctionné pour moi dans une boîte de fenêtres:

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 de commandes avec ces lignes que j'utilise pour définir les valeurs de l'environnement quand j'en ai besoin.

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

3
répondu Pedro García Vigil 2016-01-29 17:30:06

rubysspi-1.3.1 travaillé pour moi sur Windows 7, en utilisant les instructions de cette page:

http://www.stuartellis.eu/articles/installing-ruby /

2
répondu moonpatrol 2011-11-04 07:46:25

si vous êtes sur un système *nix, utilisez ceci:

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

et ensuite essayer:

gem install ${gem_name}
2
répondu Saikrishna Rao 2016-01-29 17:30:26

si vous voulez utiliser SOCKS5 proxy, vous pouvez essayer rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy .

ça marche pour moi sur OSX 10.9.3.

1
répondu Qi Luo 2014-06-06 16:52:33

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

ensuite, via Ruby command line, naviguez jusqu'à l'emplacement téléchargé en utilisant: pushd [directory]

par exemple : pushd D:\Setups

lancez ensuite la commande suivante: gem install [update name] --local

par exemple: gem install rubygems-update --local .

testé sur Windows 7 avec Ruby update version 2.4.1.

pour vérifier, utilisez la commande suivante: ruby -v

1
répondu ArNumb 2014-08-11 13:27:13

plutôt que d'éditer des fichiers batch (ce que vous pourriez avoir à 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.

sur Windows, derrière mon mandataire d'entreprise, tout ce que j'avais à faire était d'ajouter la variable d'environnement HTTP_PROXY à mon système.

  1. Démarrer -> clic droit sur Ordinateur> Propriétés
  2. Choisir "Paramètres Système Avancés"
  3. Cliquez Sur Avancé - >Variables D'Environnement
  4. créez une nouvelle variable système appelée " HTTP_PROXY ", et définissez la valeur à votre serveur mandataire
  5. redémarrer ou se déconnecter et revenir à nouveau

selon vos exigences d'authentification, la valeur HTTP_PROXY peut être aussi simple que:

http://proxy-server-name

ou plus complexe comme d'autres l'ont souligné

http://username:password@proxy-server-name:port-number
1
répondu testworks 2016-01-29 18:02:40