Saya mengatur aplikasi Rails 4 dengan Ruby 2.0, tetapi saya mendapatkan "Aplikasi web tidak dapat dimulai" dan mendapatkan jejak ini:
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>'
Apache2.conf saya adalah:
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
adalah:
Bundler version 1.3.5
ruby -v
adalah:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem env
adalah:
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
adalah:
/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8
Tidak GEM_PATH
seharusnya /usr/lib/ruby/gems/2.0
?
Di dalam virtual host di apache2.conf saya menambahkan:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8
Dan sekarang sudah berfungsi.
Apakah ini cara yang tepat untuk memperbaikinya?
sumber
sudo
sebenarnya diperlukan? Saya menggunakansudo
tetapi sekarang saya bertanya-tanya apa yang akan terjadi jika saya tidak melakukannya.sudo
!sudo gem ....
akan menginstaldefault
versi permata, dan (dalam kasus saya, Ubuntu 14.04)sudo
tidak dapat menjalankan rvm.sudo
ruby default sistem, tetapi tidak membutuhkannya untuk versi ruby apa pun yang saya instal dengan rvm.gem 2.7.6
danruby 2.5.0p0
apa yang harus dilakukan?Kemungkinan besar Anda memiliki lebih dari satu Ruby yang diinstal.
Jika Anda menggunakan RVM, Anda mungkin perlu menjalankan:
untuk mengatur versi ruby yang akan digunakan.
Lihat http://rvm.io/rubies/default
akan memberi tahu Anda versi yang sedang Anda gunakan.
sumber
Anda dapat mencoba menjalankan:
Seperti @Dinesh disebutkan dalam Rails 5:
sumber
Dalam kasus saya, baris yang ditambahkan ke file konfigurasi apache setelah menginstal penumpang adalah sebagai berikut:
Tetapi aplikasi ini membutuhkan Ruby 2.0.0 sehingga butuh beberapa saat, tetapi akhirnya, kesalahan itu diselesaikan setelah menentukan jalur yang berbeda menggunakan 'PassengerRuby' di bawah, dalam file konfigurasi host virtual Apache untuk aplikasi:
sumber
PassengerDefaultRuby
mengacu pada instalasi lama ruby.Saya mendapatkan kesalahan ini di aplikasi Rails baru dengan bundel yang diinstal dengan benar. Mengomentari permata musim semi di Gemfile menyelesaikan masalah.
sumber
gem install spring
alih-alih berkomentar.Saya mengalami masalah yang sama, tetapi saya pikir itu karena
spring
caching beberapa permata dan konfigurasi. Saya memperbaikinya dengan menjalankangem pristine --all
.Ini mengembalikan permata yang diinstal ke kondisi asli dari file yang terletak di cache permata.
atau Anda bisa mencoba permata Anda
sumber
Ini terjadi di lingkungan produksi untuk saya.
rm /vendor/bundle
kemudian
bundle install --deployment
menyelesaikan masalah.
sumber
Situasi lain yang mungkin: Anda memiliki banyak pengguna yang ditentukan di lingkungan server Anda. Dalam hal ini, berlari
akan memberi Anda perintah yang diperlukan untuk menentukan
nginx/sites-enabled/relevant_application
file Anda dengan use case Anda, contoh:sumber
Saya memiliki masalah yang sama dan mencoba semua jawaban tanpa hasil.
langkah-langkah yang saya lakukan untuk mereproduksi:
rvm instal 2.1.10
rvm gemset create my_gemset
rvm use 2.1.10@my_gemset
bundle install
Namun
bundle install
menginstal Rails, tetapi saya masih punyacannot load such file -- bundler/setup (LoadError)
akhirnya berjalan
gem install rails -v 4.2
memperbaikinyasumber
Versi Bundler mungkin menyebabkan masalah.
Silakan instal bundler dengan nomor versi lain.
Sebagai contoh,
permata instal bundler -v 1.0.10
sumber
gem uninstall -a bundler; gem install bundler -v '<2.0'
.Saya punya ini karena ada sesuatu yang buruk di saya
vendor/bundle
. Tidak ada hubungannya dengan Apache, hanya di dev lokal env.Untuk memperbaikinya, saya menghapus
vendor\bundle
, dan juga menghapus referensi untuknya di saya.bundle/config
sehingga tidak akan digunakan kembali.Kemudian, saya bundel ulang (yang kemudian diinstal ke
GEM_HOME
bukanvendor/bundle
dan masalahnya hilang.sumber
CATATAN: Perusahaan hosting saya adalah Site5.com dan saya memiliki VPS yang Dikelola.
Saya menambahkan variabel env untuk GEM_HOME dan GEM_PATH ke file .htaccess di direktori public_html saya (alias ke direktori publik di aplikasi rails)
Mereka tidak diperlukan sebelumnya sehingga sesuatu pasti telah berubah di sisi tuan rumah. Itu mendapat kesalahan ini setelah menyentuh file restart.txt untuk me-restart server penumpang.
Dapatkan GEM_PATH oleh:
echo $ GEM_PATH
Dapatkan GEM_HOME dengan:
permata id
File .htaccess yang diperbarui dengan baris berikut:
sumber
Bagi saya masalahnya adalah mengaitkan RVM Ruby dengan Penumpang. Jadi saya perlu mengintegrasikan RVM ruby wrapper ke file konfigurasi penumpang.
Saya mencari tahu jalan pembungkus rvm ruby dengan perintah:
Saya mengambil jalur dari hasil dan masuk ke konfigurasi penumpang
nginx/passenger.conf
:sumber
Saya telah memperbaiki masalah itu dengan membuat proyek uji rel dan menginstal semua permata lalu saya mengganti Gemfile saya saat ini. Buka dengan tes dan semua hal bekerja dengan baik.
Saya pikir ini masalah dari
bundler
versi dengan hosting, jadi harap pastikan bahwa hosting bundler adalah versi yang sama dengan proyek Anda.sumber
Dalam situasi saya itu adalah masalah izin:
sumber
Versi versi ruby yang digunakan penumpang phusion berbeda dengan aplikasi rel Anda.
Pastikan versi konfigurasi httpd sama dengan aplikasi rails.
sumber