sqlite3-ruby install error di Ubuntu

257

Saya memiliki kesalahan berikut selama menginstal sqlite3-ruby:

Membangun ekstensi asli. Ini bisa memakan waktu cukup lama...
GALAT: Kesalahan menginstal sqlite3-ruby:
    GALAT: Gagal membangun ekstensi asli permata.

/usr/bin/ruby1.8 extconf.rb
memeriksa sqlite3.h ... no
sqlite3.h tidak ada. Coba 'port install sqlite3 + universal' atau 'yum install sqlite3-devel'
*** extconf.rb gagal ***
Tidak dapat membuat Makefile karena beberapa alasan, mungkin kurang
perpustakaan dan / atau header yang diperlukan. Periksa file mkmf.log untuk informasi lebih lanjut
detail. Anda mungkin memerlukan opsi konfigurasi.

Opsi konfigurasi yang disediakan:
    --dengan-opt-dir
    --without-opt-dir
    --dengan-opt-include
    --without-opt-include = $ {opt-dir} / include
    --dengan-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --dengan-membuat-prog
    --without-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / bin / ruby1.8
    --dengan-sqlite3-dir
    --without-sqlite3-dir
    --dengan-sqlite3-include
    --without-sqlite3-include = $ {sqlite3-dir} / include
    --dengan-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


File-file Gem akan tetap diinstal di /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 untuk diperiksa.
Hasil masuk ke /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h terletak di / usr / include /

sudo gem install sqlite3-ruby --without-sqlite3-include = / usr / include

tidak bekerja

GALAT: Saat menjalankan permata ... (OptionParser :: InvalidOption)
    opsi tidak valid: --without-sqlite3-include = / usr / include

Ubuntu 10,04

Dmitry
sumber
masalah yang sama - ini tidak dijawab. sqlite3.h tidak ada dan semua paket di atas diinstal. ubunut 10.10
rrt
Cobalah untuk sudo apt-get install build-essential dan kemudian sudo gem install sqlite3-ruby
Dmitry
1
sejak itu berubah menjadi adil sqlite3, tidaksqlite3-ruby
kelloti
3
Bekerja untuk saya di ubuntu 12.04 seperti yang disarankan marshluca. sudo apt-get install libsqlite3-dev
panta

Jawaban:

585

Anda memerlukan header pengembangan SQLite3 untuk dikompilasi dengan ekstensi asli gem. Anda dapat menginstalnya dengan menjalankan (mungkin dengan sudo):

apt-get install libsqlite3-dev
marshluca
sumber
26
Saya membutuhkan sudo apt-get install libsqlite3-dev. Terima kasih.
B Tujuh
6
Bekerja seperti pesona. Terima kasih.
frank.m
Terima kasih — ini jelas tidak akan jelas.
james_womack
15

Anda hanya perlu --di sana.

sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include

Itu menentukan bahwa opsi bukan untuk permata secara langsung, tetapi permata tertentu.

Kurt
sumber
8

Dalam kasus saya, saya tidak memiliki kompiler dasar yang diinstal, jadi

sudo apt-get install build-essential

memecahkan masalah saya, tetapi bagi kebanyakan orang saya pikir https://stackoverflow.com/a/3649005/417267 adalah solusinya.

Dmitry
sumber
1
Ini masalah saya. Terima kasih.
j sedih
6

Jika Anda menjalankan di ubuntu, dan menggunakan RVM untuk ruby ​​on rails, silakan tambahkan PERTAMA:

sudo apt-get install libxslt-dev libxml2-dev

ATAU Anda dapat memeriksa dengan perintah ini:

Perintah ini akan mempersiapkan untuk Anda dua paket: sqllite3 dan libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

-Sekarang, instal sqlite gem

 [sudo] gem install sqlite3-ruby

-Menggunakan Ubuntu tidak perlu sudo.

Semoga berhasil! Catatan: Saya menggunakan Ubuntu 10.10 dan berfungsi.

anguu
sumber
6

Ini cukup untuk membuatnya bekerja

sudo apt-get install libsqlite3-dev

Terima kasih untuk marshluca

Bernard Banta
sumber
4

Mencoba SEMUA solusi lain, tidak ada yang membantu.

Ternyata Anda juga membutuhkan paket dev untuk ruby ​​itu sendiri. Bagi saya, itu membantu

sudo apt-get install ruby-full

Ini memiliki banyak dependensi jahat sekalipun (seperti emacs, wtf?), Hanya

sudo apt-get install ruby1.8-dev

harus baik-baik saja. Setelah diinstal (dan Anda menginstal paket sqlite dan sqlite-dev)

sudo gem install sqlite3-ruby

bekerja seperti pesona.

mhaligowski
sumber
1
bekerja untuk saya juga. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
2

Ini jawaban yang lebih baik dari HEROKU - tidak dapat menjalankan git push heroku master

Karena Anda tidak dapat menggunakan sqlite3 pada heroku, tambahkan ini ke Gemfile Anda:

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end
jstreebin
sumber
1

Apakah masalah yang sama dan yang berikut ini berhasil untuk saya:

kompilasi sqlite3 sebagai pustaka statis, instal di suatu tempat di direktori home Anda dan kemudian berikan opsi itu untuk proses instal gem.

Buka halaman unduh dan ambil sumbernya. Versi terbaru saat ini adalah http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf pada file atau melakukan apa pun yang biasanya Anda lakukan untuk membuka kompresi; masukkan direktori

./configure --disable-shared --enable-static --prefix = / some / path / di / my / home

kompilasi, instal, dan ketika Anda menginstal permata ...

permata instal sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home

EnotionZ
sumber
1

Dari sqlite3-ruby gem tidak dapat menemukan sqlite3.h di ubuntu :

Anda juga perlu menginstal gcc sendiri, jadi totalnya adalah:

sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3

Rupanya Anda mendapatkan kesalahan yang salah menunjuk ke sqlite3.h yang hilang ketika masalah sebenarnya hilang gcc itu sendiri.

Jeroen Vijfhuizen
sumber
1

Solusinya adalah menambahkan parameter yang --terpisah configuredari gemparameter.

dari pada

sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include

coba ini, semua dalam satu baris, pastikan untuk memasukkan --setelah gemparameter terakhir dan sebelum configureparameter:

sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include

Ini akan membantu Anda mengatasi kesalahan ini:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
Stefan
sumber
Ini persis apa yang saya butuhkan - terima kasih banyak kepada submitter ini!
David Loy
0

Bukan --without-sqlite3-include=/usr/include, tapi --with-sqlite3-include=/usr/include.

Daniel O'Hara
sumber
Jika sqlite3.h benar-benar hilang dan tidak ada di / usr / sertakan seperti yang Anda katakan, maka Anda dapat menginstalnya dengan: sudo apt-get install libsqlite3-dev
Kurt
Saya sudah melakukan ini .. Itu tidak membantu. Saya telah menginstal sqlite3 dan libsqlite3.
Dmitry
0

Ini adalah masalah yang sama persis dengan yang saya alami beberapa minggu yang lalu. Saya menemukan bahwa saya perlu mengunduh header / pustaka terbaru dari Halaman Unduhan SQLite. Cobalah, semoga ini membantu!

theGrayFox
sumber
0

Bagi saya masalahnya diselesaikan dengan mendapatkan mkmf, yang ada di ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Terima kasih sudah diberi mental untuk yang satu itu.

ben penulis
sumber
0

Saya setuju dengan Danya Vershinin & EnotionZ .

Jika tidak bisa menggunakan apt-get:

  1. kompilasi & instal sqlite3 dari sumber dengan menentukan jalur "awalan" Anda sendiri. Informasi lebih lanjut dapat ditemukan di README.
  2. Kemudian melewati jalur ini ke installer sqlite3-ruby (jangan lupa "-").
LoganMzz
sumber
0

Anda telah merusak versi RVM. Ubuntu melakukan sesuatu untuk RVM yang menghasilkan banyak kesalahan, satu-satunya cara aman untuk memperbaiki untuk saat ini adalah: sudo apt-get --purge hapus ruby-rvm sudo rm -rf / usr / share / ruby ​​..., jika itu tidak membantu kemudian restart komputer Anda. instal RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = aktifkan --auto-dotfiles Jika Anda merasa perlu berpegangan tangan, lihat Instalasi Ruby di Ubuntu 12.04, yang memberikan penjelasan lebih jelas.

Jack Demin
sumber
0

Lupakan semuanya dan lakukan ini,

Lari

yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install

Itu untuk rhel, jalankan sama untuk ubuntu.

Aakash Parashar
sumber
0

Tidak ada solusi yang disebutkan di atas yang berfungsi untuk saya, bahkan setelah menginstal ruby2.5-devdan libsqlite3-dev. Kemudian coba gunakan PostgreSqlbukan sqlite. Itu bekerja dengan baik. Untuk menggunakan PostgreSqlalih-alih sqlite, gunakan perintah ini saat membuat railsproyek.

rails [_VERSION_] new project_name -d postgresql

Jika Anda ingin menggunakan MySqlmaka gunakan mysqlsebagai gantinya postgresql.

rails [_VERSION_] new project_name -d mysql

Anda bisa mencoba tanpa sqlite.

bundle install --without sqlite
MD. Khairul Basar
sumber
0

Saya baru saja diturunkan ke sqlite3-ruby '1.2.2'

nils petersohn
sumber