Не удалось найти Gemfile

138

Я, конечно, не разработчик Ruby, но у меня есть приложение на моем сервере, использующее Ruby, Gems и Bundler. Я пытаюсь установить другой Ruby под другой учетной записью пользователя, но на том же VPS. Когда я иду бежать

bundle install

Я получаю следующую ошибку:

Не удалось найти Gemfile

Я мог бы удалить содержимое каталога ./bundle, чтобы все Gems были повторно выбраны для устранения ошибки, но повлияет ли это на мое другое приложение, использующее те же Gems и Bundler? Я не хочу рисковать, забирая другое приложение.

Ян
источник

Ответы:

162

У вас нет Gemfileв каталоге, где вы запускаете эту команду. Gemfileэто файл, содержащий ваши gemнастройки для текущей программы.

Joni
источник
2
Спасибо. Это было что-то такое простое. У меня просто была проблема, потому что я должен был войти в систему как пользователь с правами администратора, чтобы выполнить команду, но гемфайл находился в каталоге под другим пользователем. Мне удалось разобраться. Спасибо!
Ян
1
да, вы правы, если вы используете эту команду для установки redmine, вам нужно «cd [redmine-directory]», а затем выполнить эту команду.
Тим Вонг
80

Убедитесь, что вы находитесь в каталоге проекта перед запуском bundle install. Например, после запуска rails new myprojectвы захотите cd myprojectперед запуском bundle install.

bluesman333
источник
Да, это была действительно проблема, и мне удалось разобраться в конце. Спасибо за вашу помощь.
Ян
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
конфиг приложения db дополнительные плагины Gemfile lib скрипт Rakefile 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) 
Использование builder (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) 
Использование MIME-типов (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) 
Использование coderay (1.0.6) 
Использование rack-ssl (1.3.2) 
Использование json (1.7.5) 
Использование rdoc (3.12) 
Используя Тор (0.15.4) 
Использование рельсов (3.2.11) 
Использование jquery-rails (2.0.3) 
Использование mysql2 (0.3.11) 
Использование net-ldap (0.3.1) 
Использование ruby-openid (2.1.8) 
Использование rack-openid (1.3.1) 
Использование bundler (1.2.3) 
Использование рельсов (3.2.11) 
Использование rmagick (2.13.1) 
Ваш комплект я
Амит Гупта
источник
3

Я решил похожую проблему, просто вернувшись из каталога проекта, затем перейдя в каталог проекта и установив пакет.

Деннис Кифе
источник
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. Мне иногда нравится, когда вы можете хранить все свои драгоценные камни в каталоге .bundle. Никогда не повредит держать этот адрес сайта под своей подушкой. http://bundler.io/

Дуглас Г. Аллен
источник
0

Это очень просто. когда он говорит «Не удалось найти Gemfile», это означает, что в папке, в которой вы находитесь, или в каталоге, в котором вы находитесь, нет файла с именем GemFile. Поэтому в командной строке укажите явный или полный путь к папке там, где такое имя файла «Gemfile», например, cd C: \ Users \ Administrator \ Desktop \ RubyProject \ demo.

Это определенно будет решено в течение минуты.

Титус Х.
источник