gem 설치 : gem 기본 확장을 빌드하지 못했습니다 (헤더 파일을 찾을 수 없음)


356

Fedora 14를 사용하고 있으며 MySQL 및 MySQL 서버 5.1.42가 설치되어 실행 중입니다. 이제 루트 사용자 로이 작업을 시도했습니다.

gem install mysql

하지만이 오류가 발생합니다.

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

무슨 일이야? 설치된 루비 1.8.7. 최신 루비 젬 1.3.7.


간단히 추측 해보십시오. MySQL 용 개발 파일 헤더가 있습니까
DrColossos

이 dev 파일 헤더를 어떻게 구할 수 있습니까?
Tim

1
우분투에서 다음을 수행했습니다. apt-get install ruby-dev rubygems gem install mysql-with-mysql-config = / usr / bin / mysql_config 모두 정상적으로 작동합니다.
Ivan Carrasco Quiroz 16:29에

답변:


757

받아 들여진 대답으로 혼란 스러울 수있는 사람들을 위해, 루비 헤더도 설치해야합니다 [ ruby-devel ].

숨기기를 저장 한 기사는 여기에 있습니다 .

그리고 이것은 개정 된 솔루션입니다 (나는 Fedora 13을 사용하고 있습니다).

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

데비안 스타일 패키징을 사용하는 데비안 및 기타 배포판의 경우 루비 개발 헤더는 다음을 통해 설치됩니다.

sudo apt-get install ruby-dev

우분투의 경우 루비 개발 헤더는 다음에 의해 설치됩니다.

sudo apt-get install ruby-all-dev

이전 버전의 루비 (예 : 2.2)를 사용하는 경우 다음을 실행해야합니다.

sudo apt-get install ruby2.2-dev

(여기서 2.2는 원하는 루비 버전입니다)


@NoBugs 추가 정보에 감사드립니다 :)
Brian Lacy

1
루비 온 레일을 사용하여 앱을 만들 때 문제가 발생했을 때 작동했습니다. json을 설치할 수없는 방법에 대해 불평했고 번 들러를 계속할 수 없습니다. ruby-devel 설치가 효과가있었습니다.
Jack

2
위의 @NoBugs에 의해 게시 된 ruby-dev 외에도 Ubuntu (12.04)에 libmysqlcient-dev가 필요했습니다. (또는 아래 데미안 노박의 데비안 / 우분투 답변을 참조하십시오.)
Jon Garvin

1
jekyll을 설치하는 데 문제가있을 때 RHEL6에서 나를 위해 일했습니다.
David Mason

이것은 fpm을 설치하는 데 도움이되었으며 아마도 루비 기반 소프트웨어를 설치하는 데 도움이 될 것입니다. 나는 사용했다 yum -y install gcc ruby-devel rubygems.
Zoltán

91

Red Hat, Fedora :

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

데비안, 우분투 :

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

아치 리눅스 :

pacman -S libmariadbclient
gem install mysql

이거예요? mysql-devel.i686 : MySQL 애플리케이션 개발을위한 파일
Tim

1
확실히 mysql-devel이 필요합니다. 문제는 무엇 외에 필요한 것입니다. 아마도 이것을 시도하십시오 : fedora-tunisia.org/?q=node/44 그것이 작동하는지 알려주세요.
Nowaker

방금 여기 에이 문제가있었습니다 : stackoverflow.com/questions/6297751/… 좋은 해결책!
케빈 브라운

당신이 말하는 것은 필요하지만 문제의 오류 메시지를 수정하는 데 필요한 루비 디벨입니다.
Edward Anderson

RedHat 시스템의 BTW는 ruby-devel입니다.
texasbruce

50

2015 년에 이것을 읽는 사람이라면 패키지 ruby2.0를 설치 한 ruby2.0-dev경우 적절한 Ruby 헤더를 얻으려면 일치하는 것을 설치해야합니다 . ruby2.1ruby2.2등도 동일합니다 . 예를 들면 다음과 같습니다.

$ sudo apt-get install ruby2.2-dev

페도라 22 :sudo dnf install ruby-devel
Geoffrey De Smet

감사합니다! 루비는 때때로 너무 이상합니다.
nelsonenzo

루비 2.3도 마찬가지입니다.
Charles Roper

24

그것은 것 같다

yum install ruby-devel

내가 수행하기에 충분했다

gem install datamapper

나중에.

다른 패키지를 설치해야 할 수도 있습니다.

yum install gcc gcc-c++

기본 확장을 구축 할 수 있도록


1
명확한 메시지없이 매우 오류가 발생했으며 gcc 패키지가 설치되지 않았기 때문입니다. :(이 포스트는이 기본 단계를 기억하게 만들었습니다.; P
BrunoJCM

9

xcode 도구가 제대로 설치되지 않으면 MAC 사용자가이 문제에 직면 할 수 있습니다. 다음은 문제를 해결하기위한 명령입니다.

xcode-select --install

그래, 그게 문제 야 고마워요!
에두아르 기니

그리고이 sudo gem install -n /usr/local/bin cocoapods 엄지 손가락
hyd00

8

여기 에서 해결책을 찾았습니다 .

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

8

이 게시물이 도움이되었습니다. 고마워

Linux (Ubuntu 12.10)에서 나는 실행해야했다.

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

내가 성공적으로 달리기 전에

sudo gem install jekyll

4

gem과 ruby가 설치되어 있고 레일을 설치할 수 없다면 ruby ​​dev lib를 설치하십시오.

sudo apt-get install ruby-dev

그것은 나를 위해 작동합니다. 나는 다른 해결책을 시도했다.


우분투 16.04LTS가 있습니다. 다른 이전 버전에서도 마찬가지입니다.
Hafiz Shehbaz Ali

2

Red Hat, Fedora :

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

2

내가 가지고있는 것처럼 (Ubuntu 16.04를 사용하고 있음) 여전히 bcrypt, pg 및 기타와 같은 보석을 설치하려면 다음 명령을 입력해야했습니다. 그것들을 제외하고는 위의 것들과 모두 비슷합니다.

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

이를 통해 PG, bcrypt 및 recaptcha와 같은 gem을 설치할 수있었습니다.


1

내 초기 솔루션을 설치하여 위의 오류를 해결하는 것이 었습니다 ruby-devel, patch그리고rubygems .

bcrypt 3.1.11이 여전히 Fedora 23에서 컴파일 및 설치하는 데 문제가 있었기 때문에 제 문제는 조금 다릅니다 . 추가 패키지가 필요했습니다. 따라서 위의 설치를 확인한 후에도 여전히 문제가 있습니다.

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

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

여기에서 다음을 수행해야했습니다.

  • 나는 C 컴파일러 도구가 부족하지 않다는 것을 확신했다. sudo dnf group install "C Development Tools and Libraries"

  • 그런 다음 sudo dnf install redhat-rpm-config위에 나열된 gcc 문제를 해결하기 위해 실행 했습니다.

Fedore Project 에 대한 글을 찾을 수 있습니다 . 다른 요구 사항에 대한 답변도 찾을 수 있습니다.



1

다음 패키지가 설치되어 있어야합니다.

  • 루비 데브

  • gcc

  • libffi-dev

  • 하다

데비안 배포판 명령은 다음과 같습니다.

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


0

redhat-rpm-config를 설치해야합니다. 나는 그것이 당신의 문제를 해결한다고 생각합니다!



0

RVM에 문제가있을 수 있습니다.

시도하십시오 :

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

-1

내 경로에 ruby.h 파일의 경로를 추가하려면 다음과 같이하십시오
.

내보내기 PATH = $ PATH : / usr / src / ruby-xxxxxx

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.