web-dev-qa-db-fra.com

Erreur Mountain Lion RVM Install 1.8.7 x11

Après la mise à jour vers Mountain Lion, j'ai essayé d'installer la 1.8.7 et j'ai eu une erreur. Fichier X11 introuvable, j'ai installé Xquarkz, mais rien n'a changé. Qu'est-ce qui ne va pas?

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

Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk.
clang -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=\"2012-06-29\"  -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:11: fatal error: 'X11/Xlib.h' file not found
#       include <X11/Xlib.h>
                ^
1 error generated.
make[1]: *** [stubs.o] Error 1
make: *** [all] Error 1
60
user1344853

Essayez d'installer X11 via http://xquartz.macosforge.org/landing/ définissez le chemin d'accès correct à la bibliothèque X11 pour le compilateur avec:

export CPPFLAGS=-I/opt/X11/include

puis essayez de réinstaller Ruby, en passant au compilateur où gcc-4.2 est:

CC=/usr/local/bin/gcc-4.2 rvm reinstall 1.8.7

Sans CC j'ai eu beaucoup de défauts de segmentation.

142
Matteo Alessani

J'ai réussi à faire sans problème sur OSX 10.8.2:

rvm install 1.8.7 --with-gcc=clang --without-tcl --without-tk
18
Laurynas

Si vous n'avez pas besoin de tcl ou tk et utilisez rbenv, cela devrait fonctionner:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/Apple-gcc42.rb

CC=/usr/local/bin/gcc-4.2 CONFIGURE_OPTS="--without-tcl --without-tk" rbenv install 1.8.7-p358
5
Neal

Même après le correctif X11, j'obtenais cette erreur de compilation.

compiling stubs.c
In file included from stubs.c:16:
/usr/include/tk.h:23:3: error: #error Tk 8.5 must be compiled with tcl.h from Tcl 8.5
make[2]: *** [stubs.o] Error 1
make[1]: *** [ext/tk/all] Error 2
make: *** [build-ext] Error 2

Après avoir beaucoup gratté la tête, j'ai remarqué cette ligne dans la sortie make.

Use ActiveTcl libraries (if available).

Il s'avère que ActiveTcl 8.4 avait été installé il y a des années, mais il récupérait tk.h dans/usr/include qui est la version 8.5.

Je ne pouvais pas comprendre comment désinstaller ActiveTcl en toute sécurité et les instructions de désinstallation d'ActiveTcl n'étaient pas correctes , mais j'ai installé ActiveTcl 8.5 et cela a fonctionné autour du problème. Téléchargement ActiveTcl ici.

Frustrant. Quoi qu'il en soit, j'espère que cela aide quelqu'un d'autre.

3
bgebhardt

Voici mon fichier .rvmrc bootstrap pour l'instant, j'espère que cela aide:

if (uname -a | grep '12.0.0 Darwin' >/dev/null); then
    CC=/usr/local/bin/gcc-4.2 CPPFLAGS=-I/opt/X11/include rvm --install --create --disable-tcl --disable-tk use ree@gemset_name
else
    rvm --install --create --disable-tcl --disable-tk use ree@gemset_name
fi

if ! which bundle >/dev/null; then
    gem install bundler --pre --no-ri --no-rdoc && bundle install
fi


if ! bundle check >/dev/null; then
    bundle install
fi
0
Riku Räisänen