use MacPorts with Subversion by HTTP

此前在Debian上习惯了apt/aptitude,有了它们,安装、卸载、依赖,这些繁琐的事情一下子简化了许多。切换到Mac OS X上以后,自然而然想到了MacPorts,虽然用法和apt/aptitude不同,但总觉得有些面熟。

MacPorts

MacPorts

今天在公司网络环境下,执行port selfupdate,竟然失败了,提示Couldn’t sync the ports tree。一番探究后明白,MacPorts默认使用rsync来同步数据,但是公司网络关闭了对外网873端口的访问,而这一端口正是rsync的默认端口。

如何解决这个问题?使用代理当然可以,但个人对代理无好感。

好在找到了另外一种方法:How to sync your ports tree using Subversion (over HTTP) ,以下的步骤就是这个方法的重演。

首先,进入MacPort目录,创建新目录:
cd /opt/local/var/macports/sources
mkdir -p svn.macports.org/trunk/dports

然后,进入新创建的目录,检出(checkout)文件:
cd svn.macports.org/trunk/dports
svn co http://svn.macports.org/repository/macports/trunk/dports/ .

接着,编辑/opt/local/var/macports/sources.conf,注释掉以下内容:
#rsync://rsync.macports.org/release/ports/ [default]

跟着,增加内容如下:
file:///opt/local//var/macports/sources/svn.macports.org/trunk/dports/ [default]

最后,执行:
port update

11 Comments

[…] 原文链接:http://www.poemcode.net/2011/02/macports-svn/ >>> 进入[Android2D游戏开发]主题文章列表 转载编辑: Fgamers 转载地址:http://disanji.net/2011/04/02/mac-use-macports-with-subversion-by-http/ 分享到 | blog comments powered by Disqus /* […]

E.T.7 6 月, 2012 at 4:03 下午

请问为什么svn co http://svn.macports.org/repository/macports/trunk/dports/ .这一步那么久都没弄完的?

Xu Haojie7 6 月, 2012 at 7:11 下午

这很大程度上取决于你的网速,首次checkout会耗比较久时间,之后sync就不会了。–如果需要设置代理服务器才能上网,那么别忘了修改macport.conf。

E.T.8 6 月, 2012 at 10:18 上午

好的。另外问问是不是要等SVN CO这步弄完,才会生成/opt/local/var/macports/sources.conf这个文件的?因为现在没发现有这个文件。

Xu Haojie8 6 月, 2012 at 10:26 上午

如果你使用的是最新的 MacPorts,则你说的那个文件应该是 /opt/local/etc/macports/sources.conf

E.T.8 6 月, 2012 at 12:48 下午

难怪了,找到了。另外SVN CO这步是必须的么?我是100M光纤,真的很慢,N个小时都没搞定,还在跑。能跳过么?

Xu Haojie8 6 月, 2012 at 2:56 下午

SVN CO 这一步即便你自己跳过,也仍旧会被自动触发。除非你有特殊需求,否则我建议你使用RSYNC,也就是默认的方式,不必采用我文中的方式,具体可见 http://guide.macports.org/#installing.macports 。此外,建议你考虑选择国内镜像地址,毕竟官方同步地址是在境外,国际带宽资源还是比较稀缺的。

E.T.8 6 月, 2012 at 3:42 下午

是这样的,我用rsync同步了几个文件后就卡住了,一直不动,所以才想试试你这方法。

Xu Haojie8 6 月, 2012 at 3:50 下午

那建议你还是使用 RSYNC 吧,因为 SVN 方式,需要下载的数据量会更大。不过,好在只有第一次才会需要下载大量数据,以后都是增量下载的。

E.T.8 6 月, 2012 at 3:51 下午

—> Updating MacPorts base sources using rsync
receiving file list … done
base.tar

sent 11356 bytes received 111 bytes 1764.15 bytes/sec
total size is 3539456 speedup is 308.66
receiving file list … done
base.tar.rmd160

sent 64 bytes received 116 bytes 51.43 bytes/sec
total size is 512 speedup is 2.84
MacPorts base version 2.1.1 installed,
MacPorts base version 2.1.1 downloaded.
—> Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/release/tarballs/ports.tar
receiving file list … done
ports.tar

我之前试了几次都是进行到这里就卡住了,等下再试试RSYNC吧!

E.T.8 6 月, 2012 at 4:28 下午

今天RSYNC貌似很给力,卡一会就继续跑动了,跑了不到1个小时就更新完了,谢谢啊!

Leave a comment

Your comment