ไม่พบ Gemfile


142

ฉันไม่ใช่นักพัฒนา Ruby อย่างแน่นอน แต่ฉันมีแอปพลิเคชันบนเซิร์ฟเวอร์ของฉันโดยใช้ Ruby, Gems และ Bundler ฉันพยายามติดตั้ง Ruby อื่นบนบัญชีผู้ใช้อื่น แต่ใช้ VPS เดียวกัน เมื่อฉันไปวิ่ง

bundle install

ฉันได้รับข้อผิดพลาดต่อไปนี้:

ไม่พบ Gemfile

ฉันสามารถลบเนื้อหาของไดเร็กทอรี. / bundle ออกเพื่อให้ดึงอัญมณีทั้งหมดมาใหม่เพื่อล้างข้อผิดพลาด แต่สิ่งนี้จะมีผลกระทบกับแอปพลิเคชันอื่นของฉันที่ใช้ Gems และ Bundler เดียวกันหรือไม่ ฉันไม่ต้องการเสี่ยงที่จะทำให้แอปอื่นล่ม

คำตอบ:


166

คุณไม่มีGemfileในไดเร็กทอรีที่คุณรันคำสั่งนั้น Gemfileคือไฟล์ที่มีgemการตั้งค่าของคุณสำหรับโปรแกรมปัจจุบัน


2
ขอบคุณ. มันเป็นอะไรที่เรียบง่ายนี้ ฉันมีปัญหาเพราะฉันต้องเข้าสู่ระบบในฐานะผู้ใช้ที่เป็นผู้ดูแลระบบเพื่อเรียกใช้คำสั่ง แต่ gemfile อยู่ในไดเร็กทอรีภายใต้ผู้ใช้อื่น ฉันจัดการเพื่อจัดเรียง ขอบคุณ!
เอียน

1
ใช่คุณพูดถูกถ้าคุณใช้คำสั่งนี้เพื่อติดตั้ง redmine คุณควร "cd [redmine-directory]" จากนั้นดำเนินการคำสั่งนั้น
Tim Wong

81

bundle installให้แน่ใจว่าคุณอยู่ในไดเรกทอรีโครงการก่อนที่จะใช้ ตัวอย่างเช่นหลังจากที่ทำงานrails new myprojectคุณจะต้องการก่อนที่จะใช้cd myprojectbundle install


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

6

ฉันมีปัญหาเดียวกันและได้รับการแก้ไขโดยใช้ไดเรกทอรีอื่น

bash-4.2 $ มัดติดตั้ง
ไม่พบ Gemfile
bash-4.2 $ pwd
/home/amit/redmine/redmine-2.2.2-0/apps/redmine
bash-4.2 $ cd htdocs /
bash-4.2 $ ls
app config db ปลั๊กอิน Gemfile lib พิเศษ Rakefile script tmp
bin config.ru ไฟล์ doc Gemfile.lock ล็อกผู้จำหน่ายทดสอบ README.rdoc สาธารณะ
bash-4.2 $ cd ปลั๊กอิน /
bash-4.2 $ มัดติดตั้ง
ใช้คราด (0.9.2.2) 
ใช้ i18n (0.6.0) 
ใช้ multi_json (1.3.6) 
การใช้ activesupport (3.2.11) 
ใช้ตัวสร้าง (3.0.0) 
ใช้ Activemodel (3.2.11) 
ใช้ erubis (2.7.0) 
ใช้การเดินทาง (1.0.4) 
การใช้ชั้นวาง (1.4.1) 
การใช้แร็คแคช (1.2) 
ใช้การทดสอบชั้นวาง (0.6.1) 
ใช้ธุดงค์ (1.2.1) 
ใช้การเอียง (1.3.3) 
การใช้เฟือง (2.2.1) 
ใช้ Actionpack (3.2.11) 
การใช้ละครใบ้ (1.19) 
การใช้หลายภาษา (0.3.3) 
ใช้ treetop (1.4.10) 
การใช้เมล (2.4.4) 
การใช้ actionmailer (3.2.11) 
การใช้ arel (3.0.2) 
ใช้ tzinfo (0.3.33) 
การใช้ Activerecord (3.2.11) 
ใช้ activeresource (3.2.11) 
ใช้โค้ดเรย์ (1.0.6) 
การใช้ rack-ssl (1.3.2) 
ใช้ json (1.7.5) 
ใช้ rdoc (3.12) 
ใช้ thor (0.15.4) 
การใช้ railties (3.2.11) 
ใช้ jquery-rail (2.0.3) 
ใช้ mysql2 (0.3.11) 
ใช้ net-ldap (0.3.1) 
การใช้ Ruby-openid (2.1.8) 
การใช้ชั้นวาง openid (1.3.1) 
การใช้บันเดิลเลอร์ (1.2.3) 
การใช้ราง (3.2.11) 
ใช้ rmagick (2.13.1) 
มัดของคุณ i

3

ฉันแก้ไขปัญหาที่คล้ายกันเพียงแค่สำรองข้อมูลออกจากไดเร็กทอรีโครงการจากนั้น cd กลับไปที่ไดเร็กทอรีโปรเจ็กต์และติดตั้งบันเดิล


1

นี่คือสิ่งที่คุณสามารถลองได้

เพิ่มสิ่งนี้ลงในไฟล์กำหนดค่าที่คุณใช้เรียกใช้แอปของคุณ

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' # Set up gems listed in the Gemfile.
Bundler.require(:default)

Rails และแอพที่ใช้ Rack อื่น ๆ ใช้โครงร่างนี้ บางครั้งมันเกิดขึ้นที่คุณพยายามเรียกใช้สิ่งต่างๆซึ่งเป็นไดเร็กทอรีบางส่วนที่ลึกกว่ารูทของคุณซึ่งปกติ Gemfile ของคุณจะอยู่ แน่นอนคุณแก้ปัญหานี้ไปแล้ว แต่บางครั้งเราทุกคนก็ประสบปัญหากับการค้นหา Gemfile บางครั้งฉันก็ชอบเวลาที่คุณสามารถมีอัญมณีทั้งหมดในไดเร็กทอรี. บันเดิลได้เช่นกัน การเก็บที่อยู่ของไซต์นี้ไว้ใต้หมอนของคุณไม่เจ็บเลย http://bundler.io/


0

เป็นเรื่องง่ายมาก เมื่อมีข้อความว่า 'ไม่พบ Gemfile' หมายความว่าในโฟลเดอร์ที่คุณอยู่ในขณะนี้หรือไดเรกทอรีที่คุณอยู่ไม่มีไฟล์ชื่อ GemFile ดังนั้นในพรอมต์คำสั่งของคุณให้ระบุเส้นทางที่ชัดเจนหรือเต็มของโฟลเดอร์ที่นั่นโดยที่ชื่อไฟล์ "Gemfile" เช่น cd C: \ Users \ Administrator \ Desktop \ RubyProject \ demo

แน่นอนจะแก้ไขได้ในไม่กี่นาที

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