cài đặt đá quý: Không thể xây dựng tiện ích mở rộng gốc đá quý (không thể tìm thấy tệp tiêu đề)


356

Tôi đang sử dụng Fedora 14 và tôi đã cài đặt và chạy máy chủ MySQL và MySQL 5.1.42. Bây giờ tôi đã cố gắng làm điều này như người dùng root:

gem install mysql

Nhưng tôi nhận được lỗi này:

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

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Có chuyện gì ở đây vậy? Trong cài đặt ruby ​​1.8.7. và rubygems mới nhất 1.3.7.


Chỉ cần đoán nhanh: bạn có tiêu đề dev cho MySQL không
DrColossos

Làm thế nào tôi có thể có được các tiêu đề dev?
Tim

1
Tôi đã làm điều đó trong Ubuntu khi thực hiện như sau: apt-get install ruby-dev rubygems gem install mysql - with-mysql-config = / usr / bin / mysql_config Tất cả đều hoạt động tốt.
Ivan Carrasco Quiroz

Câu trả lời:


757

Đối với những người có thể bị nhầm lẫn bởi câu trả lời được chấp nhận, như tôi đã từng, bạn cũng cần cài đặt các tiêu đề ruby [ ruby-devel ].

Bài viết đã lưu ẩn của tôi là ở đây .

Và đây là giải pháp sửa đổi (lưu ý rằng tôi đang ở Fedora 13):

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Đối với Debian và các bản phân phối khác sử dụng bao bì kiểu Debian, các tiêu đề phát triển ruby ​​được cài đặt bởi:

sudo apt-get install ruby-dev

Đối với Ubuntu, các tiêu đề phát triển ruby ​​được cài đặt bởi:

sudo apt-get install ruby-all-dev

Nếu bạn đang sử dụng phiên bản ruby ​​trước đó (chẳng hạn như 2.2), thì bạn sẽ cần phải chạy:

sudo apt-get install ruby2.2-dev

(trong đó 2.2 là phiên bản Ruby mong muốn của bạn)


@NoBugs Cảm ơn thông tin bổ sung :)
Brian Lacy

1
điều này hoạt động khi tôi gặp vấn đề khi cố gắng tạo một ứng dụng bằng ruby ​​trên đường ray. nó phàn nàn về cách nó không thể cài đặt json và bundler không thể tiếp tục. cài đặt ruby-devel làm việc.
Jack

2
Ngoài ruby-dev được đăng bởi @NoBugs ở trên, tôi cũng cần libmysqlellect-dev trên Ubuntu (12.04). (Hoặc, chỉ cần xem câu trả lời Debian / Ubuntu của Damian Nowak bên dưới.)
Jon Garvin

1
Làm việc cho tôi trên RHEL6 khi tôi gặp sự cố khi cài đặt jekyll.
David Mason

Điều này giúp tôi cài đặt fpm, có thể giúp cài đặt bất kỳ phần mềm dựa trên ruby ​​nào. Tôi đã sử dụng yum -y install gcc ruby-devel rubygems.
Zoltán

91

Mũ đỏ, Fedora:

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Debian, Ubuntu:

apt-get install libmysqlclient-dev ruby-dev
gem install mysql

Arch Linux:

pacman -S libmariadbclient
gem install mysql

Là nó thế này? mysql-devel.i686: Các tệp để phát triển ứng dụng MySQL
Tim

1
Để chắc chắn mys mys-devel là cần thiết. Câu hỏi là những gì cần thiết bên cạnh. Có thể thử điều này: fedora-tunisia.org/?q=node/44 Hãy cho tôi biết nếu nó hoạt động.
Nowaker

Tôi vừa gặp vấn đề này ở đây: stackoverflow.com/questions/6297751/ Giải pháp tốt!
Kevin Brown

Những gì bạn nói là bắt buộc, nhưng đó là ruby-devel cần thiết để sửa thông báo lỗi trong câu hỏi.
Edward Anderson

BTW trên hệ thống RedHat là ruby-devel.
texasbruce

50

Đối với bất kỳ ai đọc điều này vào năm 2015: nếu bạn tình cờ cài đặt gói ruby2.0, bạn cần cài đặt kết hợp ruby2.0-devđể có được các tiêu đề Ruby phù hợp. Cũng vậy với ruby2.1ruby2.2, vv Ví dụ:

$ sudo apt-get install ruby2.2-dev

Trên fedora 22:sudo dnf install ruby-devel
Geoffrey De Smet

Cảm ơn bạn! ruby đôi khi thật kỳ lạ
nelsonenzo

Tương tự với ruby ​​2.3.
Charles Roper

24

có vẻ như

yum install ruby-devel

là đủ để tôi thực hiện

gem install datamapper

sau đó

Có thể bạn sẽ cần cài đặt các gói khác:

yum install gcc gcc-c++

để có thể xây dựng các tiện ích mở rộng riêng


1
Tôi đã nhận được một lỗi rất nghiêm trọng, không có một thông báo rõ ràng, và đó là vì các gói gcc không được cài đặt. :( Bài đăng này khiến tôi nhớ về bước cơ bản này .; P
BrunoJCM

9

Người dùng MAC có thể phải đối mặt với vấn đề này khi các công cụ xcode không được cài đặt đúng cách. Dưới đây là lệnh để thoát khỏi vấn đề.

xcode-select --install

Vâng, đó là vấn đề. Cảm ơn rất nhiều!
Eduard Ghinea

Và sau đó này sudo gem install -n /usr/local/bin cocoapods thumbsup
hyd00

8

Tôi tìm thấy giải pháp ở đây .

# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

8

Bài này đã giúp tôi. Cảm ơn rất nhiều.

Trên Linux (Ubuntu 12.10) tôi cần chạy

sudo apt-get install ruby
sudo apt-get install rubygems
sudo apt-get install ruby-dev

trước khi tôi có thể chạy thành công

sudo gem install jekyll

4

Nếu bạn đã cài đặt gem và ruby ​​và không thể cài đặt đường ray, thì hãy cài đặt ruby ​​dev lib.

sudo apt-get install ruby-dev

Nó làm việc cho tôi. Tôi đã thử các giải pháp khác nhau.


Tôi có Ubuntu 16.04LTS. Tôi nghĩ, tương tự sẽ dành cho phiên bản trước.
Hafiz Shehbaz Ali

2

Mũ đỏ, Fedora:

sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems

2

Đối với những người vẫn đang gặp sự cố, như tôi có (tôi đang sử dụng Ubuntu 16.04), tôi đã phải đặt các lệnh sau để có được một số đá quý như bcrypt, pg và các loại khác được cài đặt. Chúng đều tương tự như những cái ở trên trừ một cái.

sudo apt-get install ruby-dev -y
sudo apt-get install libpq-dev -y
sudo apt-get install libmysqlclient-dev
sudo apt-get install build-essential patch -y

Điều này cho phép tôi cài đặt các loại đá quý như, PG, bcrypt và recaptcha.


1

Giải pháp ban đầu của tôi là để giải quyết các lỗi trên bằng cách cài đặt ruby-devel, patchrubygems.

Vấn đề của tôi hơi khác một chút vì bcrypt 3.1.11 vẫn có vấn đề biên dịch và cài đặt trên Fedora 23. Tôi cần các gói bổ sung. Vì vậy, sau khi đảm bảo tôi đã cài đặt ở trên, tôi vẫn gặp sự cố:

gcc: error: conftest.c: No such file or directory

gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

Từ đây tôi phải làm như sau:

  • Tôi đảm bảo rằng tôi không thiếu bất kỳ công cụ biên dịch C sudo dnf group install "C Development Tools and Libraries"

  • Sau đó, tôi chạy sudo dnf install redhat-rpm-configđể giải quyết vấn đề gcc được liệt kê ở trên.

Bạn có thể tìm thấy một bài viết ở đây trên Fedore Project . Bạn cũng có thể tìm thấy câu trả lời cho các nhu cầu khác là tốt.



1

Bạn cần các gói sau đây:

  • ruby-dev

  • gcc

  • libffi-dev

  • làm

Đây là lệnh cho distian distro:

 sudo apt install gcc ruby-dev rubygems libgmp-dev libgmp3-dev make 




0

Bạn có thể đã nhầm với RVM.

Cố gắng làm:

\curl -sSL https://get.rvm.io | bash -s stable --rails

-1

Chỉ cần thêm đường dẫn đến tệp ruby.h trong PATH của tôi
chẳng hạn:

xuất PATH = $ PATH: / usr / src / ruby-xxxxxx

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.