在 shell 中使用“gem”等程序时出现名称解析问题

在 shell 中使用“gem”等程序时出现名称解析问题

gem当我在办公环境中使用类似 shell 中的程序时,我遇到了名称解析问题。

每当程序需要连接到远程主机时,它都无法解析域名,但经过“手动解析”(例如通过digping相同的命令)后将会成功。

基本上,这是我现在要做的:

$ gem install guard-sass
ERROR:  Could not find a valid gem 'guard-sass' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - no such name (https://rubygems.org/latest_specs.4.8.gz)
ERROR:  Possible alternatives: guard-sass
$ ping rubygems.org
PING rubygems.org (54.245.255.174): 56 data bytes
Request timeout for icmp_seq 0
^C
--- rubygems.org ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
$ gem install guard-sass
Fetching: guard-sass-1.3.2.gem (100%)
Successfully installed guard-sass-1.3.2
Parsing documentation for guard-sass-1.3.2
Installing ri documentation for guard-sass-1.3.2
1 gem installed
$ 

该问题并不特定于某一命令或编程语言,而是发生在以下任何一种情况下:

  • gem- 使用 ruby​​ 进行底层开发
  • composer- 使用 php
  • vagrant- 使用红宝石
  • brew- 使用红宝石
  • git- 使用 C

系统:

  • Mac OS X 10.9(10.8 也存在同样的问题)

它不会影响任何浏览器或其他带有 GUI 的应用程序。

在使用同一台机器的其他环境(例如在家里)中不会出现此问题。

关于如何解决此类问题您有什么想法吗?

跟进:

  • 我在办公室和家里都通过 DHCP 获取 IP 地址和 DNS 服务器地址。
  • 我也尝试使用像 Google 这样的外部 DNS 服务器8.8.8.8
  • Mac 仅在办公室和家之间传输时才会进入睡眠状态(无需完全重启)。
  • 在办公室遇到此问题时,我尝试使用相同的 shell 并打开新会话。还尝试完全重启计算机并刷新 DNS 缓存 ( dscacheutil -flushcache;sudo killall -HUP mDNSResponder)。

相关内容