web-dev-qa-db-fra.com

Installation de Ruby sur Mac OS X 10.8.2

J'ai parlé de Installation de Ruby on Rails - Mac OS Lion et suivi de la réponse d'Alain Beauvois et j'ai pratiquement tout mis en place. La seule différence est que j'utilise 1.9.3 au lieu de 1.9.2.

J'ai créé .bash_profile et je me suis même assuré que cela existe par open -e .bash_profile et j'ai même ajouté la ligne indiquée par Alain Beauvois.

Mais ce qui semble être le problème maintenant, c'est que je reçois cette erreur:

Error running 'make', please read /usr/local/rvm/log/Ruby-1.9.3-p374/make.log
There has been an error while running make. Halting the installation.

Le journal référencé contient ceci:

[2013-02-02 21:41:52] make
    CC = clang
    LD = ld
    LDSHARED = clang -dynamic -bundle
    CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration  -pipe 
    XCFLAGS = -include Ruby/config.h -include Ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
    CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/rvm/usr/include -I. -I.ext/include/x86_64-darwin12.2.1 -I./include -I.
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace  
    SOLIBS = 
compiling regparse.c
regparse.c:582:15: error: implicit conversion loses integer precision: 'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
    return t->num_entries;
    ~~~~~~ ~~~^~~~~~~~~~~
1 error generated.
make: *** [regparse.o] Error 1

J'ai même essayé 

rvm -install Ruby-1.9.3-p374

mais obtenez toujours la même erreur. J'ai eu quelques erreurs bizarres avant d'arriver à cette partie, mais après que je l'ai relu avec une addition de Sudo devant, cela a fonctionné. À ma connaissance, Sudo = faire quelque chose avec les autorisations/privilèges su, non?

35
Nil

Je viens de trouver ceci . Je pense que c'est ce que vous devez faire.

D'abord, si vous ne l'avez pas déjà fait, téléchargez MacPorts et installez-le. Ensuite, exécutez les deux commandes suivantes:

Sudo port selfupdate
Sudo port install Apple-gcc42

Trop obtenir un vrai UNIX GCC. Ensuite, pour installer 1.9.3, exécutez:

CC=/opt/local/bin/gcc-Apple-4.2 rvm install Ruby-1.9.3-p194 --enable-shared --without-tk --without-tcl

Ce qui indique à rvm d’installer Ruby sous UNIX GCC sans Tk ou Tcl nécessitant X11 (exclu d’OSX 10.8). Si vous voulez des choses comme le support readline, OpenSSL, etc., consultez le Gist lié ci-dessus.

18
Linuxios

J'ai eu exactement la même erreur, mais j'utilise brew au lieu de MacPorts. Tout ce que je devais faire était:

brew update
brew tap homebrew/dupes
brew install Apple-gcc42
rvm get stable
rvm install 1.9.3-p374

Je n'ai pas eu à définir la variable d'environnement CC comme le soulignent certaines instructions. HTH!

31
Preston Lee

Si vous utilisez rbenv et Ruby-build au lieu de rvm, procédez comme suit:

env CC=gcc rbenv install 1.9.3-p392

Si cela ne fonctionne pas, essayez ceci:

# this export must be done before every new Ruby build
export CC=gcc
# use the version you wish to install
rbenv install 1.9.3-p392

Si cela ne fonctionne pas, vous devez d'abord installer gcc:

brew update
brew tap homebrew/dupes
# install Apple-gcc, only once needed
brew install Apple-gcc42

Jusqu'à ce que les gens de Ruby construisent une version Ruby compatible clang, vous devez exporter la variable CC avant chaque compilation d'une nouvelle version de Ruby.

20
Fa11enAngel

Cela a également fonctionné dans rbenv sur OSX 10.8.2 + XCode 4.6

$ export CC=gcc
$ rbenv install 1.9.3-p385 -v

Mais il est également utile de savoir que homebrew peut installer une autre version de gcc si Apple modifie les outils de ligne de commande de Xcode ultérieurement.

3
wlads

Je viens de faire (après l'installation des outils de ligne de commande XCode):

 $ export CC = gcc 
 $ rvm install 1.9.3 

Et bien qu'il soit dit que "Ruby 'Ruby-1.9.3-p374' a été construit en utilisant clang - mais qu'il n'est pas (totalement) pris en charge, attendez-vous aux erreurs." - ça a marché.

1
Roman

Juste pour ajouter une autre réponse à la liste ... J'utilise Ruby-install, et voici ce qui a fonctionné pour moi:

CC=/usr/local/bin/gcc-4.2 Ruby-install Ruby 1.9.3-p0
1
bricker

Cela a fonctionné pour moi aussi sur Ruby-1.9.3-p385 sans homebrew ou Macports installé.

export CC=gcc
rvm install 1.9.3

Le message "Ruby 'Ruby-1.9.3-p385' a été créé à l'aide de clang - mais il n'est pas (totalement) pris en charge, attendez-vous aux erreurs." après avoir terminé la tâche.

1
stonefruit

J'ai essayé Apple-gcc42 et CC=/usr/bin/gcc sans aucune chance, donc je ne suis pas sûr qu'ils soient nécessaires. J'utilise le gestionnaire rbenv et c'est donc ce qui a fonctionné pour moi lorsque j'essaie d'installer 1.9.3-p385

brew install readline
CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" rbenv install 1.9.3-p385

Trouvé sur ce blog

0
cwd

Pour mémoire: fonctionne pour moi avec rbenv, Ruby 1.9.3-p385,gcc48(brew install gcc48) sur Darwin Kernel Version 15.2.0. (Il y avait beaucoup d'avertissements lors de la compilation que j'ai ignorés, Ruby fonctionne bien jusqu'à présent).

Il me suffisait de définir CC=gcc-4.8 avant rbenv install 1.9.3-p385

0
Kashyap