Отключение /usr/bin/svn для использования установленного brew svn

Я использую Lion, а svn /usr/bin/svn версии 1.6. Поскольку мне нужно использовать Subversion 1.7, я установил svn из brew для установки в /usr/local/bin/svn.

Как я могу отключить файлы svn *, чтобы я мог использовать svn из brew?

Ответы (2)

Существует лучший и более безопасный способ указать, какую версию исполняемого файла вы хотите использовать на своем компьютере, не изменяя исполняемые файлы, предварительно установленные на вашем Mac. Как правило, не рекомендуется каким-либо образом изменять системные инструменты по умолчанию.

Вы можете воспользоваться переменной среды PATH , которая позволяет вам перечислить несколько каталогов, в которых вы хотите, чтобы ваш Mac выполнял поиск исполняемых файлов.

Чтобы использовать последнюю версию svn или любой другой инструмент, который вы установили /usr/local/binс помощью Homebrew (или MacPorts, вручную и т. д.), вы должны указать своему Mac сначала просмотреть /usr/local/binего, прежде чем он будет искать файл по умолчанию /usr/bin. Вы делаете это, определяя PATHв своем .bash_profileфайле , который загружается автоматически каждый раз, когда вы открываете новое окно терминала.

Вы можете записать PATH в свой .bash_profile, запустив эту однострочную строку из терминала:

echo 'export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile

Эта команда берет все, что заключено в одинарные кавычки ( echo), и добавляет его (>>)в файл с именем .bash_profileв корневом (или домашнем) каталоге вашего пользователя (~/).

Чтобы эти изменения вступили в силу, вы можете либо выйти из Терминала и перезапустить его, либо выполнить эту команду:

source ~/.bash_profile

Если вы хотите сделать все это вручную, откройте .bash_profileсвой любимый редактор, затем добавьте в него эту строку:

PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

и сохранить его. Затем выйдите и перезапустите Терминал.

Я согласен; это лучше, чем мой ответ. Я отредактировал свой ответ, чтобы показать это предпочтение.
Это постоянно? Сохранится ли после перезагрузки системы.
В моем PATH /usr/local/binэто раньше, /usr/binи я все еще получаю последнее при выполнении svn. Как это возможно?

ПРИМЕЧАНИЕ . Ответ monfresh ниже лучше моего. Пока мой метод будет работать, не рекомендуется переименовывать или редактировать системные утилиты.

Когда мне нужно было перейти с SVN 1.6 на 1.7, я установил свою встроенную версию (без использования Homebrew или Macports и т. д.) /usr/local/binи переименовал все старые исполняемые файлы svn в /usr/bin(executablename)-1.6.7.

Так что теперь which svnдает /usr/local/bin/svnи старый /usr/bin/svnесть /usr/bin/svn-1.6.17.

Переименование файлов /usr/binтолько для того, чтобы убрать их с пути, оставляет вас открытыми для обновлений, восстанавливающих их, или для поломки программ, которые от них зависят. Почему бы просто не поставить /usr/local/binпервое место в вашем PATH?