Proxy 即使设置了rsync_代理,rsync代理仍不工作

Proxy 即使设置了rsync_代理,rsync代理仍不工作,proxy,environment-variables,rsync,macports,sudo,Proxy,Environment Variables,Rsync,Macports,Sudo,我在一个http代理和一个想要使用sudo-port-selfupdate更新macports的机器后面。但它总是失败,输出如下: $ sudo port -d selfupdate DEBUG: Copying /Users/simon/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences DEBUG: MacPorts sources location:

我在一个http代理和一个想要使用
sudo-port-selfupdate
更新macports的机器后面。但它总是失败,输出如下:

$ sudo port -d selfupdate
DEBUG: Copying /Users/simon/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: getaddrinfo: rsync.macports.org 873: nodename nor servname provided, or not known
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
显然,问题在于
rsync
没有连接到服务器,因此我尝试单独使用
rsync
,它给出了类似的结果

$ sudo /usr/bin/rsync -rtzvvv --delete-after rsync://rsync.macports.org/release/tarballs/base.tar /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
opening tcp connection to rsync.macports.org port 873
rsync: getaddrinfo: rsync.macports.org 873: nodename nor servname provided, or not known
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-42/rsync/clientserver.c(105) [receiver=2.6.9]
_exit_cleanup(code=10, file=/SourceCache/rsync/rsync-42/rsync/clientserver.c, line=105): about to call exit(10)
我确实得到了我的
RSYNC\u PROXY
环境变量集,代理正在工作,但根据
RSYNC
的输出,它似乎没有使用我提供的代理,而是尝试直接连接。有人能帮忙吗?谢谢

这里有更多的信息以备不时之需

$ echo $RSYNC_PROXY
127.0.0.1:3128
$ curl -x localhost:3128 http://rsync.macports.org:873/
@RSYNCD: 30.0
$ uname -a
Darwin Simon-MP.local 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64 x86_64
问题解决了

结果是,
sudo
将RSYNC\u代理环境传递给
RSYNC
。要保留环境
sudo
接受
-E
选项:

-E(保留环境)选项将覆盖环境重置 sudoers(5)中的选项。仅当匹配的 命令具有SETENV标记,或者在sudoers(5)中设置了SETENV选项