Je soupçonne que le pare-feu d'entreprise empêche les gemmes d'être installés. J'ai défini http_proxy et je suis capable d'afficher des gemmes à distance via la commande suivante: mais quand je vais installer un gemme, je reçois un 404: p> jruby -S gem install rails
9 Réponses :
Je ne suis pas un expert avec Ruby. Personne, moins je pourrais donner les conseils "génériques" suivants (utiles pour de nombreuses situations avec les installateurs): P>
Vérifiez quel protocole est l'installation en cours d'installation. Quelque package de téléchargement d'installateur de miroir au lieu du site principal, et certains miroirs peuvent utiliser FTP ou autre chose au lieu de http. Ainsi, vous devrez peut-être mettre à jour vos paramètres en conséquence et vérifier votre administrateur que le proxy de l'entreprise est capable de récupérer des données à partir de sites FTP. P> LI>
Vérifiez quel utilisateur l'installateur est exécuté comme (une partie du programme d'installation doit escalader les privilèges sur "root". Et donc hériter d'un environnement différent avec un autre http_proxy défini). P> LI>
Vérifiez ce que le programme d'installation utilise pour télécharger les packages (de nombreux gestionnaires de packages de distribution s'appuient sur CURL / LIBCURL qui stocke ses paramètres de proxy dans un fichier RC). Même avertissement que 2 concernant les utilisateurs dont le homedir doit contenir le fichier RC. P> li>
Proxy transparent: Il est possible de transférer des demandes HTTP / FTP à la volée à la volée ciblant initialement le Web à un proxy. Soit le proxy de l'entreprise (s'il peut fonctionner avec une telle installation) ou un mini proxy local qui va ensuite cascade à l'entreprise. P> li>
Configurez un VPN rapide (SSH Autre PPP) sur SSH (voir la page Homme de SSH) entre votre machine et une machine spéciale au sein de la société autorisée à voir le Web, puis à mettre à jour vos tables de routage pour suivre le trafic. à travers le VPN. P> li>
Vous pouvez également utiliser tire-bouchon à Connectez-vous via SSH (et donc être capable d'installer un VPN sur SSH comme 5) avec une machine à l'extérieur, de l'autre côté du pare-feu d'entreprise, comme votre propre à la maison. (Ceci utilise le mode "Connecter" HTTPS du proxy pour accéder à un SSH à l'extérieur). Assurez-vous simplement que les administrateurs sont ou au moins une personne responsable est maintenue en boucle et ne paniquez pas. P> Li>
Mesure désespérée: Créez un tunnel entre deux machines fonctionnant chaque Tunnel HTTP , sur une proxy qui permet uniquement aux demandes HTTP. Ensuite, utilisez le tunnel pour établir un VPN SSH. P> LI> ol>
Ces solutions ne sont pas spécifiques à Ruby mais peuvent vous aider à traverser toute solution désespérée derrière un pare-feu trop restrictif. P>
1 à 4 devrait travailler dans la plupart des situations. Vous devrez recourir à 5 à 7 si confronté à des pare-feu bizarre et / ou paranoïde. 7 est plutôt extrême mais fonctionne toujours, bien que parfois avec des performances catastrophiques. P>
La proxying et / ou un tunnel n'est vraiment pas une option ici. Le pare-feu d'entreprise est là pour une raison et je ne veux pas risquer mon emploi en le contournant.
Vous pouvez toujours proxy à i> le proxy d'entreprise dans une implémentation en 2 étapes, au cas où le proxy de l'entreprise est incompatible avec le logiciel. (Le proxy intermédiaire est utilisé pour relier la demande entre les deux logiciels incompatibles). En outre, un tunnel à base de SSH (SSH-VPN ou SSH-PPP) peut également être réellement sécurisé en utilisant un schéma d'authentification correct et une machine distante. De plus, le tunnel est vivant seulement pendant que SSH est en cours d'exécution. Ainsi pourrait être activé et désactivé dans le cadre d'un script de mise à jour. "Risque de votre travail": Est-ce que je n'ai pas mentionné de garder les administrateurs ou la personne en chèque informé?
chose simple d'abord: êtes-vous dans la même session Shell lorsque vous avez essayé la liste et l'installation? Peut-être que vous oubliez de définir la deuxième fois envers?
Essayez de paramétrer Assurez-vous que le paramètre Proxy est valide URL (voir ci-dessous) P> Avez-vous plusieurs options de proxy? Ouvrez IE et Tapez est votre proxy authentifié? Si oui, avez-vous vos informations d'identification dans l'URL? Le mien est comme ceci (sous Windows): p> Votre mot de passe a-t-il des caractères de ponctuation? Essayez-le avec des chiffres et des lettres seulement, comme http_proxy code> au lieu de
http_proxy code>. P>
WPAD code> dans la barre d'adresse. Vous pouvez voir d'autres possibilités. P>
: code> et
@ code> (et éventuellement d'autres) sont significatifs dans la chaîne d'URL elle-même. P> p>
J'ai déjà essayé toutes ces suggestions et que le proxy n'est pas authentifié.
Voulez-vous utiliser "% 3a" dans "Myuserid% 3AMPASSWORD", ou si cela devrait-il être un ":"?
Oui, c'est un côlon, le débordement de pile est le codant pour une raison quelconque.
@Ianvaughanan - merci - changez de backticks sur 4-spatial-tiret fixé
Une autre question stupide, mais quel est le logiciel de proxy d'entreprise? Certains logiciels Windows ont tendance à utiliser des normes d'authentification étranges (NTLM HASHES, etc.) qui ne sont pas prises en charge par tous les clients (WGET ne le supportent pas, par exemple), mais sont supportés par beaucoup de navigateurs. p>
Ainsi, même si vous essayez d'écrire le nom d'utilisateur et le mot de passe dans l'URL proxy, cela ne fonctionnera pas lorsque vous essayez de télécharger et d'installer un packages, bien qu'il fonctionne assez bien lorsque vous essayez d'afficher une page dans Firefox. J'ai eu des problèmes similaires avec certains réseaux d'entreprise et mon gestionnaire de paquets de mon distro. P>
Dans ces situations, vous pouvez utiliser quelque chose comme NTLMAPS . Vous l'utilisez comme un proxy local qui en cascadez ensuite les demandes au proxy de l'entreprise. La bonne chose est que NTLMAPS pourra authentifier le mot de passe Weird NTLM avec le proxy de l'entreprise et toutes vos applications pourront se connecter à NTLMAPS, même ceux qui ne prennent pas en charge NTLM. P>
Vous pouvez utiliser cet outil: http://ntlmmaps.sourceforge.net/ p>
Les gemmes ne prennent pas en charge l'authentification proxy, alors traversez un proxy secondaire (comme, par exemple, votre machine) qui fait l'authentification pour vous et permet aux gemmes de penser qu'il n'y a pas d'authentification ne se produit pas devrait rendre votre vie plus facile. P>
Utilisez le nom de votre serveur proxy dans l'option -P -P à la commande GEM. P>
Mise à jour de GEM Rails -P http://mylocalproxy.mycompany.com p> li > ol>
Si cela ne fonctionne pas, vous pouvez toujours définir votre propre serveur proxy sur Internet quelque part. P>
J'ai retesté cela depuis que les gens de Gemcutter.org ont fait le mode sur Cloudfront d'Amazon et je suis capable de télécharger des gemmes à nouveau via le pare-feu de mon employeur. P>
J'ai décrit une procédure pour contourner les restrictions d'un pare-feu d'entreprise dans: P>
P>
Il utilise essentiellement un tunnel SSH et le programme Tsocks de programmation. P>
pour les gemmes rubis, placez cela dans mon gem.bat cela fonctionne pour moi pour jruby gems cela fonctionne p> aussi définir la variable d'environnement fonctionne comme p> ou si votre proxyserve a besoin d'authentification p> éditer: pour les personnes qui ont un Pare-feu restrictif ou aucun accès Internet (par exemple sur un serveur) Vous pouvez effectuer les opérations suivantes: Installez le (s) gemme (s) sur un PC qui a un accès gratuit à Internet, après avoir vérifié le dossier C: \ ruby193 \ lib \ ruby \ gems \ 1.9.1 \ Cache et copiez tous les gemmes avec une date de dernière modification après le moment où vous avez effectué votre installation. Sur le PC cible, vous les copiez dans le même dossier ou si vous nettoyez ensuite dans votre dossier BIN et démarrez l'installation avec p> gemname-xxxgem étant le nom de fichier GEMNAME de la gemme de base que vous souhaitez installer. La gemme avec toutes ses dépendances devrait s'installer. Ceci est pour Windows, mais d'autres systèmes d'exploitation peuvent utiliser la même technique, il suffit d'adapter quelques choses.
Succès p> p>
Où tapez-vous cela ou l'ajoutez-vous?
Quel est l'emplacement de gem.bat
Quel est l'emplacement de gem.bat? J'ai deux copies. L'une est en C: \ ruby193 \ bin et l'autre est en C: \ railsinstaller \ ruby1.9.3 \ bin
1.go au lecteur dans lequel vous avez installé Ruby. 2.Vous trouverez un dossier nommé "Ruby200-x64" ou quelque chose de similaire à celui de la version que vous avez installée. 3.Side le dossier ouvert ... bin / 4. Trouver GEM.BAT, ouvrez-le avec n'importe quel éditeur de texte, vous trouverez un tas de paramètres. 5. Après @ "% ~ dp0ruby.exe" "% ~ DPN0"% * Placez votre adresse de serveur proxy et votre port. ** P>
@ "% ~ dp0ruby.exe" "% ~ DPN0"% * --Http-proxy http://domainname.ccc.com:8080 p> blockQuote>
** p>
Je viens de trouver plus d'informations spécifiques à mon problème et de le documenter ici au cas où une personne ait cette question. Le pare-feu en question bloque n'importe quoi d'Amazon S3 que Gemcutter utilise pour stocker des gemmes.
C'est franchement une politique de pare-feu insensé. Vous ne pouvez même pas parcourir ces fichiers à l'aide d'IE ou Firefox?
Je suis d'accord. C'est une politique de pare-feu insensé. Bienvenue dans mon monde :)
Je devais faire un chèque pour voir si vous avez travaillé pour la même entreprise que je fais. Mais remarquablement vous ne le faites pas. C'est donc deux sociétés insensées dans le monde. Dans Ruby, pas Jruby, je dois habituellement télécharger et installer des gemmes manuellement. C'est correct tant qu'il n'y a pas beaucoup de dépendances.