gem
当我在办公环境中使用类似 shell 中的程序时,我遇到了名称解析问题。
每当程序需要连接到远程主机时,它都无法解析域名,但经过“手动解析”(例如通过dig
或ping
相同的命令)后将会成功。
基本上,这是我现在要做的:
$ 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
- 使用 phpvagrant
- 使用红宝石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
)。