我位于不允许我 rsync 出去的公司防火墙后面,并且需要 HTTP/HTTPS 代理。我在这个环境中的 macports 步骤中遇到了 rvm 中断的问题。
总结一下:
我正在尝试做
rvm install ruby-1.9.3-p286
rvm 想使用 macports。
macports 想使用 rsync 进行更新,但我无法 rsync 输出。
我设置了一个本地 macports 源代码库,但它似乎没有帮助 - macports 仍然想使用 rsync。
关于类似问题的建议建议更改
port selfupdate
为port sync
rvm 的脚本。但这并没有帮助 - macports 然后死去试图做一个svn update
但是我可以
svn update
手动完成,所以我不明白问题出在哪里。
以下是详细信息:
我按照本指南在防火墙后面使用 macports,方法是在本地签出 repo,并将以下内容设置为/opt/local/etc/macports/sources.conf
.
#rsync://rsync.macports.org/release/tarballs/ports.tar [default]
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ [default]
我与指南的唯一不同之处是我为 10.8 而不是 10.5 安装了 macports。
但是,出于某种原因,rvm 的 macports 似乎仍然使用 rsync:
$ rvm install ruby-1.9.3-p286
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.8/x86_64/ruby-1.9.3-p286.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Installing requirements for osx, might require sudo password.
Password:
DEBUG: Copying /Users/tim/Library/Preferences/com.apple.dt.Xcode.plist to
/opt/local/var/macports/home/Library/Preferences
DEBUG: MacPorts sources location:
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs ---> Updating MacPorts base sources using rsync
rsync: failed to connect to rsync.macports.org: Connection refused (61)
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-42/rsync/clientserver.c(105) [receiver=2.6.9]
Command failed: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/tarballs/base.tar /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
Exit code: 10
DEBUG: Error synchronizing MacPorts sources: command execution failed
while executing
"macports::selfupdate [array get global_options] base_updated"
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed
这与此问题非常相似,其中答案建议进行以下更改:
$ diff -u .rvm/scripts/functions/requirements/osx_port.org .rvm/scripts/functions/requirements/osx_port --- .rvm/scripts/functions/requirements/osx_port.org 2013-05-28 16:58:37.000000000 +0900 +++ .rvm/scripts/functions/requirements/osx_port 2013-05-28 16:58:50.000000000 +0900 @@ -82,7 +82,7 @@ requirements_osx_port_update_system() { - __rvm_try_sudo 端口 -dv 自我更新 || 返回$? + __rvm_try_sudo 端口 -dv 同步 || 返回$? } requirements_osx_port_define()
不幸的是,这会导致以下结果:
$ rvm 安装 ruby-1.9.3-p286 搜索二进制红宝石,这可能需要一些时间。 没有可用的二进制红宝石:osx/10.8/x86_64/ruby-1.9.3-p286。 继续编译。请阅读“rvm help mount”以获取有关二进制红宝石的更多信息。 osx 的安装要求,可能需要 sudo 密码。 密码: 调试:将 /Users/tim/Library/Preferences/com.apple.dt.Xcode.plist 复制到 /opt/local/var/macports/home/Library/Preferences ---> 更新端口树 从文件同步本地端口树:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ 调试:/usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports 调试:更改 euid/egid - 当前 euid:0 - 当前 egid:0 svn:“http://svn.macports.org/repository/macports/trunk/dports”的选项:无法连接到服务器(http://svn.macports.org) 命令失败:/usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports 退出代码:1 DEBUG:命令执行失败 在执行时 “系统 $svn_commandline” 错误:本地端口树的同步在执行 svn 更新时失败 调试:1 个源的同步失败 在执行时 “mportsync [数组获取 global_options]” 端口同步失败:1 个源的同步失败
直接用 macports 试试:
$ 端口 -d 同步 ---> 更新端口树 从文件同步本地端口树:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ 调试:/usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports svn:“http://svn.macports.org/repository/macports/trunk/dports”的选项:无法连接到服务器(http://svn.macports.org) 命令失败:/usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports 退出代码:1 DEBUG:命令执行失败 在执行时 “系统 $svn_commandline” 错误:本地端口树的同步在执行 svn 更新时失败 调试:1 个源的同步失败 在执行时 “mportsync [数组获取 global_options]” 端口同步失败:1 个源的同步失败
这很奇怪,因为我可以很好地运行该 svn 命令:
$ /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
At revision 107532.
这不是用户权限/配置文件问题,因为 root 也可以很好地运行该 svn 命令:
$ sudo /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
At revision 107532.
我假设链中的某些东西没有正确看到代理。然而:
- 我的代理在
http_proxy
和https_proxy
环境变量中正确设置 - 它也设置在(
~/.subversion/servers
作为变量http-proxy-host
和部分)http-proxy-port
[global]
- 它也被设置在
/opt/local/etc/macports/macports.conf
(作为变量proxy_http
和proxy_https
)
其他信息:
- 红宝石 1.8.7
- 转速 1.21.4
- OSX 10.8.3
- MacPorts 2.1.3
让我知道是否有任何其他有用的信息。
我的问题是我怎样才能port sync
在这种环境中工作?(我希望也能解决rvm
)