ข้อผิดพลาดในการติดตั้ง sqlite3-ruby บน Ubuntu


257

ฉันมีข้อผิดพลาดต่อไปนี้ระหว่างการติดตั้ง sqlite3-ruby:

การสร้างส่วนขยายเนทิฟ อาจใช้เวลาสักครู่ ...
ข้อผิดพลาด: เกิดข้อผิดพลาดในการติดตั้ง sqlite3-ruby:
    ข้อผิดพลาด: ไม่สามารถสร้างส่วนขยายดั้งเดิมของอัญมณี

/usr/bin/ruby1.8 extconf.rb
กำลังตรวจสอบ sqlite3.h ... ไม่
sqlite3.h หายไป ลอง 'พอร์ตติดตั้ง sqlite3 + universal' หรือ 'yum install sqlite3-devel'
*** extconf.rb ล้มเหลว ***
ไม่สามารถสร้าง Makefile เนื่องจากสาเหตุบางอย่างอาจขาดไป
ไลบรารีและ / หรือส่วนหัวที่จำเป็น ตรวจสอบไฟล์ mkmf.log เพื่อดูเพิ่มเติม
รายละเอียด คุณอาจต้องการตัวเลือกการกำหนดค่า

ตัวเลือกการกำหนดค่าที่ให้มา:
    --with ที่เลือก dir
    --without ที่เลือก dir
    --with ที่เลือก ได้แก่
    --without ที่เลือกรวม = $ {ยกเลิกการเลือกผบ} / ได้แก่
    --with ที่เลือก lib
    --without ที่เลือก lib = $ {ยกเลิกการเลือกผบ} / lib
    --with-ทำให้ PROG
    --without-ทำให้ PROG
    --srcdir =
    --curdir
    --ruby = / usr / bin / ruby1.8
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3- ได้แก่
    --without-sqlite3-รวม = $ {sqlite3-dir} / ได้แก่
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


ไฟล์ Gem จะยังคงติดตั้งใน /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 เพื่อทำการตรวจสอบ
ผลลัพธ์ที่บันทึกไว้ใน /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h ตั้งอยู่ใน / usr / include /

sudo gem ติดตั้ง sqlite3-ruby - โดยไม่ต้อง sqlite3-include = / usr / include

ไม่ทำงาน

ข้อผิดพลาด: ขณะดำเนินการ gem ... (OptionParser :: InvalidOption)
    ตัวเลือกที่ไม่ถูกต้อง: - โดยไม่ต้อง sqlite3-include = / usr / include

Ubuntu 10.04


ปัญหาเดียวกัน - ไม่ได้รับคำตอบ sqlite3.h ไม่มีอยู่จริงและมีการติดตั้งแพ็คเกจทั้งหมดข้างต้น ubunut 10.10
RRT

ลอง sudo apt-get install build-essential จากนั้น sudo gem ติดตั้ง sqlite3-ruby
Dmitry

1
มันเปลี่ยนเป็นเพียงsqlite3ไม่ใช่sqlite3-ruby
kelloti

3
ทำงานสำหรับฉันใน Ubuntu 12.04 ตามที่แนะนำ marshluca sudo apt-get install libsqlite3-dev
panta

คำตอบ:


585

คุณต้องการส่วนหัวการพัฒนา SQLite3 เพื่อให้ส่วนขยายเนทีฟของอัญมณีรวบรวม คุณสามารถติดตั้งโดยใช้ (อาจมีsudo):

apt-get install libsqlite3-dev

26
sudo apt-get install libsqlite3-devผมจำเป็นต้องมี ขอบคุณ
B Seven

6
ทำงานเหมือนจับใจ ขอบคุณ
frank.m

ขอบคุณ - สิ่งนี้จะไม่ชัดเจนอย่างแน่นอน
james_womack

15

คุณเพียงแค่ต้องมี--ใน

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

นั่นเป็นการระบุว่าตัวเลือกไม่ใช่อัญมณีโดยตรง แต่เป็นอัญมณีเฉพาะ


8

ในกรณีของฉันฉันไม่ได้ติดตั้งคอมไพเลอร์พื้นฐานดังนั้น

sudo apt-get install build-essential

แก้ไขปัญหาของฉัน แต่สำหรับคนส่วนใหญ่ฉันคิดว่าhttps://stackoverflow.com/a/3649005/417267เป็นวิธีแก้ปัญหา


1
นี่เป็นปัญหาของฉัน ขอบคุณ
เศร้า

6

หากคุณใช้งานใน Ubuntu และใช้ RVM สำหรับทับทิมบนรางโปรดเพิ่ม FIRST ครั้งแรก:

sudo apt-get install libxslt-dev libxml2-dev

หรือคุณสามารถตรวจสอบด้วยคำสั่งเหล่านี้:

คำสั่งนี้จะจัดเตรียมสำหรับคุณสองแพ็กเกจ: sqllite3 และ libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

- ตอนนี้ติดตั้ง sqlite gem

 [sudo] gem install sqlite3-ruby

- การใช้ Ubuntu ไม่จำเป็นต้องใช้ sudo

โชคดี! หมายเหตุ: ฉันใช้ Ubuntu 10.10 และใช้งานได้




4

ลองใช้วิธีแก้ไขอื่น ๆทั้งหมดแล้วไม่มีใครช่วย

มันกลับกลายเป็นว่าคุณยังต้องการแพ็คเกจ dev สำหรับทับทิม สำหรับฉันมันช่วย

sudo apt-get install ruby-full

มันมีการพึ่งพาที่น่ารังเกียจมากมาย (เช่น emacs, wtf?) เพียง

sudo apt-get install ruby1.8-dev

ควรจะดี หลังจากติดตั้งแล้ว (และคุณได้ติดตั้งแพ็คเกจ sqlite และ sqlite-dev)

sudo gem install sqlite3-ruby

ทำงานเหมือนจับใจ


1
ทำงานให้ฉันด้วย sudo apt-get install ruby1.9.1-dev libsqlite3-dev
เว็บไซต์ rajsite


1

มีปัญหาเดียวกันนี้และสิ่งต่อไปนี้ใช้ได้สำหรับฉัน:

คอมไพล์ sqlite3 เป็นไลบรารีแบบสแตติกติดตั้งบางแห่งในโฮมไดเร็กตอรี่ของคุณจากนั้นให้ตัวเลือกสำหรับกระบวนการติดตั้งอัญมณี

ไปที่หน้าดาวน์โหลดและหยิบซอร์ส รุ่นล่าสุดในขณะนี้คือhttp://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf บนไฟล์หรือทำสิ่งที่คุณทำตามปกติเพื่อคลายการบีบอัด; เข้าสู่ไดเรกทอรี

./configure - ปิดการใช้งานร่วมกัน - เปิดใช้งานคงที่ --prefix = / some / path / in / my / home

รวบรวมติดตั้งและเมื่อคุณติดตั้งอัญมณี ...

อัญมณีติดตั้ง sqlite3-ruby - - กับ sqlite3-dir = / บาง / เส้นทาง / ใน / my / home


1

จากsqlite3-gem ruby ​​ไม่พบ sqlite3.h บน Ubuntu :

คุณต้องติดตั้ง gcc ด้วยตัวเองดังนั้นโดยรวม:

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

เห็นได้ชัดว่าคุณได้รับข้อผิดพลาดที่ไม่ถูกต้องซึ่งชี้ไปยัง sqlite3.h ที่หายไปเมื่อปัญหาที่เกิดขึ้นจริงหายไปเอง gcc


1

การแก้ปัญหาคือการเพิ่มพารามิเตอร์--แยกconfigureจากgemพารามิเตอร์

แทน

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

ลองทั้งหมดนี้ในหนึ่งบรรทัดตรวจสอบให้แน่ใจว่าได้รวมไว้--หลังgemพารามิเตอร์สุดท้ายและก่อนconfigureพารามิเตอร์:

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

สิ่งนี้จะทำให้คุณได้รับข้อผิดพลาดนี้:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include

นี่คือสิ่งที่ฉันต้องการ - ขอบคุณมากสำหรับผู้ส่งคนนี้!
David Loy

0

ไม่ได้แต่--without-sqlite3-include=/usr/include--with-sqlite3-include=/usr/include


หาก sqlite3.h หายไปจริงๆและไม่ได้อยู่ใน / usr / include ตามที่คุณพูดคุณสามารถติดตั้งได้ด้วย: sudo apt-get install libsqlite3-dev
Kurt

ฉันทำสิ่งนี้ไปแล้ว .. มันไม่ช่วยอะไรเลย ฉันติดตั้ง sqlite3 และ libsqlite3-dev แล้ว
มิทรี

0

นี่เป็นปัญหาเดียวกันที่ฉันมีเมื่อสองสามสัปดาห์ก่อน ฉันพบว่าฉันต้องการดาวน์โหลดส่วนหัว / ไลบรารีล่าสุดจากหน้าดาวน์โหลด SQLite ลองใช้หวังว่านี่จะช่วยได้!



0

ผมเห็นด้วยกับDanya Vershinin & EnotionZ

หากไม่สามารถใช้ apt-get:

  1. รวบรวมและติดตั้ง sqlite3 จากแหล่งที่มาโดยระบุเส้นทาง "คำนำหน้า" ของคุณเอง ข้อมูลเพิ่มเติมสามารถพบได้ใน README
  2. จากนั้นผ่านพา ธ นี้ไปยังตัวติดตั้ง sqlite3-ruby (อย่าลืม "-")

0

คุณมี RVM รุ่นที่ใช้งานไม่ได้ Ubuntu ทำบางสิ่งบางอย่างกับ RVM ที่สร้างข้อผิดพลาดจำนวนมากวิธีเดียวที่ปลอดภัยในการแก้ไขในตอนนี้คือ: sudo apt-get --purge ลบ ruby-rvm sudo rm -rf / usr / share / ruby ​​…หากไม่ช่วย จากนั้นรีสตาร์ทคอมพิวเตอร์ ติดตั้ง RVM: \ curl -L https://get.rvm.io | bash -s stabilisation - รูบี้ - autolibs = enable --auto-dotfiles หากคุณต้องการมือถือลองดูที่ Installing Ruby บน Ubuntu 12.04 ซึ่งให้รายละเอียดเพิ่มเติม


0

ลืมทุกอย่างและทำสิ่งนี้

วิ่ง

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

สำหรับ Rhel นั้นใช้งานได้เหมือนกันสำหรับ Ubuntu


0

ไม่มีการแก้ปัญหาดังกล่าวข้างต้นทำงานให้ฉันแม้หลังจากการติดตั้งและruby2.5-dev libsqlite3-devจากนั้นพยายามใช้แทนPostgreSql sqliteมันใช้งานได้ดี หากต้องการใช้PostgreSqlแทน sqlite ให้ใช้คำสั่งนี้เมื่อสร้างrailsโครงการ

rails [_VERSION_] new project_name -d postgresql

หากคุณต้องการที่จะใช้MySqlแล้วใช้แทนmysqlpostgresql

rails [_VERSION_] new project_name -d mysql

อื่น ๆ sqliteที่คุณสามารถลองโดยไม่ต้อง

bundle install --without sqlite

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.