Szyny na pasażera nie rozpoznającego RVM
Przeniosłem do ree używając rvm przez:
rvm use ree@mygemset
I zainstalowany Kaminari gem poprzez Gemfile i bundle install.
Ale wydaje się, że Phusion nadal szuka klejnotu w domyślnym katalogu systemu. Pisze:
Error message:
Could not find kaminari-0.10.4 in any of the sources (Bundler::GemNotFound)
Co mi umyka? Rails potrzebuje konkretnej konfiguracji, aby rozpoznać aktualną wersję ruby i gemset, którego używam?? 4 answers
Musisz poinstruować pasażera, aby załadował RVM, a następnie skonfigurował środowisko dla gemsetu. Najprostszy sposób na to polega na trzech krokach:
-
Utwórz plik
.rvmrc
: w katalogu głównym Twojego projektu rails Utwórz plik o nazwie.rvmrc
, który zawiera polecenie RVM, którego użyjesz do załadowania gemsetu. Na przykład:rvm use ree@gemset
-
Zaufaj plikowi
.rvmrc
: po wdrożeniu nowego pliku.rvmrc
na serwerze Zmień katalogi do twojego projektu rails. RVM powinien zapytać, czy chcesz zaufać swojemu pliku.rvmrc
; po prostu postępuj zgodnie z instrukcjami i wpiszyes
, gdy zostanie zapytany. Jeśli znak zachęty nie jest wyświetlany, użyj następującego polecenia, aby zaufać.rvmrc
:rvm rvmrc trust
Uwaga: Jeśli chcesz automatycznie zaufać wszystkim
.rvmrc
s, wystarczy dodać:rvm_trust_rvmrcs_flag=1
Do Twojego osobistego lub systemowego rvmrc (
~/.rvmrc
i/etc/rvmrc
, odpowiednio). -
Poleć pasażerowi skonfigurowanie RVM environment : poinstruuj pasażera, aby załadował RVM i użył gemsetu w swoim pliku
.rvmrc
, tworząc nowy plik w katalogu Railsconfig
o nazwiesetup_load_paths.rb
(więcconfig/setup_load_paths.rb
W sumie). Plik powinien zawierać zawartość https://gist.github.com/870310 :if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm') begin rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME'])) rvm_lib_path = File.join(rvm_path, 'lib') $LOAD_PATH.unshift rvm_lib_path require 'rvm' RVM.use_from_path! File.dirname(File.dirname(__FILE__)) rescue LoadError raise "RVM ruby lib is currently unavailable." end end # This assumes Bundler 1.0+ ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__)) require 'bundler/setup'
Teraz po ponownym uruchomieniu aplikacji (
touch tmp/restart.txt
) powinieneś być gotowy do pracy.
Powinieneś zauważyć, że pasażer może uruchamiać tylko jedną wersję Ruby na raz; jeśli pasażer został skonfigurowany pod czymś innym niż ree, prawdopodobnie będziesz musiał ponownie zainstalować pasażera i / lub ponownie skrypt wrapper generuje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-21 11:57:42
Tylko dodatkowa uwaga do kroku 3 z oznaczonego (Broandon ' S) odpowiedzi, ponieważ nie udało mi się uruchomić Pasażera3 używając tych kodów.
Komunikat o błędzie jest następujący:
*** Phusion Passenger: no passenger_native_support.bundle found for the current Ruby interpreter. Compiling one...
# mkdir -p /Users/jerry/.rvm/gems/ruby-1.9.3-p194@xxx/gems/passenger-3.0.18/ext/ruby/ruby-1.9.3-x86_64-macosx
# cd /Users/jerry/.rvm/gems/ruby-1.9.3-p194@xxx/gems/passenger-3.0.18/ext/ruby/ruby-1.9.3-x86_64-macosx
Unable to locate the RVM path. Your RVM installation is probably too old. Please update it with 'rvm get head && rvm reload && rvm repair all'.
Odnosząc się do komunikatu "nie można zlokalizować ścieżki RVM", sprawdziłem dokumentację RVM https://rvm.io/integration/passenger/
Edycja config / setup_load_paths.rb do tego:
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
begin
gems_path = ENV['MY_RUBY_HOME'].split(/@/)[0].sub(/rubies/,'gems')
ENV['GEM_PATH'] = "#{gems_path}:#{gems_path}@global"
require 'rvm'
RVM.use_from_path! File.dirname(File.dirname(__FILE__))
rescue LoadError
raise "RVM gem is currently unavailable."
end
end
# If you're not using Bundler at all, remove lines bellow
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'
Problem rozwiązany!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-28 05:56:32
Podążałem za sugerowaną odpowiedzią i przesunęła mnie do przodu, ale potem dostałem komunikat o błędzie:
Pasażer ma teraz klejnot. Moim błędem było nie instalowanie go w wersji ruby i gemset używałem. Kiedyś to zrobiłem. - wszystko działało słodko.RVM-integracja z Rubim została wyodrębniona do oddzielnego gem, powinna być zainstalowana domyślnie > z RVM, usuń linię
$LOAD_PATH.unshift
i wszystko powinno być znowu w porządku. Odwiedź https://rvm.io/integration/passenger Po Więcej Szczegółów. (RuntimeError)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-04 21:11:07
Usuń plik config/setup_load_paths.rb
dla pasażera 4. To nie jest potrzebne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-02 15:03:18