2013-08-05 31 views
12

Trong khi chạy cài đặt bó tôi nhận được lỗi sau trong đá quý 'pg' tôi đã thay đổi đá quý thành sqlite thì quá sáng cũng gặp lỗi. Đây là thông báo lỗi của tôi.Gem :: Trình cài đặt :: ExtensionBuildError: ERROR: Không thể xây dựng phần mở rộng bản địa đá quý ubuntu

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError) 
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from extconf.rb:2:in `<main>' 


Gem files will remain installed in /var/lib/gems/1.9.1/gems/pg-0.16.0 for inspection. 
Results logged to /var/lib/gems/1.9.1/gems/pg-0.16.0/ext/gem_make.out 

An error occurred while installing pg (0.16.0), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.16.0'` succeeds before bundling. 

tôi đã cố gắng apt-get install libpg-devgem install pg -v '0.16.0' gì giúp tôi

+0

nó phải là một gói dev mất tích, xem [câu hỏi này] (http: //stackoverflow.com/questions/7645918/require-no-such-file-to-load-mkmf-loaderror) hoặc [this this] (http://stackoverflow.com/questions/12731904/rails-installation-failed- on-ubuntu-with-cannot-load-such-file-mkmf) – mdemolin

+0

Bản sao có thể có của http://stackoverflow.com/questions/13767725/u nable-to-install-gem-fail-to-build-gem-native-extension-không thể tải-như vậy – MrYoshiji

+0

có thể trùng lặp của [Gem :: Installer :: ExtensionBuildError: LRI: Không thể xây dựng phần mở rộng gốc đá quý] (http: //stackoverflow.com/questions/15816331/geminstallerextensionbuilderror-error-failed-to-build-gem-native-extension) –

Trả lời

4

Tôi có cùng một vấn đề tôi đã giải quyết nó bằng cách cài đặt nó trong ubuntu với tư cách người dùng bình thường không phải là root user. Tôi hy vọng điều này có thể giúp bạn.

14

Bạn nên có postgresql cài đặt trước khi cài đặt pg đá quý.

sudo add-apt-repository ppa:pitti/postgresql 
sudo apt-get update 
sudo apt-get install postgresql libpq-dev 

Nếu sqlite của bạn không hoạt động, có vẻ như có một số gói bạn có thể đã bỏ lỡ.

sudo apt-get install libreadline-dev libssl-dev zlib1g-dev build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev 
+0

Có, tôi đã cài đặt nó thậm chí sqlite ném cùng một lỗi – overflow

+0

Đối với sqlite, bạn đã cài đặt các phụ thuộc chưa? Tôi sẽ cập nhật các câu trả lời với phụ thuộc –

+0

Tôi không chắc chắn về phụ thuộc sqlite nhưng đối với postgresql tôi cài đặt tất cả mọi thứ và làm việc của nó trong dòng lệnh. Nhưng tôi không thể định vị đá quý. – overflow

2

tôi giải quyết nó bằng follwing các bước sau

  1. gỡ ruby ​​hoàn toàn sử dụng sudo apt-get purge ruby*
  2. Sau đó, trong curl loại bỏ sudo apt-get purge curl

Sau đó, tôi đi theo liên kết này để cài đặt của Ruby RVM và lan can 4.0.0

Install Rails 4.0.0

1

Install

http://postgresapp.com/ 

sau đó

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

sau đó

bundle install 
2

Đôi khi bạn cần phải cập nhật thư viện Ruby của bạn, hãy chạy mã này:

sudo gem update --system 
1

Tôi gặp sự cố với các bản dựng Ruby hơi khác nhau. Ứng dụng hiện có của Gemfile.lock đã được tạo bằng cách sử dụng ruby-1.9.3-p194 và ruby ​​cục bộ của tôi là ruby-1.9.3-p484. Chuyển sang ruby ​​thích hợp được phép cho một gói thành công.

8

Trên Ubuntu 14.04 (và có thể là mọi bản phát hành dựa trên Debian 7 khác), vấn đề này là do sự vắng mặt của gói phát triển Ruby. Vì vậy, sửa chữa chỉ đơn giản là để cài đặt nó:

sudo apt-get install ruby1.9.1-dev 
+1

Nó cũng giải quyết được vấn đề trên debian. Cảm ơn. –

+0

'sudo yum cài đặt ruby-devel' cho CentOS (giải quyết vấn đề của tôi) –

+0

Điều này giải quyết tất cả các vấn đề của tôi, cảm ơn! – Gricher

0

Tôi đã có cùng một vấn đề với CentOS 6.5.

  1. Tạo một người dùng mới
  2. thêm người dùng này để sudoers tập tin/etc/sudoers
  3. Cài đặt ruby-devel sử dụng yum -y install ruby-devel
0

trên Debian, các pg cài đặt đã thất bại trong việc xây dựng quê hương tiện ích mở rộng vì postgres chưa được cài đặt.

Tôi đã cài đặt postgres phụ thuộc với:

$ apt-get install postgresql postgresql-client libpq-dev 

Sau đó pg đá quý được xây dựng phụ thuộc của nó tốt:

$ gem install pg -v '0.18.3' 
Building native extensions. This could take a while... 
Successfully installed pg-0.18.3 
1 gem installed 
Các vấn đề liên quan