RVM - MacPorts不会通过代理更新

时间:2013-05-13 11:25:45

标签: ruby terminal osx-lion rvm

我正在尝试使用RVM在我的iMac上安装ruby。

首先键入以下内容:

rvm list known

然后我使用以下行定位我要安装的版本(我正在遵循建议1.9.2而不是基础1.8.7的指南):

rvm install 1.9.2

然后我明白了:

27698AM:~ butler15$ rvm install 1.9.2
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.7/x86_64/ruby-1.9.2-p320.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Installing requirements for osx, might require sudo password.
Password:

我输入密码后就明白了:

DEBUG: Copying /Users/butler15/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: Operation timed out (60)
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

如果我理解正确,它正在尝试更新MacPorts但由于落后于代理(或其他什么?而失败?)

我已尝试按照本指南操作但不起作用:http://samkhan13.wordpress.com/2012/06/15/make-macports-work-behind-proxy/

更多信息:

我当前的RVM和RUBY版本:http://d.pr/i/H1Eu

我的OSX - 10.7.4

提前感谢您的帮助:)

4 个答案:

答案 0 :(得分:7)

虽然Koji的评论使RVM在代理服务器之后工作,但Macports也需要更新以自动在代理服务器后面工作。

首先,从http://www.macports.org/install.php

的软件包安装macports

然后运行以下命令:

sudo mkdir -p /opt/local/var/macports/sources/svn.macports.org/trunk/dports/
cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports/

sudo svn co http://svn.macports.org/repository/macports/trunk/dports/ .

在/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]

然后运行这些命令以便更新并且不会抱怨您的端口没有被编入索引。

sudo port -d sync
sudo portindex

然后通过在selfupdate函数中将sync更改为requirements_osx_port_update_system()来修改.rvm / scripts / functions / requirements / osx_port。

requirements_osx_port_update_system()
{
  #__rvm_try_sudo port -dv selfupdate || return $?
  __rvm_try_sudo port -dv sync || return $?
}

答案 1 :(得分:3)

如果您正在尝试MAKE MACPORTS WORK BEHIND PROXY,那么如何避免port selfupdate

$ 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 port -dv selfupdate || return $?
+  __rvm_try_sudo port -dv sync || return $?
 }

 requirements_osx_port_define()

就我而言,它运作良好。

答案 2 :(得分:1)

在终端中运行“__rvm_try_sudo port -dv selfupdate”并通过键盘输入密码 然后重新运行脚本以安装ruby

适用于我的笔记本电脑

祝你好运

答案 3 :(得分:0)

您需要先(重新)安装命令行工具:

sudo xcode-select --install

然后,更新macports:

sudo port -v selfupdate

来源:https://stackoverflow.com/a/19634495/226255

然后,您可能会遗漏一些要求,所以:

sudo rvm requirements