2011-01-05 11 views
3

Ich habe eine Version von SVN auf meinem System in/usr/bin/svn. Dies ist zu alt, um mit einigen Repositories verwendet zu werden, daher habe ich eine neuere Version in/home/user/build/bin/svn kompiliert, was gut funktioniert. Ich habe das zu meinem PATH hinzugefügt, so dass es zuerst ausgeführt werden sollte.Die nicht anzeigen Ort der ausführbaren tatsächlich laufen

Typing

which svn 

produziert

/home/user/built/bin/svn 

jedoch eingeben

svn --version 

zeigt, dass es uns immer noch die alte Version. Wenn ich rufe

/home/user/built/bin/svn --version 

dann wird die richtige Version angezeigt.

Da die benutzerdefinierte Version ist zuerst in meinem $ PATH, und welche listet es zuerst, warum die ältere Version aufgerufen wird, wenn ich Svn ausführen? Ich dachte, die Ihre $ PATH verwendet, um ausführbare Dateien auf die gleiche Weise wie die Shell zu finden?

[Bearbeiten] Art gibt:

type svn 
svn is hashed (/usr/bin/svn) 

Mit

hash -r 

jetzt das Problem behoben hat! Danke für die Hilfe. :)

+0

whereis svn svn:/usr/bin/svn/usr/bin/X11/svn /usr/share/man/man1/svn.1.gz Were is nicht die benutzerdefinierte Version auf dem PATH aufgeführt. – Nick

Antwort

3

Verwenden

type svn 

herauszufinden (a), was es ist, (b), wo sie ist, oder, was ihre Definition ist. Überprüfen Sie auch, dass die PATH wirklich enthält, was Sie denken, es tut

echo $PATH 
+0

Danke, das hat es behoben. Ich war vorher noch nicht auf Haschisch gestoßen. Eines dieser Dinge, die Sie normalerweise für selbstverständlich halten und dann beißt Sie, wenn Sie nicht wissen, was unter der Haube vorgeht! :) – Nick

+0

Oh ja Hash. Die nächste böse Sache nach ldconfig und noch scheußlicher. – user562374

0

Sie sicher, dass Sie keine symbolische Verbindung zu Svn irgendwo anders in Ihrem Pfad haben?

+0

Ich denke nicht, Eingabe: welche svn -a gibt nur die zwei Pfade. Würde dort ein symbolischer Link erscheinen? /home/benutzer/gebaut/bin/svn /usr/bin/svn – Nick