【发布时间】:2013-02-12 07:54:37
【问题描述】:
我有 XCode 3.2.6,其中包括 SVN 1.6.x。我刚刚安装了 MacPorts,得到了 1.7.x 的 subversion,但是当我运行 svn --version 时,它显示的是 1.6.17。
我在 Xcode 之后安装了 MacPorts,为什么 Scode#s 版本优先?
【问题讨论】:
我有 XCode 3.2.6,其中包括 SVN 1.6.x。我刚刚安装了 MacPorts,得到了 1.7.x 的 subversion,但是当我运行 svn --version 时,它显示的是 1.6.17。
我在 Xcode 之后安装了 MacPorts,为什么 Scode#s 版本优先?
【问题讨论】:
如果您从 shell 命令行(例如在终端窗口中)运行 svn,您需要确保 MacPorts 安装东西的 bin 目录(默认为 /opt/local/bin)位于位置之前Apple 安装的版本是 (/usr/bin)。这是由进程环境变量PATH控制的。
$ export PATH=/opt/local/bin/:$PATH
要进行此更改永久,请将该行添加到您的 shell 启动文件中,例如,.bash_profile。
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
$ which svn
/usr/bin/svn$ svn --version
svn, version 1.6.17 (r1128011)
compiled Feb 1 2012, 15:04:34
[...]
$ export PATH=/opt/local/bin:$PATH
$ echo $PATH
/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
$ which svn
/opt/local/bin/svn
$ svn --version
svn, version 1.7.4 (r1295709)
compiled Mar 8 2012, 19:29:25
[...]
【讨论】:
PATH="/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin
type -a svn 显示什么? port installed | grep subversion 显示什么? port contents subversion 显示什么?
subversion @1.7.4_0 (active) 来自 port installed。 port contents 在/opt/local/... type -a svn` 中显示大量内容:svn is /opt/local/bin/svn、svn is /usr/bin/svn
PATH 环境变量对 Xcode 使用的内容没有影响。请参阅此问题以了解一种方法,但请记住,这将覆盖 Apple 提供的文件,这绝不是一个好主意:stackoverflow.com/questions/473977/…
ls -l /opt/local/bin/svn 显示什么?另外,/opt/local/bin/svn --version 呢?
我遇到了同样的问题(svn --version 显示 1.6.x),即使 /opt/local/bin 位于路径的前面,which svn 返回/opt/local/bin/svn,并且运行 /opt/local/bin/svn --version 显示 1.7.x。
对我来说,重新启动终端解决了它。
【讨论】:
type -a git 给我@987654327 @ 和 git is /usr/bin/git,但最后一个仍然执行。重新启动终端(或者可能只是当前的 bash 会话)现在将执行第一个。