2012-09-11 19 views
14

Uaktualniłem rvm do wersji 1.15.8, a następnie powróciłem do wersji 1.15.7 po problemach z zsh. Po degradacji moje wersje Ruby 1.9+ powróciły bez problemu, ale 1.8.7 nie będzie można ponownie zainstalować.rvm nie może już zainstalować 1.8.7-p352 na Mac OS X Mountain Lion

Istnieją dwa błędy, które wystąpiły:

Error running 'patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch"', please read /Users/me/.rvm/log/ruby-1.8.7-p352/patch.apply.stdout-rouge-fix.log 

Zawartość tego pliku jest:

[2012-09-11 01:05:59] patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch" 
patching file lib/mkmf.rb 
Hunk #1 FAILED at 201. 
1 out of 1 hunk FAILED -- saving rejects to file lib/mkmf.rb.rej 

oraz:

Error running 'make ', please read /Users/me/.rvm/log/ruby-1.8.7-p352/make.log 

Nastąpił błąd podczas uruchamiania zrobić . Zatrzymanie instalacji.

i zawartość tego pliku to (tylko kilka pierwszych linie zaczynające się od błędów):

Fail to find [tclConfig.sh, tkConfig.sh] 
Use MacOS X Frameworks. 

Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk. 
gcc-4.2 -I. -I../.. -I../../. -I../.././ext/tk -DHAVE_RB_SAFE_LEVEL -DHAVE_RB_HASH_LOOKUP -DHAVE_RB_PROC_NEW -DHAVE_RB_OBJ_TAINT -DHAVE_ST_PTR -DHAVE_ST_LEN -DRUBY_VERSION=\"1.8.7\" -DRUBY_RELEASE_DATE=\"2011-06-30\" -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -DWITH_TCL_ENABLE_THREAD=0 -fno-common -g -O2 -fno-common -pipe -fno-common -c stubs.c 
In file included from stubs.c:10: 
/usr/include/tk.h:78:23: error: X11/Xlib.h: No such file or directory 
In file included from stubs.c:10: 
/usr/include/tk.h:549: error: expected declaration specifiers or ‘...’ before ‘Window’ 
/usr/include/tk.h:549: error: ‘Window’ declared as function returning a function 
/usr/include/tk.h:552: error: expected declaration specifiers or ‘...’ before ‘XEvent’ 
/usr/include/tk.h:561: error: expected specifier-qualifier-list before ‘Tk_ClassCreateProc’ 
/usr/include/tk.h:655: error: expected specifier-qualifier-list before ‘Bool’ 
/usr/include/tk.h:677: error: expected specifier-qualifier-list before ‘Bool’ 
/usr/include/tk.h:756: error: expected specifier-qualifier-list before ‘Display’ 
/usr/include/tk.h:902: error: expected declaration specifiers or ‘...’ before ‘XPoint’ 
/usr/include/tk.h:996: error: expected declaration specifiers or ‘...’ before ‘Display’ 

jedną z aplikacji obsługujących ja to 1.8.7. Jestem martwy w wodzie. Wygląda na to, że może to być problem z Mountain Lion vs. rvm. Czy ktoś może wskazać mi właściwy kierunek?

UPDATE:

mam nad pierwszym błędem by doing "przeinstalować" zamiast po prostu "Install". Mimo, że 1.8.7-p352 nie znajdował się na liście rubinów podanych przez polecenie "ruby listy rvm".

+0

Powinieneś zamieścić to na http://serverfault.com/ lub http://superuser.com/ – maxdec

+0

@Double I odpowiedzieć na większość pytań RVM - i większość z nich jest tutaj zamieszczona - umieszczenie ich w innym miejscu będzie najbardziej prawdopodobnie dłuższy czas na odpowiedź. – mpapis

Odpowiedz

33

jest problemem w wykrywaniu Tcl/Tk przez Ruby 1.8.7, rozwiązaniem jest, aby ją wyłączyć:

rvm reinstall 1.8.7 --without-tcl --without-tk 

drugim rozwiązaniem, gdy potrzebna jest tcl/tk: https://stackoverflow.com/a/11666019/497756

+0

Co to jest tcl/tk? Skąd mam wiedzieć, czy będę ich potrzebować? Edycja: Czy potrzebuję tylko tcl i tk, gdy chcę zbudować GUI ruby? (http://rubylearning.com/satishtalim/ruby_tk_tutorial.html) – crispy

+0

jeśli nie wiesz, czym one są, to nie potrzebujesz tego, jest to naprawdę stary sposób i jest rzadko używany, ponieważ interfejsy są bardzo brzydkie. – mpapis

+0

Wygląda na to, że bardzo zły pomysł, aby włączyć je domyślnie. – tadman

6

myślę skończyło się na dwóch podobnych pytaniach dotyczących sf. Mój główny problem polegał na tym, że plik tcl.h include na Mountain Lion (location: /usr/include/tcl.h dowiązany symbolicznie) nie mógł rozwiązać wewnętrznego odwołania, które musiał mieć "X11/Xlib.h". Pomyślałem, że zainstalowanie tcl i tk poprzez homebrew naprawiłoby problem, generując ścieżkę do Xlib.h, która mogłaby zostać rozwiązana. Więc wpadłem:

brew install tcl 

oraz:

brew install tk 

oraz:

rvm remove 1.8.7-p352 
rvm install 1.8.7-p352 

i to działało. Ale powyższa odpowiedź Michaela zadziałałaby tak dobrze, jak sądzę. Ta odpowiedź posłuży do pomocy ludziom w budowaniu, które wymagają tcl i tk.

+0

Homebrew nie wydaje się już mieć tcl i tk. –

+0

'napar zainstalować homebrew/dupes/tcl-tk' powinien działać, myślę. –

Powiązane problemy