2011-03-13 9 views
0
sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config 
/usr/local/lib/ruby/1.9.1/optparse.rb:1262: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1278: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1262: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1278: warning: regexp match /.../n against to UTF-8 string 
Building native extensions. This could take a while... 
ERROR: Error installing mysql: 
    ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for mysql_ssl_set()... no 
checking for rb_str_set_len()... no 
checking for rb_thread_start_timer()... no 
checking for mysql.h... yes 
creating Makefile 

make 
gcc -I. -I/usr/local/include/ruby-1.9.1/i386-darwin9.8.0 -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -DHAVE_MYSQL_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/mysql/include/mysql -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fno-common -O2 -g -Wall -Wno-parentheses -pipe -fno-common -o mysql.o -c mysql.c 
In file included from /usr/local/include/ruby-1.9.1/ruby.h:32, 
       from mysql.c:5: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h: In function ‘INT2NUM’: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type 
/usr/local/include/ruby-1.9.1/ruby/ruby.h: In function ‘UINT2NUM’: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:472: warning: comparison is always true due to limited range of data type 
mysql.c: In function ‘escape_string’: 
mysql.c:290: error: lvalue required as left operand of assignment 
mysql.c:290: error: lvalue required as left operand of assignment 
mysql.c: In function ‘real_escape_string’: 
mysql.c:434: error: lvalue required as left operand of assignment 
mysql.c:434: error: lvalue required as left operand of assignment 
make: *** [mysql.o] Error 1 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 
ERROR: Could not find a valid gem '—' (>= 0) in any repository 
ERROR: Could not find a valid gem '–with-mysql-config=/usr/local/mysql/bin/mysql_config' (>= 0) in any repository 

아래 제안 사항을 수행 한 후에도 오류가 발생합니다.Mac에 mysql을 설치할 수 없습니다.

sudo gem install mysql --with-mysql-config =/usr/local/mysql/bin/mysql_config /usr/local/lib/ruby/1.9.1/optparse.rb:1262 경고 : UTF-8 문자열에 대해 regexp match /.../n을 입력하십시오. /usr/local/lib/ruby/1.9.1/optparse.rb:1278 : 경고 : UTF-8 문자열에 대한 regexp match /.../n /usr/local/lib/ruby/1.9.1/optparse.rb:1262 : 경고 : UTF-8 문자열과의 정규식 일치 /.../n /usr/local/lib/ruby/1.9.1/ optparse.rb : 1278 : 경고 : UTF-8 문자열에 대해 regexp match /.../n이 적용됩니다. 네이티브 확장 기능. 이것은 다소 시간이 걸릴 수 있습니다 ... 오류 : MySQL 설치 오류 : 오류 : gem 네이티브 확장을 빌드하지 못했습니다. mysql_ssl_set()를 확인

/usr/local/bin/ruby extconf.rb 

... 예 ) (rb_str_set_len 확인 ... 아니 ) (rb_thread_start_timer 확인 ... 아니 mysql.h 확인 ... 예 메이크

만들기

make gcc -I. -/usr/local/include/ruby-1.9.1/i386-darwin9.8.0 -I/usr/local/include/ruby-1.9.1/ruby ​​/ backward -I/usr/local/include/ruby-1.9 .1 -I. -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/지방/mysql을/-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -g -Os -arch x86_64에 -fno-일반적인 -fno-일반적인 -O2 -g -Wall 포함 - 괄호 안의 -pipe -fno-common -o mysql.o -c mysql.c /usr/local/include/ruby-1.9.1/ruby.h:32의 파일에서, mysql.c의 : 5 : /usr/local/include/ruby-1.9.1/ruby/ruby.h : 'INT2NUM'함수에서 : /usr/local/include/ruby-1.9.1/ruby/ruby.h:464 : 경고 : 제한된 범위의 데이터 유형으로 인해 비교가 항상 true입니다. /usr/local/include/ruby-1.9.1/ruby/ruby.h:464 : 경고 : 한정된 범위의 데이터 유형 때문에 비교가 항상 true입니다. /usr /local/include/ruby-1.9.1/ruby/ruby.h : 'UINT2NUM'함수에서 : /usr/local/include/ruby-1.9.1/ruby/ruby.h:472 : 경고 : 제한된 범위의 데이터 유형 때문에 비교가 항상 true입니다. mysql.c : 함수 'escape_string'에서 : mysql.c : 290 : error : lvalue가 할당의 왼쪽 피연산자로 필요합니다. mysql.c : 290 : 오류 : 할당의 왼쪽 피연산자로 왼쪽 값이 필요합니다. mysql.c : 함수 'real_escape_string'에서 : mysql.c : 434 : 오류 : lvalue 필수 434 : 오류 : 할당 mysql.c의 왼쪽 피연산자로 할당의 왼쪽 피연산자로 필요한 좌변 메이크업 : * [mysql.o] 오류 1

보석 파일은/usr/local/lib에 설치된 상태로 유지됩니다 /ruby/gems/1.9.1/gems/mysql-2.8.1 검사를 위해. 결과는 /usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make에 기록됩니다.out 오류 : 모든 저장소에서 유효한 보석 '-'(> = 0)을 찾을 수 없습니다. 오류 : 유효한 보석을 찾을 수 없습니다 '--with-mysql-config =/usr/local/mysql/bin/mysql_config '(> = 0) 모든 저장소에

+0

사실, Ruby 1.9.x에서는 인코딩을 올바르게 지원하지 않으므로 mysql gem을 사용하지 마십시오. 대신에 mysql2 gem을 사용하십시오. –

답변

1

sudo gem install mysql —- –-with-mysql-config=/usr/local/mysql/bin/mysql_config 

하지

sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config 

수 (보석 이름 사이에 두 개의 하이픈 및 옵션을 구축하고, 두 개의 하이픈 빌드 옵션을 접두어)해야

또한 ARCHFLAGS 변수를 설정해야 할 수도 있습니다. here을 참조하십시오.

6

mysql 젬에 링크 된 네이티브 코드가 포함되어 있으므로 mysql dev 라이브러리가 설치되어 있어야합니다. Mac에서 가장 쉬운 방법은 BREW를 사용하는 것입니다. 사용 했었지만 완벽하게 작동했지만 좋은 Mac 패키지 관리자는 작업 할 수 있습니다 (또는 소스에서 mysql을 설치할 수도 있습니다).

브루 설치 :이 설치되어 http://mxcl.github.com/homebrew/ 후 바로 입력 :

brew install mysql 

모든 양조 레서피는 기본적으로 dev에 라이브러리를 설치합니다.

+0

BREW는 훌륭하지만, @jgervin이 이미 그것을 사용하지 않는다면, mysql을 설치하는 데 많은 혼란을 겪을 수 있습니다. mysql 사이트의 바이너리 패키지는 정상적으로 작동한다. 출처에서 컴파일하거나 새로운 패키지 관리 시스템을 사용할 필요가 없습니다. – idlefingers

+0

그래, 나는 동의한다. 중요한 점은 일반 라이브러리 외에 dev 라이브러리를 설치하는 것이다. 이점은 양조주가 '무료로'한다는 것입니다. –

+0

mysql에서 다운로드 할 수있는 설치 프로그램은 모두 사용자를 위해 작업을 수행합니다. BREW와 마찬가지로 설치가 쉽습니다. 글쎄, 자작농이 이미 설치되어 있지 않다면. – idlefingers

관련 문제