Deaktivieren von / usr / bin / svn für die Verwendung von brew installiertem svn

Antworten:

14

Es gibt eine bessere und sicherere Methode, um anzugeben, welche Version einer ausführbaren Datei Ihr Computer verwenden soll, ohne die auf Ihrem Mac vorinstallierten ausführbaren Dateien ändern zu müssen. Es wird generell nicht empfohlen, Ihre Standard-Systemwerkzeuge auf irgendeine Weise zu ändern.

Sie können die Vorteile nutzen Umgebungsvariable PATH Damit können Sie mehrere Verzeichnisse auflisten, in denen Ihr Mac suchen soll, wenn Sie nach ausführbaren Dateien suchen.

Um die neueste Version von svn oder ein anderes Tool zu verwenden, in dem Sie installiert haben /usr/local/bin Mit Homebrew (oder MacPorts, manuell usw.) möchten Sie Ihren Mac anweisen, zuerst nachzuschauen /usr/local/bin bevor es in der Standardeinstellung aussieht /usr/bin. Sie tun das, indem Sie das definieren PATH in deiner .bash_profileDies ist eine Datei, die automatisch geladen wird, wenn Sie ein neues Terminalfenster öffnen.

Sie können den PATH in Ihr .bash_profile schreiben, indem Sie diesen Einzeiler vom Terminal aus ausführen:

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

Dieser Befehl übernimmt alles zwischen den Anführungszeichen ( echo ) und fügt es hinzu (>>) in eine Datei namens .bash_profile im Stammverzeichnis (oder im Heimatverzeichnis) des Benutzers (~/).

Damit diese Änderungen wirksam werden, können Sie Terminal beenden und erneut starten oder den folgenden Befehl ausführen:

source ~/.bash_profile

Wenn Sie alles manuell machen möchten, öffnen Sie Ihr .bash_profile Mit Ihrem Lieblingseditor fügen Sie dann diese Zeile hinzu:

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

und speichern Sie es. Beenden Sie das Terminal und starten Sie es erneut.

monfresh
quelle
Genau; das ist besser als meine Antwort. Ich habe meine Antwort bearbeitet, um diese Präferenz zu zeigen.
CajunLuke
Ist das doch hartnäckig? Wird es nach dem Neustart des Systems bleiben?
IgorGanapolsky
In meinem PFAD /usr/local/bin ist vor /usr/bin und ich bekomme das letztere immer noch, wenn ich ausgeführt werde svn. Wie ist das möglich?
Marko Bonaci
5

HINWEIS : monfresh's Antwort ist besser als meine. Meine Methode funktioniert zwar, es wird jedoch nicht empfohlen, die Systemdienstprogramme umzubenennen oder zu bearbeiten.

Als ich ein Upgrade von SVN 1.6 auf 1.7 benötigte, installierte ich meine eingebaute Version (ohne Homebrew oder Macports usw.) /usr/local/bin und benannte alle alten svn-ausführbaren Dateien in um /usr/bin an (ausführbarer Name) -1.6.7.

Also jetzt which svn gibt /usr/local/bin/svn und das alte /usr/bin/svn ist /usr/bin/svn-1.6.17.

CajunLuke
quelle
Dateien umbenennen in /usr/bin Nur um sie aus dem Weg zu räumen, sind Sie offen für Upgrades, die sie wiederherstellen, oder Programme, die von ihnen abhängig sind, können beschädigt werden. Warum nicht einfach setzen? /usr/local/bin zuerst in deinem PATH?
zigg