Nie można znaleźć Gemfile

138

Z pewnością nie jestem programistą Ruby, ale mam aplikację na swoim serwerze używającą Ruby, Gems i Bundler. Próbuję zainstalować inny Ruby na innym koncie użytkownika, ale na tym samym VPS. Kiedy idę pobiegać

bundle install

Otrzymuję następujący błąd:

Nie można znaleźć Gemfile

Mogę usunąć zawartość katalogu ./bundle, aby wszystkie klejnoty zostały ponownie pobrane w celu usunięcia błędu, ale czy będzie to miało wpływ na moją inną aplikację korzystającą z tych samych klejnotów i pakietu? Nie chcę ryzykować wyłączenia drugiej aplikacji.

Ian
źródło

Odpowiedzi:

162

Nie masz Gemfilekatalogu, w którym uruchamiasz to polecenie. Gemfilejest plikiem zawierającym gemustawienia dla bieżącego programu.

Joni
źródło
2
Dzięki. To było coś tak prostego. Po prostu miałem problem, ponieważ musiałem być zalogowany jako administrator, aby uruchomić polecenie, ale plik gemfile znajdował się w katalogu innego użytkownika. Udało mi się to załatwić. Dzięki!
Ian,
1
tak, masz rację, jeśli używasz tego polecenia do instalacji redmine, powinieneś 'cd [redmine-katalog]', a następnie wykonać to polecenie.
Tim Wong
80

Przed uruchomieniem upewnij się, że jesteś w katalogu projektu bundle install. Na przykład po biegu rails new myprojectbędziesz chciał cd myprojectprzed bieganiem bundle install.

bluesman333
źródło
Tak, to rzeczywiście był problem i udało mi się go w końcu rozwiązać. Dzięki za pomoc.
Ian,
6

Miałem ten sam problem i rozwiązałem go, używając innego katalogu.

instalacja pakietu bash-4.2 $
Nie można znaleźć 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 extra Gemfile lib plugins Rakefile script tmp
bin config.ru doc ​​files Dziennik Gemfile.lock publiczny dostawca testu README.rdoc
bash-4.2 $ wtyczki cd /
instalacja pakietu bash-4.2 $
Korzystanie z prowizji (0.9.2.2) 
Korzystanie z i18n (0.6.0) 
Korzystanie z multi_json (1.3.6) 
Korzystanie z ActiveSupport (3.2.11) 
Korzystanie z kreatora (3.0.0) 
Korzystanie z Activemodel (3.2.11) 
Korzystanie z Erubis (2.7.0) 
Korzystanie z podróży (1.0.4) 
Korzystanie ze stojaka (1.4.1) 
Korzystanie z pamięci podręcznej w szafie (1.2) 
Korzystanie z testu stojaka (0.6.1) 
Korzystanie z wędrówki (1.2.1) 
Korzystanie z pochylenia (1.3.3) 
Korzystanie z zębatek (2.2.1) 
Korzystanie z pakietu akcji (3.2.11) 
Korzystanie z typów MIME (1.19) 
Korzystanie z poliglota (0.3.3) 
Korzystanie z Treetop (1.4.10) 
Korzystanie z poczty (2.4.4) 
Korzystanie z actionmailer (3.2.11) 
Korzystanie z arel (3.0.2) 
Korzystanie z tzinfo (0.3.33) 
Korzystanie z activerecord (3.2.11) 
Korzystanie z zasobów aktywnych (3.2.11) 
Korzystanie z Coderay (1.0.6) 
Korzystanie z protokołu Rack-SSL (1.3.2) 
Korzystanie z json (1.7.5) 
Korzystanie z rdoc (3.12) 
Korzystanie z Thor (0.15.4) 
Korzystanie z poręczy (3.2.11) 
Korzystanie z jquery-rails (2.0.3) 
Korzystanie z mysql2 (0.3.11) 
Korzystanie z net-ldap (0.3.1) 
Korzystanie z ruby-openid (2.1.8) 
Korzystanie z otwierania w szafie (1.3.1) 
Korzystanie z pakietu (1.2.3) 
Korzystanie z szyn (3.2.11) 
Korzystanie z rmagick (2.13.1) 
Twój pakiet i
Amit Gupta
źródło
3

Rozwiązałem podobny problem, po prostu wycofując się z katalogu projektu, a następnie z powrotem do katalogu projektu i instalując pakiet.

Dennis Keefe
źródło
1

Oto coś, czego możesz spróbować.

Dodaj to do wszystkich plików konfiguracyjnych, których używasz do uruchamiania aplikacji.

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

Railsy i inne aplikacje oparte na Rack używają tego schematu. Czasami zdarza się, że próbujesz uruchomić rzeczy, które są o niektóre katalogi głębsze niż twój katalog główny, w którym normalnie znajduje się twój plik Gemfile. Oczywiście na razie rozwiązałeś ten problem, ale czasami wszyscy mamy kłopoty ze znalezieniem pliku Gemfile. Czasami lubię, kiedy możesz mieć wszystkie klejnoty w katalogu .bundle. Trzymanie tego adresu strony pod poduszką nigdy nie boli. http://bundler.io/

Douglas G. Allen
źródło
0

Jest bardzo prosta. kiedy mówi „Nie można zlokalizować Gemfile”, oznacza to, że w folderze, w którym się znajdujesz lub w katalogu, w którym się znajdujesz, nie ma pliku o nazwie GemFile. Dlatego w wierszu poleceń podaj jawną lub pełną ścieżkę do folderu, w którym taka nazwa pliku „Gemfile” to np. Cd C: \ Users \ Administrator \ Desktop \ RubyProject \ demo.

Na pewno zostanie rozwiązany za minutę.

Titus H.
źródło