2011-11-27 18 views

Odpowiedz

13

Możesz uruchomić which ruby, aby dowiedzieć się, gdzie rubin zostanie wykonany, jeśli wpiszesz w Terminalu ruby.

Jeśli chcesz znaleźć więcej informacji się o wykonywalnego, można uruchomić:

$ ls -l $(which ruby) 
lrwxr-xr-x 1 root wheel 76 Nov 8 12:56 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby 

Oznacza to, że wykonanie which ruby i przekazać wyniki, które w ls -l, który pokaże, że rzeczywiście dowiązanie symboliczne do pliku binarnego w strukturze Ruby. Można również użyć file aby dowiedzieć się, jaki rodzaj pliku to:

$ file $(which ruby) 
/usr/bin/ruby: Mach-O universal binary with 2 architectures 
/usr/bin/ruby (for architecture x86_64): Mach-O 64-bit executable x86_64 
/usr/bin/ruby (for architecture i386): Mach-O executable i386 

Jeśli chcesz się upewnić, że wykonanie rubin, który jest w ścieżce użytkownika ze skryptu, zamiast sztywno gdzie Ruby jest taka, że można użyć następującą dyrektywę interpretera na górze skryptu:

#!/usr/bin/env ruby 

To działa, ponieważ prawie wszystkie nowoczesne systemy mają plik wykonywalny w /usr/bin/env który będzie wykonywał narzędzia, które przechodzą do niej opartej na swojej drodze; więc zamiast kodowania twardego /usr/bin/ruby w swoim skrypcie, możesz pozwolić, aby env przeszukała Twoją ścieżkę.

3

whereis ruby w oknie terminala powie

+3

Ogólnie rzecz biorąc, 'który' jest bardziej niezawodny niż' whereis'. 'który' znajdzie ten, który faktycznie znajduje się na twojej ścieżce, podczas gdy' whereis' będzie wyglądał w pewnych standardowych katalogach; jeśli masz niestandardowe katalogi na swojej ścieżce (jak '/ opt/local/bin' dla MacPorts),' whereis' nie znajdzie tego, czego szukasz. –

2

Powinieneś go znaleźć pod System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
i dowiązane do /usr/bin/ruby.

po uruchomieniu which ruby poda dokładną lokalizację rubinu używanego, jeśli istnieje jedna lub więcej implementacji w systemie.

Powiązane problemy