Potrzebuję uruchomić kilka skryptów ruby, które napisałem na serwerze, do których nie mam dostępu.
Na mojej własnej maszynie, zainstalowałem kilka klejnotów używając "sudo gem install .." i użyłem ich w moim kodzie ..
Czy jest jakiś mechanizm, który pozwoliłby mi użyć tych klejnotów bez formalnego instalowania ich na pilocie maszyna?Używanie klejnotu bez jego instalowania
Odpowiedz
Można je zainstalować w katalogu użytkownika: http://docs.rubygems.org/read/chapter/3#page83
To wygląda na to pozwala zainstalować klejnotów gdziekolwiek chcesz.
Możesz, ale to trudne.
Najpierw należy zainstalować je za pomocą opcji --install-dir
, tj:
gem install gem_name --install-dir /some/directory/you/can/write/to
Po drugie, upewnij się, że masz plik .gemrc
w swoim katalogu domowym, który wygląda mniej więcej tak:
gemhome: /some/directory/you/can/write/to
gempath:
- /some/directory/you/can/write/to
- /usr/local/lib/ruby/gems/1.8
gemhome
jest gdzie klejnoty powinny wyglądać pierwszy, gdy szukają klejnotu. gempath
to wszystkie ścieżki, które należy sprawdzić podczas wyszukiwania klejnotu. Tak więc w powyższym kodzie .gemrc
powiem, że mój kod powinien wyglądać najpierw w katalogu lokalnym, a jeśli nie zostanie znaleziony, sprawdź katalog gem systemu.
Po trzecie, należy pamiętać, że niektóre kody - nawet kod w klejnotach - mogą zawierać założenia dotyczące lokalizacji klejnotów. Niektóre kody mogą programowo zmieniać gempath
lub gemhome
. Być może będziesz musiał "zmienić to z powrotem" we własnym kodzie.
Nie ma zbyt wiele (czytaj: nie) dokumentacji, jak to zrobić - najlepszym sposobem, aby to zrozumieć, jest zapoznanie się z testami dołączonymi do źródła RubyGems. Oto jak ja siekać drogi klejnot w zadaniu natarcia zwrócić do mojego mrożonej wersji Kapistrana:
Gem.use_paths(Gem.dir, ["#{RAILS_ROOT}/vendor/gems"])
Gem.refresh # picks up path changes
I rzeczywiście zrobić to cały czas (wszystkie moje perełki zainstalować w ~ /.gem) i jeszcze nie napotkali żadnego nieprawidłowo działającego kodu, ani nie są dla niego tak trudni. Ale YMMV. – rampion
Interesujące, zastanawiam się, czy ~/.gem jest szczególnym przypadkiem. Zwykle próbuję odwoływać się do klejnotów zainstalowanych w aplikacji. –
- 1. Czy można pobrać klejnotu Ruby bez jego automatycznego instalowania?
- 2. Używanie protobufa google w pythonie bez instalowania go
- 3. Używanie javascript innego klejnotu w silniku Railsowym
- 4. Pobieranie zależności MacPorts bez instalowania
- 5. weryfikuj podpis gpg bez instalowania klucza
- 6. Nie można dodawać wiadomości bez instalowania django.contrib.messages.middleware.MessageMiddleware
- 7. Aplikacja Railsy: używanie klejnotu vs. źródło z Twittera Bootstrapa
- 8. Instalowanie programu PlatformToolset v110 bez instalowania programu Visual Studio 2012
- 9. "BŁĄD: sql.h nie znaleziony" podczas instalowania klejnotu ruby-ODBC na Ubuntu
- 10. Błąd podczas instalowania klejnotu rmagick na RHEL - BŁĄD: Nie udało się zbudować natywnego rozszerzenia gem
- 11. Używanie Phoenix Framework bez Ecto
- 12. Używanie Crashlytics bez wtyczki za pomocą cocoapodów
- 13. Jak odwoływać się do lokalnego klejnotu ze skryptu ruby?
- 14. Używanie pip do instalowania modułów w pytonie ulegającym awarii
- 15. Używanie MSDeploy do instalowania usług Windows z pakietu
- 16. Znajdowanie korzenia klejnotu
- 17. Wydrukuj plik PDF bez jego wizualnego otwierania.
- 18. Manipulowanie obrazem bez usuwania jego danych EXIF
- 19. Jak zastąpić handleUncaughtException bez zmiany jego funkcjonalność
- 20. Lua - Reseting stanu skryptu bez jego reparacji
- 21. Jak skonstruować zadanie bez jego uruchamiania?
- 22. Uzyskiwanie zawartości elementu BEZ jego dzieci
- 23. Emacs: kopiowanie tekstu (bez jego zabicia)
- 24. Jak mogę pobrać najnowsze słoiki Java EE bez instalowania GlassFish?
- 25. Jak zintegrować Zxing bez instalowania aplikacji do skanowania kodów kreskowych?
- 26. Jak uruchamiać pliki Pythona bezpośrednio, bez ich instalowania?
- 27. Uzyskaj czas w milisekundach bez instalowania dodatkowego pakietu?
- 28. Jak wyświetlić listę zależności dla biblioteki Pythona bez instalowania?
- 29. Czy mogę używać oczekiwać w systemie Windows bez instalowania cygwin?
- 30. zainstalować gcc na Mac OSX bez instalowania Xcode
tylko FYI, połączona strona nie działa –