web-dev-qa-db-fra.com

"gem install Rails" échoue avec une erreur DNS

$ rvm use
Using /home/owner/.rvm/gems/Ruby-2.1.2
$ gem install Rails
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 80 (http://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/thread_safe-0.3.4.gemspec.rz)
$ gem update --system
...
$ gem -v
2.4.1
$ gem install Rails
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 80 (http://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/Rails-4.1.5.gemspec.rz)

J'ai tenté:

  1. Installation d'autres gemmes (inventer, activerecord). J'ai la même erreur.
  2. Réinstallation de RVM
  3. En cours gem update --system
  4. Définition du DNS statique dans les versions 8.8.8.8 et 8.8.4.4 de Google
  5. Ajout de https://production.cf.rubygems.org en tant que source de gem (voir ci-dessous l'erreur)
  6. Installer 14.04 sur mon précédent 12.04. L'erreur persiste. La source de l'erreur doit être en dehors de mon ordinateur.

Informations supplémentaires sur ma connexion:

  1. Je peux me connecter à https://rubygems.org/ via mon navigateur
  2. Le pare-feu de mon modem est complètement désactivé.
  3. $ curl -v --head https://rubygems.org output: http://Pastebin.com/ca6DAvaU

Mon /etc/resolv.conf

$ cat /etc/resolv.co
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 75.75.75.75
search home.network

Ajouter une source directe de gem

Réf.: https://stackoverflow.com/a/19299266/3993020

owner@owner-Z87X-UD3H:~$ gem sources --add https://production.cf.rubygems.org
Error fetching https://production.cf.rubygems.org:
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 443 (https://your-dns-needs-immediate-attention.network/specs.4.8.gz)

Informations de débogage supplémentaires pour gem install Rails

owner@owner-Z87X-UD3H:~$ gem install Rails --debug -V
NOTE:  Debugging mode prints all exceptions even when rescued
Exception `LoadError' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/resolv.rb:169 - LoadError
HEAD https://api.rubygems.org/api/v1/dependencies
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
200 OK
GET https://api.rubygems.org/api/v1/dependencies?gems=Rails
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
Exception `OpenSSL::SSL::SSLErrorWaitReadable' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/openssl/buffering.rb:182 - read would block
200 OK
Exception `Resolv::DNS::Config::NXDomain' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/resolv.rb:547 - _rubygems._tcp.api.rubygems.org
Exception `Errno::ECONNREFUSED' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/net/http.rb:879 - Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 443
Exception `Gem::RemoteFetcher::FetchError' at /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/remote_fetcher.rb:286 - Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 443 (https://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/Rails-4.1.5.gemspec.rz)
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 443 (https://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/Rails-4.1.5.gemspec.rz)
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/remote_fetcher.rb:286:in `rescue in fetch_path'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/remote_fetcher.rb:259:in `fetch_path'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/source.rb:146:in `fetch_spec'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/resolver/api_specification.rb:76:in `spec'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/resolver/installer_set.rb:77:in `add_always_install'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/dependency_installer.rb:461:in `resolve_dependencies'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/commands/install_command.rb:238:in `install_gem'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/commands/install_command.rb:299:in `block in install_gems'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/commands/install_command.rb:295:in `each'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/commands/install_command.rb:295:in `install_gems'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/commands/install_command.rb:202:in `execute'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/command.rb:307:in `invoke_with_build_args'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/command_manager.rb:168:in `process_args'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/command_manager.rb:138:in `run'
    /home/owner/.rvm/rubies/Ruby-2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/gem_runner.rb:54:in `run'
    /home/owner/.rvm/rubies/Ruby-2.1.2/bin/gem:21:in `<main>'
22
tmtmtmtmt

Comme blasio a souligné. Il semble que les modems Xfinity configurent le domaine de recherche sur home.network et que les choses soient gâchées pour les raisons qu'il a mentionnées (essentiellement, home.network est maintenant un nom de domaine valide que les modems tentent de contacter avant d'établir une connexion). 

J'ai eu le même problème et la modification sur resolv.conf semble faire l'affaire, et cela devrait probablement être une solution acceptée pour les environnements Linux. J'ai eu ce problème alors que j'essayais de le faire sur une machine virtuelle exécutant Ubuntu, et mon hôte (OSX Mavericks) transmettait le search home.network comme le modem. Je voulais donc voir si je pouvais trouver une solution pouvant être apportée à l'hôte hôte. niveau parce que le même problème s’est produit lorsque j’ai tenté gem install Rails sur mon terminal OSX. 

Si vous allez dans les paramètres réseau OSX, sous DNS, vous verrez la ligne home.network dans la zone Domaines de recherche. Après quelques recherches sur Google, il semble que Comcast ait récemment modifié cette option à partir de http://hds1.ma.comcast.net'. Je l'ai changé, remis en marche et ai donné gem install Rails un autre coup, qui a fonctionné sans problème. 

Problème étrange, mais c’est une meilleure solution que d’échanger des modems ou de changer des sources de gem. 

31
jalvarado91

J'ai eu le même problème avec Comcast xFinity et Compass.

Mise à jour pour les utilisateurs Windows 7:

Go to Control Panel > Network and Sharing Center
Under "Active Networks" select "Connections: Local Area Connections"
In the "Local Area Connection Status" dialogue box, click on "Properties"
Double click the IPv4 item
In the "Internet Proptocol Verion 4" icon or click the "Properties" button, then click "Advanced"
In the DNS tab, just above the 2nd input box, click the "Append These DNS suffixes (in order)" radio button,
    then click "Add", enter "home.lan", then click OK until the dialogue closes.

    Many thanks to John Smith for the Vista fix and Somnambulent for Win 8.1 fix.
7
Bob Rast

Votre erreur DNS semble être liée au fait que .network devienne un TLD et que votre resolv.conf manque le ndots configuration. Je viens de rencontrer ce problème avec .prod.

Sauf si vous avez votre propre serveur DNS chez vous pour le domaine réseau interne, la suppression du search home.network de /etc/resolv.conf devrait résoudre le problème.

Comme votre fichier /etc/resolv.conf est généré par resolveconf comme indiqué dans votre fichier resolv.conf, vous pouvez supprimer le réseau local (home.network) de votre configuration. Voir ici, par exemple

5
blasio

Je veux juste dire merci à vous tous. Depuis que je suis nouvelle ici. Je ne peux pas ajouter un commentaire, même voter. Je ne peux donc que venir à la partie réponse.

J'ai eu un problème quand j'ai essayé d'installer des cocoapodes:

➜  ~  gem install cocoapods
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: Operation timed out - connect(2) for "your-dns-needs-immediate-attention.network" port 443 (https://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/cocoapods-0.33.1.gemspec.rz)`enter code here`

L'ajout de home.local dans les domaines de recherche DNS le corrige.

Merci encore! J'admire ton esprit !!!

4
Roden Luo

J'utilise RVM (1.25.29), Ubuntu 14.04 et Ruby 2.0.0. C'était une nouvelle installation de RVM et Ruby 2.0. 

Dans mon cas, j'essayais d'installer l'outil de ligne de commande d'OpenShift Online: rhc avec "gem install rhc".

Je l'ai finalement résolu en utilisant bundle install et un Gemfile. Je ne sais pas pourquoi, mais bundle a pu obtenir les gemmes via https à Rubygems.org, mais "gem install" n'a pas pu.

Essayez de créer un Gemfile avec votre gemme comme solution temporaire pour l’installer.

Gemfile:

source 'https://rubygems.org'

# have bundle handle the gem install via https
gem 'Rails'

Puis lancez:

 bundle install

Le seul moyen de le faire fonctionner avec "gem install" était d'utiliser:

gem install --source http://rubygems.org

_ {Mais c'est dangereux et non recommandé.

Je n'ai pas été en mesure de déterminer pourquoi bundle peut être installé via https, mais pas Gem. Je suis relativement nouveau à Ruby et à RVM.

La gemme bundler est fournie avec l'installation rvm, mais rubygems avec Ruby2.0.0-p481. Au début et à cause de l'erreur, je pensais que cela avait quelque chose à voir avec openssl, mais après de nombreux essais et erreurs, cela semble être lié à des gemmes manquantes et dépendantes.

Une fois la gem installée via bundle, j’ai pu la désinstaller puis la réinstaller via "gem install". J'ai remarqué que "bundle install" installait des gems manquants liés au réseau et à ssl avant d'installer "rhc".

Sans en savoir beaucoup sur le fonctionnement de bundle et gem install, je pense que le bundler gem avait «tout ce dont il avait besoin pour sortir via httpsrubygems (fourni avec l'installation de Ruby 2.0) ne l'a pas fait. Et cela expliquerait pourquoi après l'installation de installation groupée, gem.

J'espère que cela fonctionne pour quelqu'un d'autre qui a rencontré cela. Sinon, au moins, c'est une dernière chose à essayer ;-). 

3
lauracw100

J'utilise openSUSE 13.1 OS pour le développement de Rails. Soudain, j'ai eu le même problème et signalé à SUSE mailing list . Et puis j'ai eu une très bonne explication sur le problème ici .

Contexte: le ".site" est enregistré officiellement et n'est donc plus disponible pour un usage privé. 

ToDo: Changez votre tld privé en quelque chose de NON enregistré.

Gotchas: ".local" est réservé à mDNS/ZeroConf/Bonjour/Rendezvous . Ne l'utilisez PAS pour DNS/DHCP!

Exemples: ".box", ".lan": les deux sont suggérés par certains routeurs Internet-Connect-Routers (DSL/Câble/Fibre) ".lnet", ".votre-nom-ici" (.ArupRakshit pour vous): possible, ça vaut la peine d'essayer.

HTH, Yamaban.

J'ai suivi ses instructions ici

Pour les futurs lecteurs, allez à YAST -> Périphériques Netwrok -> Paramètres réseau -> Nom d'hôte/DNS -> Nom de domaine (et mettez votre nom ici).

[arup@Rails]$ gem install Rails --no-ri --no-rdoc
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2 


Fetching: i18n-0.7.0.gem (100%) 
........
........
[arup@Rails]$ Rails -v
Rails 4.2.0

Maintenant tout est réglé. :)

3
Arup Rakshit

Les nouveaux domaines de premier niveau - .prod, .network sont des domaines réels à ne pas utiliser comme espace réservé interne - https://icann.org/namecollision

2
John Curran

Pour moi "votre-dns-a besoin-d'attention immédiate" , signifiait en fait "vos sources de gem ne sont pas valables".

gem source --list

Vérifiez la sortie. Si la liste actuelle n'est pas valide, vous pouvez simplement

gem source -a https://rubygems.org

... ou toute autre source appropriée. Ensuite, utilisez l'indicateur -r pour supprimer les sources non valides.

1
Gerry

J'ai eu le même problème lors de l'installation de premailer et de la mise à niveau de Ruby vers la version stable actuelle (2.3.0) qui a résolu le problème.

avec rvm:

rvm install 2.3.0

rvm use 2.3.0

gem install premailer 

bien sûr, cela s'applique à n'importe quel bijou, pas seulement à la premailer

0
dnshio

FWIW, si quelqu'un rencontre cela dans Windows, voici comment je l'ai corrigé (en 8.1).

  1. Allez à Panneau de configuration\Réseau et Internet\Centre Réseau et partage.
  2. Cliquez sur le statut de votre adaptateur réseau, puis sur ses propriétés.
  3. Double-cliquez sur l'élément IPv4
  4. Dans les propriétés IPv4, cliquez sur Avancé ...
  5. Dans l'onglet DNS, recherchez le suffixe 'home.network' et supprimez-le.
  6. Hit OK un tas de fois :)

Maintenant, vous devriez être prêt à partir!

0
somnambulant

Pour moi, télécharger et réinstaller gem à partir de cette page: https://rubygems.org/pages/download a résolu le problème Errno :: ECONNREFUSED.

0
Lut Ze

Si vous travaillez sur un système Mac, vous pouvez essayer de

Sudo vi /etc/resolv.conf

en éditant une instruction search avec l’ajout de .local à un mot. 

EX:

# This file is automatically generated.
#
search network.local

REMARQUE: network ci-dessus est le domaine pour ce cas. Vous pouvez utiliser n'importe quel mot.

0
allen

il semble que comcast a récemment ajouté le réseau home.network au chemin de recherche DNS des clients

J'ai résolu ce problème en procédant comme suit sur Windows Vista:

panneau de commande -> centre de réseau et de partage -> gérer les connexions réseau -> propriétés sans fil -> propriétés ip4 -> avancé -> onglet DNS -> sélectionner ajouter ces suffixes DNS dans l'ordre et ajouter home.lan.

maintenant gem installer s'exécute sans accroc

0
John Smith