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

今天在公司网络环境下,执行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