2016-10-13 2 views
7

Dies ist eine Frage für mein Verständnis, ich glaube, dass * Nix-Systeme selten Neustart erforderlich. Wenn Sie eine neue "Anwendung" oder sogar Kernel 9/10 installiert haben, ist kein Neustart erforderlich.Werden Unix-Cache-Binärdateien verwendet?

ich vor kurzem eine Zufallskomponente (liquidsoap Abhängigkeit) I von der Quelle erforderlich: camlp4-4.03-1 und bemerkte folgende:

[email protected]:~ $ /usr/local/bin/camlp4 -v 
Camlp4 version 4.03.0 
[email protected]:~ $ camlp4 -v 
Camlp4 version 4.01.0 
[email protected]:~ $ which camlp4 
/usr/local/bin/camlp4 

Ich bin in Bezug auf den Versionskonflikt stapfe? für was scheint die gleiche Datei zu sein? Es gibt keine "camlp4" in dem vorliegenden Verzeichnis :)

HW: Raspberry Pi 3 
OS: Raspbian Jessie (up to date) 


Informationen Gewünscht am:

[email protected]:~ $ find/-name camlp4 
/usr/local/lib/ocaml/site-lib/camlp4 
/usr/local/lib/ocaml/camlp4 
/usr/local/bin/camlp4 
/usr/lib/ocaml/camlp4 
/usr/share/doc/camlp4 
/usr/bin/camlp4 
/home/pi/apps/camlp4 
/home/pi/apps/camlp4/camlp4-4.03-1/_build/camlp4 
/home/pi/apps/camlp4/camlp4-4.03-1/camlp4 
/home/pi/apps/ocamlfind/findlib-1.6.2/site-lib-src/camlp4 

[email protected]:~ $ type -a camlp4 
camlp4 is /usr/local/bin/camlp4 
camlp4 is /usr/bin/camlp4 

[email protected]:~ $ which camlp4 
/usr/local/bin/camlp4 
[email protected]:~ $ /usr/bin/camlp4 -v 
Camlp4 version 4.01.0 
[email protected]:~ $ echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 

Testlösung zur Verfügung gestellt:

[email protected]:~ $ /usr/local/bin/camlp4 -v 
Camlp4 version 4.03.0 
[email protected]:~ $ camlp4 -v 
Camlp4 version 4.01.0 
[email protected]:~ $ which camlp4 
/usr/local/bin/camlp4 
[email protected]:~ $ hash -r 
[email protected]:~ $ camlp4 -v 
Camlp4 version 4.03.0 
+0

Machen Sie einen 'find/-name camlp4' und prüfen Sie, ob es noch etwas gibt, was Sie ärgern könnte. – apokryfos

+0

Zeigen Sie Ihren '$ PATH' und Ausgabe von' type -a camlp4'. –

+0

@ArkadiuszDrabczyk und apokryfs ... Zusätzliche Informationen hinzugefügt. – QuickPrototype

Antwort

5

meisten Schalen in der Tat Pflegen Sie einen Cache der zu startenden Binärdatei für ein gi ven Befehl, um zu vermeiden, die PATH jedes Mal zu suchen, und which weiß nicht über diesen Cache, die die Diskrepanz, die Sie beobachten, zu erklären. Die Art, den Cache zu aktualisieren, unterscheidet sich von einer Shell zu einer anderen. Für bash oder dash sollten Sie hash camlp4 tun. Für zsh ist dies rehash.

+5

Der POSIX-kompatible Weg, den Hash zu löschen, ist ['hash -r'] (http://pubs.opengroup.org/onlinepubs/009696799/utilities/hash.html). Es sollte in allen mehr oder weniger POSIX-kompatiblen Shells funktionieren, einschließlich zsh. – kojiro