零零碎碎搞了一天最后发现是ruby版本问题

时间:2023-03-08 16:12:01

查来查去查不到问题,后来在*看到:

http://*.com/questions/22352838/ruby-gem-install-json-fails-on-mavericks-and-xcode-5-1-unknown-argument-mul/22384591#22384591

Issue already addressed by Ruby:

https://bugs.ruby-lang.org/issues/9624

now we just need to wait for Apple to update their ruby version (2.0.0p247) to the one after the latest one (2.0.0p451) which hasn't come out yet ... (or brew/macport it)
answered Mar 12 at 21:03 Sash

To address the issue you can install the most recent version of ruby as described by @Sash. You can use the following commands to do so. In case you already have installed rvm, you don't need to reinstall it.

#Install rvm
\curl -sSL https://get.rvm.io | bash -s stable #Install ruby version 2.0.0-p451
rvm install ruby-2.0.0-p451 #Print ruby version to verify that it was installed successfully
ruby -v #Install json gem
sudo gem install json
answered Mar 13 at 16:15 Lightforce

才发现可能是ruby版本问题。。

Last login: Sat May 17 08:35:42 on console

Narumis-MacBook-Air:~ narumi$ ruby -v

ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

Narumis-MacBook-Air:~ narumi$ rails -v

Rails 4.0.3

Narumis-MacBook-Air:~ narumi$ mysql -v

-bash: mysql: command not found

Narumis-MacBook-Air:~ narumi$ sudo gem install mysql2

Password:

Fetching: mysql2-0.3.16.gem (100%)

Building native extensions.  This could take a while...

ERROR:  Error installing mysql2:

ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

checking for ruby/thread.h... yes

checking for rb_thread_call_without_gvl() in ruby/thread.h... yes

checking for rb_thread_blocking_region()... yes

checking for rb_wait_for_single_fd()... yes

checking for rb_hash_dup()... yes

checking for rb_intern3()... yes

-----

Using mysql_config at /usr/local/mysql/bin/mysql_config

-----

checking for mysql.h... yes

checking for errmsg.h... yes

checking for mysqld_error.h... yes

-----

Setting rpath to /usr/local/mysql/lib

-----

creating Makefile

make "DESTDIR=" clean

make "DESTDIR="

compiling client.c

compiling infile.c

compiling mysql2_ext.c

compiling result.c

linking shared-object mysql2/mysql2.bundle

clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

make: *** [mysql2.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16 for inspection.

Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/mysql2-0.3.16/gem_make.out

Narumis-MacBook-Air:~ narumi$ bundle exec rails s

Could not locate Gemfile

Narumis-MacBook-Air:~ narumi$ bundle -v

Bundler version 1.6.0.rc

Narumis-MacBook-Air:~ narumi$ sudo bundle install

Could not locate Gemfile

Narumis-MacBook-Air:~ narumi$ sudo gem install mysql2 -v0.3.15

Fetching: mysql2-0.3.15.gem (100%)

Building native extensions.  This could take a while...

ERROR:  Error installing mysql2:

ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

checking for ruby/thread.h... yes

checking for rb_thread_call_without_gvl() in ruby/thread.h... yes

checking for rb_thread_blocking_region()... yes

checking for rb_wait_for_single_fd()... yes

checking for rb_hash_dup()... yes

checking for rb_intern3()... yes

-----

Using mysql_config at /usr/local/mysql/bin/mysql_config

-----

checking for mysql.h... yes

checking for errmsg.h... yes

checking for mysqld_error.h... yes

-----

Setting rpath to /usr/local/mysql/lib

-----

creating Makefile

make "DESTDIR=" clean

make "DESTDIR="

compiling client.c

compiling infile.c

compiling mysql2_ext.c

compiling result.c

linking shared-object mysql2/mysql2.bundle

clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

make: *** [mysql2.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.15 for inspection.

Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/mysql2-0.3.15/gem_make.out

Narumis-MacBook-Air:~ narumi$

[Restored]

Narumis-MacBook-Air:~ narumi$ sudo gem install git

Password:

Fetching: git-1.2.6.gem (100%)

Successfully installed git-1.2.6

Parsing documentation for git-1.2.6

Installing ri documentation for git-1.2.6

1 gem installed

Narumis-MacBook-Air:~ narumi$ sudo gem install rvm

Fetching: rvm-1.11.3.9.gem (100%)

Successfully installed rvm-1.11.3.9

Parsing documentation for rvm-1.11.3.9

Installing ri documentation for rvm-1.11.3.9

1 gem installed

Narumis-MacBook-Air:~ narumi$ sudo gem install homebrew

ERROR:  Could not find a valid gem 'homebrew' (>= 0) in any repository

ERROR:  Possible alternatives: hebrew, homespree, homer, home_run, honeydew

Narumis-MacBook-Air:~ narumi$ sudo rvm install mysql2

sudo: rvm: command not found

Narumis-MacBook-Air:~ narumi$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

==> This script will install:

/usr/local/bin/brew

/usr/local/Library/...

/usr/local/share/man/man1/brew.1

==> The following directories will be made group writable:

/usr/local/.

==> The following directories will have their group set to admin:

/usr/local/.

Press RETURN to continue or any other key to abort

==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/.

Password:

==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/.

==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew

==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew

==> Downloading and installing Homebrew...

remote: Counting objects: 172949, done.

error: RPC failed; result=56, HTTP code = 200

fatal: The remote end hung up unexpectedly

fatal: protocol error: bad pack header

Failed during: git fetch origin master:refs/remotes/origin/master -n

Narumis-MacBook-Air:~ narumi$ sudo ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Password:

Don't run this as root!

Narumis-MacBook-Air:~ narumi$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

It appears Homebrew is already installed. If your intent is to reinstall you

should do the following before running this installer again:

rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

Narumis-MacBook-Air:~ narumi$ rm -rf /usr/local/.git

Narumis-MacBook-Air:~ narumi$ rm -rf /usr/local/brew

Narumis-MacBook-Air:~ narumi$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

==> This script will install:

/usr/local/bin/brew

/usr/local/Library/...

/usr/local/share/man/man1/brew.1

Press RETURN to continue or any other key to abort

==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew

Password:

==> Downloading and installing Homebrew...

remote: Counting objects: 172949, done.

remote: Compressing objects: 100% (48276/48276), done.

remote: Total 172949 (delta 123533), reused 172949 (delta 123533)

Receiving objects: 100% (172949/172949), 33.78 MiB | 2.20 MiB/s, done.

Resolving deltas: 100% (123533/123533), done.

From https://github.com/Homebrew/homebrew

* [new branch]      master     -> origin/master

HEAD is now at 037e06d Move agedu to headonly

==> Installation successful!

==> Next steps

Run `brew doctor` before you install anything

Run `brew help` to get started

Narumis-MacBook-Air:~ narumi$ brew list

Narumis-MacBook-Air:~ narumi$ sudo chown -R $narumi /usr/loacal

Password:

usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...

chown [-fhv] [-R [-H | -L | -P]] :group file ...

Narumis-MacBook-Air:~ narumi$ sudo chown -R narumi /usr/loacal

chown: /usr/loacal: No such file or directory

Narumis-MacBook-Air:~ narumi$ sudo chown -R narumi /usr/local

Narumis-MacBook-Air:~ narumi$ sudo chown -R $narumi /usr/local

usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...

chown [-fhv] [-R [-H | -L | -P]] :group file ...

Narumis-MacBook-Air:~ narumi$ brew doctor

^C

Narumis-MacBook-Air:~ narumi$ brew doctor

Your system is ready to brew.

Narumis-MacBook-Air:~ narumi$ brew install mysql

==> Installing mysql dependency: openssl

==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/openssl-1.0.1g.mavericks.bottle.tar.g

######################################################################## 100.0%

==> Pouring openssl-1.0.1g.mavericks.bottle.tar.gz

==> Caveats

A CA file has been bootstrapped using certificates from the system

keychain. To add additional certificates, place .pem files in

/usr/local/etc/openssl/certs

and run

/usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, so it was not symlinked into /usr/local.

Mac OS X already provides this software and installing another version in

parallel can cause all kinds of trouble.

The OpenSSL provided by OS X is too old for some software.

Generally there are no consequences of this for you. If you build your

own software and it requires this formula, you'll need to add to your

build variables:

LDFLAGS:  -L/usr/local/opt/openssl/lib

CPPFLAGS: -I/usr/local/opt/openssl/include

==> Summary