Używam Ruby 2.1 i Rails 4.1 na Windows 7. Ilekroć uruchamiam bundle install
, wszystkie klejnoty są instalowane w ścieżce systemowej c:/Ruby21/lib/ruby/gems/2.1.0/gems/
. Znalazłem także katalog vendor
w moim projekcie.Czy należy instalować klejnoty ruby w repozytorium systemowym (globalnie) lub dostawcy/pakiecie projektu (lokalnie)?
Jadąc z PHP composer i node.js npm tle, wszystkie zależności powinny być zainstalowane lokalnie w folderze projektu vendor
lub node_modules
folderu. Moje pytania to:
- Czy należy instalować klejnoty w ścieżce systemowej lub
vendor/bundle
? - Jeśli w ścieżce systemowej powinny być zainstalowane wszystkie klejnoty lub niektóre klejnoty, w jaki sposób może wpłynąć na środowisko produkcyjne, w którym nie mam dostępu do powłoki?
- Czy wszystkie klejnoty lub określone klejnoty powinny być zainstalowane w
vendor/bundle
? - Jak zainstalować klejnoty w wersji
vendor/bundle
?
Myślę, że jest nieco źle skomunikowane, że 'bundle exec' jest wymagany i dlaczego jest wymagany, dlatego ludzie zwykle myślą, że zależności powinny być zainstalowane w folderze projektu. Również większość innych menedżerów pakietów (kompozytor, npm, altana itd.) Robi to, więc różne wspólne wzorce mogą być również mylące. –
Nie rozumiem o tym, że "w poleceniu zawsze powinieneś stosować komendy gem z' bundle exec' ". – Sithu
@Sithu zobacz [to pytanie i odpowiedź] (http://stackoverflow.com/questions/6588674/what-does-bundle-exec-rake-mean). W skrócie, upewnia się, że po wykonaniu polecenia pochodzącego z gem, wywoływana jest poprawna wersja zdefiniowana w Gemfile. Jest ważne, jeśli masz kilka wersji tego samego klejnotu zainstalowanego w systemie. Z reguły za każdym razem, gdy wykonujesz polecenie w kontekście twojego projektu, powinieneś poprzedzać go 'bundle exec'. – p4sh4