Ogólnie pojęta instalacja gemów i pluginów

Mam pytanie odnośnie instalacji gemów i pluginów. W railsowej aplikacji mam folder \vendor\plugins. I jak np. moja aplikacja korzysta z will_paginate to pliki tego pluginu powinny znaleźć się w tym folderze żeby to działało potem na hostingu?? jak i czy w ogóle można doinstalować gem/plugin do projektu a nie tylko do ogólnego zbioru gemów/pluginów na kompie?? tylko poproszę o wyjątkowo łopatologiczną odpowiedź :smiley: z góry dziękuję.

PS. a tak już podając przykłady to chodzi mi o paperclipa i will_paginate.

Pluginy instalujesz tylko w danym projekcie i są one w katalogu o którym wspomniałeś, więc kopiując ten katalog na hosting razem z całą aplikacją masz ze sobą wszystkie używane pluginy.
A gemy są instalowane nie na projekt, tylko na cały system.

Dlatego jak coś używasz zawsze, to instaluj jako gem. A jak użyjesz czegoś tylko do jednego projektu, to jako plugin

czyli jak zainstaluję sobie gema nie wrzucając tych plików do vendor/plugins to i tak później na hostingu będzie mi to działać??

Niekoniecznie - musisz się upewnić, że dany gem jest zainstalowany na maszynie, na której masz hosting. Najpopularniejsze gemy są zazwyczaj dostępne, ale gdyby był problem, to zazwyczaj zgłoszenie requesta do admina skutkuje zainstalowaniem odpowiedniego gema.

Najłatwiej zarządzać gemami w projekcie poprzez gem bundlera.

  1. Zainstaluj sobie bundlera: sudo gem install bundler

  2. Stwórz plik “Gemfile” w katalogu projektu. Zobacz: http://gist.github.com/264623

  3. Dodaj gem do “config/environment.rb”. Zobacz: http://gist.github.com/264624

  4. Uruchom “gem bundle” w katalogu projektu

  5. Jeśli Twój hosting nie pozwala na uruchomienie na serwerze “gem bundle” to dodaj cały katalog “vendor/bundler_gems” do repozytorium (pamiętaj: musisz to zrobić po każdej zmianie gemów)

  6. Jeśli gemy mają “native extensions” upewnij się, że zbudowane rozszerzenia są kompatybilne z architekturą na serwerze.

  7. Wszystko co nie działa jako gem wrzucaj do pluginów za pomocą: ./script/plugin install NAZWA_lub_ŚCIEŻKA

Pozdrawiam :slight_smile:

Dziękuję za wyczerpującą odpowiedź, jednak widzę że podajesz “sudo”… Ja pracuję na windows 7 :smiley: czy to coś zmienia??

W windowsie sudo Cię nie dotyczy

czy ten plik gemfile to ma być z rozszerzeniem *.rb czy bez żadnego rozszerzenia?? I jeśli można wiedzieć to co dokładnie robi nam sudo??

[quote]2) Stwórz plik “Gemfile” w katalogu projektu. Zobacz: http://gist.github.com/264623

  1. Dodaj gem do “config/environment.rb”. Zobacz: http://gist.github.com/264624[/quote]
    tu masz wszystko napisane. Zauważ, że Pr0d1r2 w przypadku pliku config/environment.rb użył rozszerzenia, a w przypadku Gemfile nie.
    Jeśli wciąż niejasne proponuję zajrzeć do readme dostępnego tu: http://github.com/wycats/bundler (strona znaleziona tutaj: http://www.google.com/search?&q=gem+bundler )

Informacje na temat sudo znajdziesz tutaj: http://pl.wikipedia.org/wiki/Sudo a także tutaj: http://www.gratisoft.us/sudo/intro.html

Miłego wieczoru :slight_smile:

ok, dzięki.

gdy próbuję zainstalować sobie przez cmd w windzie paperclipa w ten sposób: ruby script/plugin install git://github.com/thoughtbot/paperclip.git to wywala mi błąd:

C:>ruby script/plugin install git://github.com/thoughtbot/paperclip.git
ruby: No such file or directory – script/plugin (LoadError)

co to znaczy?? ja wiem że on jakby nie zna tej komendy ale dlaczego?

bo w windows masz \ a nie /

to nie ma związku. wszystkie inne komendy ruby działają z /, a ta co podałem to nie działa i tak i tak.

wydaj polecenie w katalogu projektu (tam gdzie masz podfolder script i w nim plik plugin), nie w C:

no i teraz działa, dzięki :smiley: