我试图在Ampps的MySQL bin中使用Rails,但是当我运行命令rails generate scaffold User name:string email:string时,会得到以下错误:
dyld: lazy symbol binding failed: Symbol not found: _mysql_server_init
Referenced from: /Users/myusername/.rvm/gems/ruby-2.2.1/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_server_init
Referenced from: /Users/myusername/.rvm/gems/ruby-2.2.1/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle
Expected in: flat namespace我已经用我的环境配置了Ampps Mysql,但是我无法使它与rails一起工作,我有以下的配置。
$ which mysql
/Applications/AMPPS/mysql/bin/mysql
$ echo $PATH
/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/ruby-2.2.1@global/bin:/Users/myusername/.rvm/rubies/ruby-2.2.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/ruby-2.2.1@global/bin:/Users/myusername/.rvm/rubies/ruby-2.2.1/bin:/Applications/AMPPS/php-5.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myusername/.rvm/bin:/Users/myusername/.rvm/bin:/Applications/AMPPS/mysql/bin
$ ls -l /usr/local/lib/libmy*.dylib
lrwxr-xr-x 1 myusername admin 53 Jan 1 19:30 /usr/local/lib/libmysqlclient.18.dylib -> /Applications/AMPPS/mysql/lib/libmysqlclient.18.dylib我试过做命令,但没有成功:
$ gem install mysql2 -- --with-mysql-lib=/Applications/AMPPS/mysql/lib --with-mysql-include=/Applications/AMPPS/mysql/include --with-mysql-config=/Applications/AMPPS/mysql/bin/mysql_config和
bundle config build.mysql2 --with-mysql-lib=/Applications/AMPPS/mysql/lib --with-mysql-include=/Applications/AMPPS/mysql/include --with-mysql-config=/Applications/AMPPS/mysql/bin/mysql_config
bundle install有什么想法吗?
发布于 2016-01-22 18:43:19
我下载了这个AMPPS包并对MySQL二进制文件进行了快速检查:
$ file /Volumes/AMPPS/AMPPS/mysql/bin/mysql
/Volumes/AMPPS/AMPPS/mysql/bin/mysql: Mach-O executable i386您的64位Ruby安装试图链接到32位MySQL库,而不是找到它正在寻找的东西。“符号未被发现”错误通常表示体系结构不匹配。
我对您的建议是从包管理系统(如MacPorts或Homebrew )安装这些程序。我喜欢MacPorts,所以我会给你指示。我的印象是,国产啤酒更受欢迎,但我没有使用它自己。
sudo xcodebuild -licensesudo port selfupdatesudo port install mysql56 rb-rails rb-mysqlsudo port selfupdate && sudo port -uc upgrade outdated这样您就可以正确地为您的系统构建二进制文件,您可以很容易地保持它们的最新情况,并且您也不会用不一定要使用的2G的东西来填充您的系统(5种不同版本的PHP、一对数据库服务器、Perl、Python等等)。此外,您还可以了解其他实用程序(如Ruby )的最新版本,而不是依赖操作系统附带的过时版本。
https://stackoverflow.com/questions/34561795
复制相似问题