Estou configurando o aplicativo Rails 4 com Ruby 2.0, mas estou obtendo "O aplicativo da Web não pôde ser iniciado" e obtém esse rastreamento:
cannot load such file -- bundler/setup (LoadError)
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:96:in `preload_app'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:150:in `<module:App>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:28:in `<main>'
Meu apache2.conf é:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19
PassengerDefaultRuby /usr/local/bin/ruby
bundle -v
é:
Bundler version 1.3.5
ruby -v
é:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem env
é:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/lib/ruby/gems/1.8/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /root/.gems/bin
- /usr/lib/ruby/gems/1.8/bin/
- /usr/local/bin
- /usr/bin
- /bin
- /usr/bin/X11
- /usr/games
- /usr/sbin
- /sbin
echo $GEM_PATH
é:
/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8
Não deveria GEM_PATH
ser /usr/lib/ruby/gems/2.0
?
Dentro do host virtual no apache2.conf, adicionei:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8
E agora está funcionando.
É o caminho certo para corrigir isso?
fonte
sudo
realmente necessário? Eu usei,sudo
mas agora estou me perguntando o que teria acontecido se não tivesse.sudo
!sudo gem ....
instalará adefault
versão da gem e (no meu caso, Ubuntu 14.04)sudo
não pode executar o rvm.sudo
do ruby padrão do sistema, mas não precisava de nenhuma versão do ruby que eu instalei com o rvm.gem 2.7.6
eruby 2.5.0p0
o que fazer?Você provavelmente tem mais de um Ruby instalado.
Se você estiver usando o RVM, provavelmente precisará executar:
para definir a versão do ruby a ser usada.
Consulte http://rvm.io/rubies/default
dirá a versão que você está usando no momento.
fonte
Você pode tentar executar:
Como o @Dinesh mencionado no Rails 5:
fonte
No meu caso, as linhas anexadas ao arquivo de configuração do apache após a instalação do passageiro foram as seguintes:
Mas o aplicativo requer Ruby 2.0.0, então demorei um pouco, mas finalmente, o erro foi resolvido após a especificação de um caminho diferente usando 'PassengerRuby' abaixo, no arquivo de configuração do host virtual Apache para o aplicativo:
fonte
PassengerDefaultRuby
estava se referindo a uma instalação antiga de ruby.Eu recebi esse erro em um aplicativo Rails novo com o pacote instalado corretamente. Comentar a jóia da primavera no Gemfile resolveu o problema.
fonte
gem install spring
vez de comentar.Corri para o mesmo problema, mas acho que foi devido ao
spring
cache de algumas gemas e configurações. Corrigi-o executandogem pristine --all
.Isso restaura as gemas instaladas em perfeitas condições a partir dos arquivos localizados no cache da gema.
ou você pode apenas tentar sua gema como
fonte
Isso estava acontecendo no ambiente de produção para mim.
rm /vendor/bundle
então
bundle install --deployment
resolveu o problema.
fonte
Outra situação possível: você possui vários usuários definidos no ambiente do servidor. Nesse caso, executando
fornecerá o comando necessário para especificar seu
nginx/sites-enabled/relevant_application
arquivo com seu caso de uso, exemplo:fonte
Eu tive o mesmo problema e tentei todas as respostas sem sorte.
etapas que fiz para reproduzir:
rvm instal 2.1.10
rvm gemset create my_gemset
rvm use 2.1.10@my_gemset
bundle install
no entanto
bundle install
instalado Rails, mas eu ainda tenhocannot load such file -- bundler/setup (LoadError)
finalmente correndo
gem install rails -v 4.2
corrigi-lofonte
A versão do Bundler pode causar o problema.
Instale o bundler com outro número de versão.
Por exemplo,
gem install bundler -v 1.0.10
fonte
gem uninstall -a bundler; gem install bundler -v '<2.0'
.Eu tive isso porque algo ruim estava na minha
vendor/bundle
. Nada a ver com o Apache, apenas no ambiente de desenvolvimento local.Para corrigir, apaguei
vendor\bundle
e também apaguei a referência a ele no meu,.bundle/config
para que não fosse reutilizada.Em seguida, agrupei novamente (que foi instalado no
GEM_HOME
lugar dovendor/bundle
e o problema foi resolvido.fonte
NOTA: Minha empresa de hospedagem é Site5.com e eu tenho um VPS gerenciado.
Adicionei variáveis env para GEM_HOME e GEM_PATH ao arquivo .htaccess no meu diretório public_html (um alias para o diretório público no aplicativo rails)
Eles não eram necessários antes, então algo deve ter mudado no lado do host. Ele recebeu esse erro depois de tocar no arquivo restart.txt para reiniciar o servidor de passageiros.
Obteve GEM_PATH por:
eco $ GEM_PATH
Obtenha o GEM_HOME por:
gem env
Arquivo .htaccess atualizado com as seguintes linhas:
fonte
Para mim, o problema estava associando o RVM Ruby ao Passenger. Então, eu precisava integrar o RVM ruby wrapper ao arquivo de configuração do passageiro.
Descobri o caminho do wrapper rvm ruby com o comando:
Peguei o caminho do resultado e entrei em uma configuração de passageiro em
nginx/passenger.conf
:fonte
Corrigi esse problema criando um projeto de trilhos de teste e instalando todas as gemas, depois substituí meu Gemfile.lock atual pelo teste e tudo funciona bem.
Eu acho que esse problema
bundler
ocorre nas versões com hospedagem, portanto, verifique se o bundler de hospedagem é a mesma versão do seu projeto.fonte
Na minha situação, era questão de permissões:
fonte
A versão da versão ruby usada pelo passageiro phusion é diferenciada com o aplicativo rails.
Verifique se a versão no httpd config é a mesma com o aplicativo rails.
fonte