ไม่สามารถโหลดไฟล์ดังกล่าว - zlib แม้หลังจากใช้ rvm pkg install zlib


112

ฉันติดตั้งแพ็คเกจ zlib และทับทิม 1.9.3 โดยใช้ rvm แต่เมื่อใดก็ตามที่ฉันพยายามติดตั้งอัญมณีมันจะบอกว่า cannot load such file -- zlib

คำสั่งที่ฉันใช้ในการติดตั้งคือ

$ rvm install 1.9.3
$ rvm pkg ติดตั้ง zlib

$ rvm ติดตั้งใหม่ 1.9.3 - ด้วย-readline-dir = / home / username / .rvm / usr \
    - พร้อม-iconv-dir = / home / username / .rvm / usr \
    - ด้วย-zlib-dir = / home / username / .rvm / usr \
    --with-OpenSSL-dir = / home / ชื่อผู้ใช้ / .rvm / usr

$ rvm ใช้ 1.9.3

$ gem ติดตั้ง heroku
ข้อผิดพลาด: กำลังโหลดคำสั่ง: ติดตั้ง (LoadError)
    ไม่สามารถโหลดไฟล์ดังกล่าว - zlib
ข้อผิดพลาด: ขณะเรียกใช้อัญมณี ... (NameError)
    ค่าคงที่ที่ไม่ได้เริ่มต้น Gem :: Commands :: InstallCommand

ความช่วยเหลือทั้งหมดในเรื่องนี้บอกให้ฉันทำrvm pkg install zlibแล้วติดตั้งทับทิมใหม่ด้วย--with-zlib-dir=/home/username/.rvm/usrแต่ไม่ได้ผล

คำตอบ:


201

ฉันลงเอยด้วยการติดตั้ง zlib จาก apt-get แล้วติดตั้ง Ruby ใหม่เพื่อไม่ใช้ไดเรกทอรี rvm สำหรับ zlib

วิธีทำมีดังนี้

$ sudo apt-get install zlib1g-dev
$ rvm reinstall 1.9.3

[แก้ไข]ตามที่ผู้แสดงความคิดเห็น @chrisfinne กล่าวถึงระบบที่ใช้ CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

21
หรือ sudo yum ติดตั้ง zlib-devel
chris finne

4
ไม่ว่าระบบปฏิบัติการจะเป็นอย่างไรคำแนะนำของ @chrisfinne ก็ยังมีประโยชน์ (อย่างน้อยก็สำหรับฉัน)!

ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน แม้ว่าฉันจะต้องคอมไพล์ใหม่อีกครั้งเนื่องจากฉันไม่มี libssl-dev ด้วย (ฉันต้องการเพราะ rvm ต้องการดึงแหล่งทับทิมผ่าน HTTPS) :-)
tr9sh

9

คำตอบอื่น ๆ ทั้งสองเกือบจะถูกต้อง ...

เว็บไซต์ RVM สำหรับ zlibให้การแก้ไขอย่างรวดเร็ว!

ด้านบนของหน้าคือ "การแก้ไขด่วน" ทำตามคำแนะนำมันจะ:

  • แก้ไขการติดตั้งของคุณ
  • ให้คำแนะนำเกี่ยวกับสิ่งที่ต้องทำเพื่อติดตั้ง zlib จากระบบของคุณ
  • และแสดงวิธีการติดตั้งทับทิมใหม่

1

Ruby มีการพึ่งพาแพ็คเกจมากมายเช่นเดียวกับ zlib-devel พวกเขาน่ารังเกียจเพราะไม่มีอะไรบ่งชี้ว่าคุณต้องการห้องสมุดจนกว่าจะได้รับข้อความแสดงข้อผิดพลาดที่คลุมเครือขณะพยายามทำกิจวัตรประจำวัน

การแก้ปัญหาคือการใช้RVM ใช้งานได้แม้ว่าคุณจะต้องการทับทิมเพียงรุ่นเดียวก็ตาม ทำไม? เพราะงั้นคุณก็ทำได้

rvm requirements

สิ่งนี้จะตรวจสอบระบบปฏิบัติการเฉพาะของคุณและสร้างชุดคำสั่งที่คุณสามารถคัดลอกกลับไปที่บรรทัดคำสั่งเพื่อติดตั้งแพ็คเกจที่ขาดหายไป


1

ใช้ autolibs เพื่อติดตั้งการอ้างอิง:

rvm autolibs enable
rvm reinstall 1.9.3

RVM จะติดตั้งการอ้างอิงที่ขาดหายไปโดยอัตโนมัติและใช้สำหรับการรวบรวมทับทิม

รายละเอียดเพิ่มเติมเกี่ยวกับ autolibs => http://rvm.io/rvm/autolibs


1
rvm pkg ติดตั้ง openssl && rvm pkg ติดตั้ง zlib && rvm pkg ติดตั้ง libyaml &&
  rvm pkg ติดตั้ง iconv
rvm ติดตั้ง 1.9.3-p0 - พร้อม-opt-dir = $ HOME / .rvm / usr \
  - ด้วย-libxml2-dir = / usr / local / Cellar / libxml2 / 2.7.8 \
  --with-ReadLine-dir = / usr / local / Cellar / ReadLine / 6.2.1

1

วิธีการแก้ปัญหาที่ทำงานให้ฉันอธิบายไว้ใน RVM GitHub repo, รุ่น #

วิ่ง

rvm install 2.3.0 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8

สำหรับรุ่นRuby 2.3.0

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