programing

레일, MySQL 및 Snow Leopard

goodsources 2022. 10. 11. 22:53
반응형

레일, MySQL 및 Snow Leopard

WWDC에서 구입한 디스크를 사용하여 Snow Leopard로 업그레이드했습니다.

일부 레일 앱을 실행하려고 하면 SQL에 대한 불만이 제기됩니다.

    (in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/

 -- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
  Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

(See full trace by running task with --trace)

전에도 한번 고친 적이 있다고 맹세할 수 있었는데문제는 말이다

sudo gem install mysql

가 동작하지 않고, 다음의 에러가 표시됩니다.

 Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/opt/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no


Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

눈표범 레일 작업을 위해 mysql을 데려온 사람 있나요?그렇다면 어떤 설정이 더 좋습니까?또, 그것을 재현하려면 어떻게 하면 좋을까요?

나도 같은 고통을 겪었을 뿐이야다음과 같은 이점이 있습니다.

  1. mysql.com 에서 64비트 MySQL 5.1.37을 다운로드하여 설치합니다.
  2. 다음 명령을 실행합니다.

sudo gem update --시스템
sudo env ARCHFLAGS="arch x86_64" gem install mysql --with-with-with-usr/local/bin/bin_config

또한 10.5일 동안 떠돌던 모든 mysql 젬을 제거했습니다.상기가 통하지 않을 경우 제거될 수 있습니다:)

64비트로 mysql을 재구축하거나 64비트 버전을 설치하는 것도 중요하지만 64비트로 mysql gem의 네이티브 부분을 구축해야 합니다(이는 인텔 Core Duo의 오리지널 Mac 중 하나에서는 적용되지 않습니다).

마법 명령어는 다음과 같습니다.

env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Snow Leopard에 원어민 컴포넌트를 사용하여 Gem 설치를 할 때는 위와 같이 ARCH FLAGS를 설정해야 합니다.

번들러를 사용하는 경우 "bundle config"를 사용하여 다음과 같이 mysql의 적절한 빌드 인수를 설정할 수 있습니다.

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

오랫동안 싸워서 스노우 레퍼드를 만들었죠.Ruby, RubyGems, MySQL을 소스에서 설치하게 되었습니다(Ruby 및 RubyGems 설치는 Hivelogic 튜토리얼 참조).MySQL 튜토리얼은 하단에 링크되어 있습니다).드디어 보석을 설치했는데, 아직도 설치 중이었어.

dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

Trace/BPT trap

했습니다.mysql.bundle(도대체 무슨 용건인지 모르겠다) 다 먹혔어요.

sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle

그게 도움이 됐으면 좋겠어요.

나는 이 문제를 여러 번 봐 왔다.거의 매번 기계 위에 mysql을 만듭니다.gem install 명령어의 일부로 mysqlconfig를 전달해야 합니다.

sudo gem install mysql -- --with-mysql-config=/your/mysql/config

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-mysql-config

이 보석을 빌드하려면 mysql dev 파일이 필요합니다.

스노우 레퍼드를 설치한 후 설정을 실행하는 데 문제가 있었습니다.http://www.mamp.info에서 MAMP를 찾았는데 Apache, PHP, MySQL이 번들되어 있습니다.어플리케이션처럼 설치하면 동작합니다.한번 시도해 볼만하고 무료입니다.

메쉬

여기서 제 질문에 답해야 할 것 같아서요.mysql이 아니라 mysql 루비 바인딩에 문제가 있는 것 같습니다.Querius(mysql gui)를 연결했을 때 연결이 가능했기 때문에 알게 되었습니다.

바인딩을 소스에서 수정하는 방법은 다음과 같습니다.

cd /tmp
wget http://www.tmtm.org/en/ruby/mysql/ruby-mysql-0.2.6.tar.gz
tar xvfz ruby-mysql-0.2.6.tar.gz
cd ruby-mysql-0.2.6
./configure
make
sudo make install

스노우 레퍼드에 대한 자료로 만들어야 할 많은 도서관이 있는데 계속 뜬다.MacPorts는 모든 libs에 대해 충분히 업데이트되지 않은 것 같아서 저 혼자 하려고 합니다.다음 : freetype (http://download.savannah.gnu.org/releases-noredirect/freetype/)

저는 이 게시물(http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/),에서 설명한 대로 진행했고, 이제 모든 것이 잘 작동합니다.

mysql 드라이버를 인스톨 하는 커맨드의 오타를 확인하는 것을 잊지 말아 주세요.

저도 같은 문제가 있었고, 여기 제게 효과가 있었던 것이 있습니다.

  1. Snow Leopard와 64비트 MySQL DMG를 설치합니다.

  2. 이전 MySQL 데이터 디렉토리(여기 설명)를 가리키도록 /etc/my.cnf를 만들고 실행합니다.

    sudo mysql_upgrade.

  3. blog.costan.us/2009/07/rebuild-your-ruby-gems-if-you-update-to.html)의 IRB입니다.

    sudo gem install #{line.weach_line {|line|sudo gem install #{line.line. 첫 번 、 번번'' }

  4. 설치한 MySQL 젬을 제거했다.

  5. Gem과 함께 설치:

    sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

이것으로 지금까지 모든 것이 잘 되고 있는 것 같습니다.*노크 우드*

MySQL을 수동으로 설치하는 대신 homebrew를 원하는 경우.

기존 mysql gem을 제거합니다(있는 경우).

 sudo gem uninstall mysql 

'mysql_config' 파일을 찾습니다.

 find /usr -name 'mysql_config' 

mysql gem 재설치:

 sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config 

주의: 교환/usr/local/bin/하는 「」를 해 주세요.mysql_config2단계에서 찾은 경로입니다.블로그에도 있어요.

만, 저는 Ian Selby를 .sudo sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

gemset에 설치하고 있었는데, sudo 키워드를 사용하지 말라고 하는 rvm을 사용하고 있습니다.정말 감사해요.

이렇게 해결했습니다.

  1. mysql 설치 후 dmg 파일
  2. 번들 구성 build.display --with-with-usr/usr/local/bin/syslog_config
  3. env ARCHFLAGS="arch x86_64"
  4. 번들 설치

Rails에서 몇 년 동안 휴식을 취한 후 개발 환경을 구축하는 데 시간을 할애했습니다.그래서 SnowLeopard에 최신 버전의 Rails 3, MySQL 및 RVM을 설치하는 방법에 대한 튜토리얼을 만들어 제 위치에 있는 다른 사용자들도 시간을 절약할 수 있도록 하겠습니다.

2011년 8월 21일 현재 Rails 3.0.10, MySQL 5.5.15 및 RVM 1.7.2를 사용하고 있습니다.향후의 Rails 3.0.x, MySQL 5.5.x 및 RVM 1.7.x 버전에서 동작합니다.

  1. XCode 가 인스톨 되어 있지 않은 경우는, 인스톨 합니다.4.0.2를 사용했습니다.안타깝게도, 이것은 애플에 의해 철회되었지만, 인터넷 상의 다른 곳에서 이용할 수 있을 것입니다.버전 3.2.x는 Apple에서 무료로 다운로드 할 수 있지만, 이 튜토리얼에서는 테스트하지 않았습니다.아마도 동작할 것입니다.

  2. rvm 설치:

    user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
    
    user$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
    
    user$ source .bash_profile
    
  3. Ruby 버전(예: 1.9.2)을 rvm에 설치합니다.기본적인 사용방법은 여기에 있습니다.

    user$ rvm install 1.9.2
    user$ rvm use 1.9.2
    
  4. 2단계에서 설치한 rvm ruby의 보석 세트를 만듭니다(x는 버전 번호입니다).

    user$ rvm gemset create rails30x
    user$ rvm 1.9.2@rails30x
    
  5. Rails 3.0.x 를 인스톨 합니다(x 는 버전 번호입니다).

    user$  gem install rails -v 3.0.x.
    
  6. MySQL 5.5.x 패키지, 시작 항목 및 기본 설정 창을 다운로드하여 설치하십시오.이 3가지 모두 DMG 설치파일에 포함되어 있습니다.MySQL WorkBench도 설치합니다.

    /usr/local/mysql-version-name/support-files(올바른 MySQL 디렉토리 이름 삽입)를 찾아 mysql.server(root 권한 포함)를 편집합니다.줄 46 주위에 다음과 같은 행이 있습니다.

    basedir=
    datadir=
    

    를 read로 변경합니다(올바른 MySQL 디렉토리 이름 삽입).

    basedir=/usr/local/mysql-version-name
    datadir=/usr/local/mysql-version-name/data
    

    파일을 저장합니다.이제 기본 설정 창에서 MySQL을 시작할 수 있습니다.

    레일 3에서 mysql을 사용할 수 있도록 하려면 mysql2 젬을 설치합니다(다음 단계를 참조). 정도', '어느 정도', ' 정도'DYLD_LIBRARY_PATHMySQL my my my my my 。이를 수행하려면 홈 폴더에서 ~/.bash_프로파일을 편집하고 다음을 포함합니다(올바른 MySQL 디렉토리 이름 삽입).

    export DYLD_LIBRARY_PATH=/usr/local/mysql-version-name/lib:$DYLD_LIBRARY_PATH
    

    디렉토리를 DYLD_LIBRARY_PATH에 포함하지 않으면 라이브러리를 찾을 수 없다는 메시지가 나타나고 서버가 중단됩니다.

  7. 보석을 설치합니다.(2011년 5월 현재 버전 0.2.7은 Rails 3.0.x의 최신 버전입니다).

    user$ gem install mysql2 -v 0.2.7 
    
  8. Rails 앱을 생성하면 해당 데이터베이스(appname_development)

    user$ rails new appname
    
  9. Gemfile ]gem 'mysql2', "0.2.7"

  10. 앱 데이터베이스에 추가합니다.yml:

    development: 
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: appname_development
      pool: 5
      username: username
      password: pwd
      host: localhost
    
  11. 앱을 시작하고 "About your application's environment"를 확인합니다.모든 것이 제대로 작동해야 합니다.

ARCH FLAGS를 설정하고 --passing-config=...를 전달하기 위한 설명으로는 Snow Leopard에서 해결할 수 없을 것 같습니다.또, 다음과 같이 덧붙였습니다.

DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

제 배시 프로필에 올렸고, 이것으로 해결됐습니다.

아치플래그 트릭을 조금씩 변형시켜 여러 번 시도했지만 전혀 효과가 없었습니다.

마침내 효과가 있었던 것은 스노우 레퍼드가 설치된 루비와 보석 버전으로 다시 전환하는 것이었다.

저는 이 버전을 제외하고 모든 면에서 제 기능을 발휘하는 저만의 버전을 만들고 설치했습니다.다른 것은 정상적으로 동작하고 있는 것 같기 때문에, mysql 플러그인에 몇 가지 펑키한 전제가 있는 것 같습니다.어쨌든, 내가 한 일은 /usr/bin을 다시 내 경로의 선두로 바꾼 것뿐이다.쉽게 전환할 수 있도록 /usr/local/ruby-1.8.7과 /usr/local/ruby-1.9.1에 루비를 설치했습니다.아치플래그 솔루션이 많은 사람들에게 효과가 있는 것 같아서 말씀드려야 할 것 같습니다만, 전부는 아닙니다.

mysql_config 프로그램의 이름을 $MYSql_HOME/bin에서 다른 이름으로 변경했기 때문에 gem instra에서 설정 스크립트를 찾을 수 없습니다.libs 옵션을 사용했는데도 gem instra는 항상 mysql 설치의 컴파일 설정을 사용하고 있었습니다.이것은 팻 바이너리입니다.그러나 기본 루비 설치는 x86_64뿐이므로 gem 컴파일은 실패합니다.mysql_config 프로그램의 이름을 변경한 후 다음 명령어가 정상적으로 동작하여 gem을 설치합니다.

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql

RVM과 함께 mysql gem을 설치하는 경우 다음 코드를 사용하여 설치해야 합니다.

sudo env ARCHFLAGS="-arch x86_64" gem install mysql

이 방법은 Leopard Server에서 작동했지만, 위의 방법 중 어느 것도 작동하지 않았습니다.

이 기사는 나에게 문제를 해결해 주었다:)

http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html

  • 표범 이전

    sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

    • PPC 머신의 Leopard:

      sudo env ARCHFLAGS="-arch ppc" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

    • 인텔 머신의 Leopard:

      sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

    • Snow Leopard (인텔에서만):

      sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

언급URL : https://stackoverflow.com/questions/991708/rails-mysql-and-snow-leopard

반응형