Question

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

...ou est-ce que je suis juste paresseux ?

Note:rubysspi-1.2.4 ne fonctionne pas.

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

Était-ce utile?

La solution

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 définissant mon HTTP_PROXY variable d'environnement.(Notez que ce cas semble être important).J'ai un fichier batch contenant une ligne comme celle-ci :

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

J'ai évidemment défini les quatre variables référencées avant d'arriver à cette ligne.A titre d'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:secret@pigsy: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 cela devrait poser trop de problèmes.

Autres conseils

Pour le système d'exploitation Windows, j'ai utilisé Fiddler pour contourner le problème.

  1. Installer/Exécuter Fiddler depuis www.fiddler2.com
  2. Exécuter la gemme :

    $ gem install --http-proxy http://localhost:8888 $gem_name
    

Cela a totalement fonctionné :

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name

J'utilise cntlm (http://cntlm.sourceforge.net/) au travail.La configuration est très similaire à celle de ntlmaps.

Fonctionne très bien et me permet également de connecter ma box Ubuntu au proxy ISA.

Vérifier http://cntlm.wiki.sourceforge.net/ pour plus d'informations

J'ai essayé certaines de ces solutions et aucune d'entre elles n'a fonctionné.J'ai enfin trouvé une solution qui me convient :

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

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

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

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

http_proxy: http://proxy:3128

Ensuite vous pouvez gem install comme d'habitude.

Si vous rencontrez des problèmes pour vous authentifier via votre proxy, 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

Le user:password@ la syntaxe ne semble pas fonctionner et il existe également des variables d'environnement mal nommées flottant sur Stack Overflow et divers messages du forum.

Sachez également que le téléchargement de vos gemmes peut prendre un certain temps.Au début, je pensais que ça ne fonctionnait pas, mais avec un peu de patience, ils ont commencé à télécharger comme prévu.

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 que cette configuration fonctionne, c'est d'une machine sur laquelle vous pouvez vous connecter via ssh, et en plus de cela, un programme appelé tsocks est installé.

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

tsocks gem install ...

ou pour prendre en compte les rails 3.0 :

tsocks bundle install

Un guide plus détaillé peut être trouvé sous :

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

Bien qu'elle ait été écrite pour Ubuntu, la procédure devrait être applicable à toutes les machines basées sur Unix.Une alternative aux tsocks pour Windows est FreeCap (http://www.freecap.ru/eng/).Un client SSH viable sur Windows s'appelle putty.

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

Les trois solutions autour d’Internet actuellement sont :rubyspi apServer cntlm

rubysspi ne fonctionne qu'à partir d'une machine Windows, AFAIK, car il s'appuie sur la bibliothèque Win32Api.Donc, si vous utilisez une machine Windows et que vous essayez d'exécuter via un proxy, cette solution est faite pour vous.Si vous utilisez une distribution Linux, vous n'avez pas de chance.

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

Le lien sourceforge pour cntlm vers lequel j'ai vu redirige http://cntlm.awk.cz/, mais cela expire.Une recherche sur sourceforge donne 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, cela semble donc être la meilleure solution pour les distributions Linux.

Une solution de contournement consiste à installer http://apserver.sourceforge.net sur votre machine locale, configurez-le et exécutez des gemmes via ce proxy.

  • Installer:Téléchargez simplement l'apserver 097 (et non le 098 expérimental !) et décompressez.
  • Configurer :Modifiez le fichier server.cfg et mettez les valeurs de votre proxy MS dans PARENT_PROXY et PARENT_PROXY_PORT.Entrez les valeurs pour DOMAINE et UTILISATEUR.Laissez MOT DE PASSE vide (rien après les deux points) – vous serez invité lors de son lancement.
  • Exécutez le serveur : cd aps097; python main.py
  • Exécutez des gemmes : gem install—http-proxy http://localhost:5865/ library

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

J'ai ensuite couru sudo gem install [path/to/downloaded/gem/file].Je ne peux pas dire que cela fonctionnera pour toutes les pierres précieuses, mais cela pourrait aider certaines personnes.

Cela a fonctionné pour moi dans une machine 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 lorsque j'en ai besoin.

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

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

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

puis essaye :

gem install ${gem_name}

rubysspi-1.3.1 a fonctionné pour moi sous Windows 7, en utilisant les instructions de cette page :

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

Si vous souhaitez utiliser le proxy SOCKS5, vous pouvez essayer rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy.

Cela fonctionne pour moi sur OSX 10.9.3.

Si vous êtes derrière un proxy, vous pouvez accéder à Téléchargements Ruby, cliquez sur Télécharger, qui téléchargera la mise à jour spécifiée (ou Gem) à l'emplacement souhaité.

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

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

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

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

Plutôt que de modifier des fichiers batch (ce que vous devrez peut-être faire pour d'autres gemmes Ruby, par ex.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, il me suffisait d'ajouter le HTTP_PROXY variable d'environnement sur mon système.

  1. Démarrer -> 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 reconnectez-vous

En fonction de vos exigences d'authentification, le HTTP_PROXY la valeur 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top