我正在使用Linux机器。 我成功地安装了ruby,并用sqlite数据库创build了一个简单的应用程序。 这也很好。 现在我尝试使用mysql创build应用程序,当我安装mysql gem时,它显示以下错误。
[bathakarai@Project1-CO Rails]$ gem install mysql /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/bin/gem:4: warning: Insecure world writable dir /home/bathakarai in PATH, mode 040777 Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb extconf.rb:12: warning: Insecure world writable dir /home/bathakarai in PATH, mode 040777 checking for mysql_ssl_set()... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-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=/home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/bin/ruby --with-mysql-config --without-mysql-config /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:440:in `try_link' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:552:in `try_func' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:797:in `block in have_func' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for' from /home/bathakarai/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:796:in `have_func' from extconf.rb:45:in `<main>' Gem files will remain installed in /home/bathakarai/.rvm/gems/ruby-1.9.2-p320/gems/mysql-2.9.1 for inspection. Results logged to /home/bathakarai/.rvm/gems/ruby-1.9.2-p320/gems/mysql-2.9.1/ext/mysql_api/gem_make.out
请帮我解决问题的地方
这是因为本地的某些开发依赖不可用。
安装以下内容
sudo apt-get install mysql-dev
然后安装MySQL的宝石
gem install mysql
试试这个 希望它会适合你
首先安装libmysql-ruby
sudo apt-get install libmysql-ruby
然后安装libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
以上完成后用mysql安装mysql
sudo gem install mysql
安装一些mysql2依赖项
sudo apt-get install libmysql-ruby libmysqlclient-dev
插入你的GemFile
gem 'mysql2', '~> 0.3.18'
然后捆绑安装
bundle install
您的主文件夹只能由您写入,而不能由其他人写入。 宝石抱怨这个问题的原因是你的PATH文件夹在你的(不安全的)home文件夹中,这意味着任何想要通过重命名/移动你的.rvm文件夹来攻击你的人,并用冒名顶替者。
要修复您的主文件夹,请运行chmod go-w /Users/bathakarai
。 如果在路径中有任何其他不安全的文件夹,你应该修改它们。
链接
警告:不安全的可写dir / usr / local / mysql在PATH,模式040777中
解决方案是一个简单的单线程,我忘了每一个该死的时间。
sudo chmod o+w /usr/local/mysql/bin
点击这里获取更多细节
请输入:
gem install mysql2 --no-rdoc --no-ri