[英]Can't install mysql gem on Percona-XtraDB-Cluster
我沒有看到有關此問題的主題,但是沒有一個解決了我的問題。
所以。 平台是CentOS 6.6。 我已經安裝了Percona-XtraDB-Cluster,他們的mysql-libs和他們的devel軟件包。 我也在那里有紅寶石2.0.0和紅寶石2.4.3。 現在,我正在嘗試安裝mysql gem。 我得到的是:
構建本機擴展。 這可能需要一段時間...錯誤:安裝mysql時出錯:錯誤:無法生成gem本機擴展。
/ opt / sensu / embedded / bin / ruby -r ./siteconf20141114-16854-1fyrg9v.rb extconf.rb檢查mysql_ssl_set()... * extconf.rb失敗*由於某些原因而無法創建Makefile,可能是缺少必要的庫和/或標頭。 檢查mkmf.log文件以獲取更多詳細信息。 您可能需要配置選項。
提供的配置選項:--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 = / opt / sensu / embedded / bin / ruby --with-mysql-config --without-mysql-config /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb: 434:在
try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:519:in
try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:519:in
try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:519:in
try_link0'從/opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:534:在try_link' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:720:in
從/opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:1004:in try_func”block in have_func' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:895:in
中:在block (2 levels) in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in
:在block (2 levels) in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in
打開的塊中/mkmf.rb:340block in postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:310:in
打開狀態,在/opt/sensu/embedded/lib/ruby/2.0中.0 / mkmf.rb:336:postpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:894:in
inpostpone' from /opt/sensu/embedded/lib/ruby/2.0.0/mkmf.rb:894:in
/opt/sensu/embedded/lib/ruby/2.0 .0 / mkmf.rb:1003:inhave_func' from extconf.rb:45:in
'extconf失敗,退出代碼1
寶石文件將保留安裝在/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/mysql-2.9.1中以進行檢查。 結果記錄到/opt/sensu/embedded/lib/ruby/gems/2.0.0/extensions/x86_64-linux/2.0.0/mysql-2.9.1/gem_make.out
我在網上發現的任何描述的解決方案都無濟於事,因此,也許有人對此Percona群集,ruby-2.0.0和gem mysql-2.9.1有類似的問題。
看起來您需要帶SSL的Ruby gem MySQL開發庫:
嘗試以下每種方法:
yum install gcc
yum install mysql mysql-devel mysql-server
yum install openssl openssl-devel
yum install ruby-devel
然后嘗試安裝較新的mysql2
gem:
gem install mysql2 --version '>=0.3.17'
Sensu期望使用SSL,因此擁有SSL是一件好事。 Sensu文檔說:“可以在不使用SSL的情況下使用Sensu,但是強烈建議不要這樣做。以下說明使用一種工具來生成自簽名的OpenSSL證書”。 在此處閱讀有關如何啟用SSL的信息:
http://sensuapp.org/docs/latest/certificates#documentation
如果需要SSL,則可能要確保數據庫確實啟用了SSL:
> show variables like '%ssl%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | YES |
| have_ssl | YES |
...
您在注釋中寫道,您無法安裝mysql-devel
和mysql-server
因為它們將與percona沖突。 我的猜測是錯誤是較舊的mysql
gem和/或對SSL的需求。
如果您使用的是rvm
,它也可能導致此類故障。 您可能要嘗試ruby-install
並安裝當前的ruby。 這可能會帶來您需要的依賴項。 如果需要,可以在自定義目錄中使用ruby-install
,如下所示:
$ ruby-install ruby 2.1.5 --install-dir ~/foo/bar/
如果您使用sudo gem install
,它也可能導致本機gem出現故障。 您可能想嘗試成為root用戶,並使用實際的root環境和root ruby版本,並再次檢查ruby版本是否符合您的期望,如下所示:
$ sudo su -
# which ruby
# ruby --version
# gem install mysql2 --version '>=0.3.17'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.