instalacja pakietu zwraca „Could not locate Gemfile”

102

Jestem nowy w Railsach i obecnie pracuję nad przewodnikiem. Przewodnik stwierdza:

Użyj edytora tekstu, aby zaktualizować plik Gemfile wymagany przez Bundler o zawartość listingu 2.1.

source 'https://rubygems.org'

gem 'rails', '3.2.3'

group :development do
  gem 'sqlite3', '1.3.5'
end


# Gems used only for assets and not required
# in production environments by default.

group :assets do
  gem 'sass-rails',   '3.2.4'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.3'
end

gem 'jquery-rails', '2.0.0'

group :production do
  gem 'pg', '0.12.2'
end

Następnie instalujemy i dołączamy klejnoty za pomocą bundle install polecenia:

    $ bundle install --without production 

Jeśli Bundler narzeka, no such file to load -- readline (LoadError)spróbuj dodać go gem ’rb-readline’do swojego Gemfile.)

Postępowałem zgodnie z instrukcjami, nawet dodając gem 'rb-readline'do Gemfilepliku, ale najwyraźniej nie można znaleźć pliku, a kiedy idę do mojego edytora tekstu, widzę Gemfilesam siebie. Zauważyłem, że kazali mi umieścić, gem 'rails', 3.2.3a moja wersja Railsów to 3.2.1, więc próbowałem zmienić ją na 3.2.1, ale to też nie zadziałało.

Wszelkie przemyślenia lub rady będą mile widziane.

pierwszy poziom
źródło
1
dlaczego umieszczasz - - znaki na liście Gemfile?
MikDiet
nie, nie, po prostu umieściłem to w tym miejscu, aby było bardziej czytelne dla was, ponieważ nie mogę jeszcze używać obrazów ... używam wysublimowanego edytora tekstu tylko do informacji.
levelone
2
Znalazłem rozwiązanie problemu. Przypuszczam, że „$ cd demo_app”, a następnie „$ install bundle” z tego folderu. :)
levelone

Odpowiedzi:

244

Musisz tylko zmienić katalogi w swojej aplikacji, a następnie uruchomić bundle install:)

svoisen
źródło
1
@svoisen,: D Google umieszcza Twoją odpowiedź we fragmencie podczas wyszukiwania tego konkretnego problemu, przy okazji. Pozdrowienia i podziękowania z pozbawionej snu przyszłości!
Jaime
1
BTW, możesz znaleźć katalog aplikacji za pomocą whereis <app_name>polecenia, zwykle plik Gemfile znajduje się w / usr / shared / *
4gus71n
Aplikacja może również znajdować się w folderze w / opt /
Mo Beigi
Po prostu dodaj trochę luzu, który przeniesie się do folderu projektu, a nie folderu 'bin' projektu :)
20

Możesz również wskazać ścieżkę do pliku gemfile w tym samym poleceniu np

BUNDLE_GEMFILE="MyProject/Gemfile.ios" bundle install
houbena
źródło
2
Doskonała odpowiedź. Ponieważ w mojej sytuacji nie mogę wszędzie uzyskać polecenia pakietu dostępu. [root@alc bin]# BUNDLE_GEMFILE="../../apps/redmine/htdocs/Gemfile" ./bundle installjest moim poleceniem do wykonania.
uzay95
Z jakiegoś powodu miałem ten problem, kiedy kopiowałem plik Gemfile do kontenera docker, nie mogłem znaleźć .bundle i ustawiłem mój WOKRDIR, ale nie wydawało się, że złapałem go podczas instalacji pakietu, to załatwiło sprawę!
ConstantineK
17

Miałem ten problem również na komputerze z OSX. Odkryłem, że szyny nie zostały zainstalowane ... co mnie zaskoczyło, ponieważ myślałem, że OSX zawsze był dostarczany z Railsami. Aby zainstalować szyny

  • sudo gem install rails
  • aby zainstalować jekyll potrzebowałem również sudo
  • sudo gem install jekyll bundler
  • cd ~/Sites
  • jekyll new <foldername>
  • cd <foldername> OR cd !$ (to jest magia;)
  • bundle install
  • bundle exec jekyll serve
  • Następnie w przeglądarce przejdź do http://127.0.0.1:4000/ i naprawdę powinno działać
MAILO
źródło
Unikaj używania sudodo instalowania klejnotów. To spowoduje ból. Czytaj więcej: thinkbot.com/blog/psa-do-not-use-system-ruby
David Hempy
13

Musisz znajdować się w tym samym katalogu Gemfile

forzagreen
źródło
7

Kiedy miałem podobny problem, gem update --systempomogło mi. Uruchom to wcześniejbundle install

Dzianis Yafimau
źródło
2

Miałem ten problem na Ubuntu 18.04. Zaktualizowałem klejnot

  • Szyny instalacyjne sudo gem
  • sudo gem zainstaluj jekyll
  • sudo gem zainstaluj pakiet jekyll
  • cd ~ / pożądanyFolder
  • jekyll nowy
  • cd LUB
  • pakiet init
  • instalacja pakietu
  • pakiet dodaj jekyll
  • pakiet exec jekyll służyć

Wszystko działało i uruchom przeglądarkę, po prostu przejdź do http://127.0.0.1:4000/ i naprawdę powinno być uruchomione

osmjit
źródło
0

1 upewnij się, że plik jest Gemfilezamiast gemfile.

2 upewnij się, że jesteś w tym samym katalogu, co plik Gemfile.

adam allalou
źródło
-1

Wyszukaj plik Gemfile w swoim projekcie, przejdź do tego katalogu, a następnie uruchom „instalację pakietową”. przed uruchomieniem tego polecenia upewnij się, że zainstalowałeś gem „sudo gem install bundler”

Anant Agarwal
źródło
wykonał „instalację pakietową”, nie rozumiem twojej odpowiedzi
Gar
-10

Pomyśl więcej o tym, co instalujesz i przejdź do folderu Gemfile, a następnie spróbuj użyć sudo bundle install

Ciastko
źródło
2
nigdy nie powinieneś uruchamiać pakietu z sudo
tasomaniac