এ জাতীয় ফাইল লোড করা যায় না - বান্ডলার / সেটআপ (লোডেরর)


128

আমি রুবি ২.০ দিয়ে রেলস 4 অ্যাপ্লিকেশন সেট করছি, তবে আমি "ওয়েব অ্যাপ্লিকেশন শুরু করা যায়নি" এবং এই ট্রেসটি পেয়েছি:

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>'

আমার অ্যাপাচি 2 কনফ:

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

না করা উচিত GEM_PATHহবে /usr/lib/ruby/gems/2.0?

ভার্চুয়াল হোস্টের ভিতরে অ্যাপাচি 2 কনফনে আমি যুক্ত করেছি:

SetEnv GEM_HOME /usr/lib/ruby/gems/1.8

এবং এখন এটি কাজ করছে।

এটি ঠিক করার সঠিক উপায়?

উত্তর:


49

এটি হতে পারে যে আপনার 2.0 এর ইনস্টলেশন পূর্বে আপনার সিস্টেমে কোনও পূর্বের রুবি এনভিটি ইনস্টল করা আছে? এটিতে একটি বিদ্যমান GEM_PATH থাকতে পারে যা /1.8 ডিরেক্টরিতে পরিচালিত করে যা সংস্করণ ২.০ ইনস্টল করা সহজভাবে রেখেছিল।

তখন আপনার সম্ভবত সমস্যাটি ছিল যে প্যাসেঞ্জার / অ্যাপাচি / 2.0 ডিরেক্টরিটি অনুসন্ধান করছে যখন বাস্তবে রত্নগুলি /1.8 ডিরেক্টরিতে ছিল। আপনার স্পষ্টভাবে / 1.8 ডিরেক্টরিটি ব্যবহার করতে অ্যাপাচি বলার ফলে সমস্যাটি সংশোধন করা বোধগম্য হয়।

SetEnv GEM_HOME /usr/lib/ruby/gems/1.8

আপনি রুবি সংস্করণ পরিচালক ব্যবহার করার চেষ্টা করতে পারেন একাধিক রুবি envs পরিচালনা করতে ।

গুগলে আমি কিছু জিনিস পেয়েছি:


202

আমার প্রায় একই স্পষ্ট ত্রুটি ছিল এবং এটি চালিয়ে পুরোপুরি ঠিক করতে সক্ষম হয়েছি:

gem install bundler

আপনার বান্ডলার ইনস্টলেশনটি দূষিত বা অনুপস্থিত সম্ভব - এটি আমার ক্ষেত্রে ঘটেছে। মনে রাখবেন যে উপরেরটি ব্যর্থ হলে আপনি চেষ্টা করতে পারেন:

sudo gem install bundler

... তবে সাধারণত আপনি এটি sudo ছাড়া করতে পারেন।


2
এটা আমি ছিলাম! প্রশ্ন - sudoআসলেই কি প্রয়োজনীয়? আমি ব্যবহার করেছি sudoকিন্তু এখন আমি ভাবছি যে আমি না থাকলে কী হত।
পিট

2
আপনি যদি সিস্টেমের ডিফল্টের চেয়ে রুবির ভিন্ন সংস্করণ ব্যবহার করেন তবে আপনার ব্যবহারের দরকার নেই sudo! রত্নটির সংস্করণ sudo gem ....ইনস্টল করবে defaultএবং (আমার ক্ষেত্রে উবুন্টু 14.04) sudoআরভিএম চালাতে পারবে না।
ফারফ্রুমুনিক

1
আমার ম্যাকোস সিস্টেমে, আমি sudoসিস্টেম ডিফল্ট রুবিয়ের জন্য প্রয়োজন, তবে আমি আরভিএম দিয়ে ইনস্টল হওয়া রুবির কোনও সংস্করণের প্রয়োজন নেই।
বেন ভিসনেস

1
সাম্প্রতিক উইন্ডোজ আপডেটের পরে, লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম ব্যবহার করার জন্য এটিই আমার সমাধান বলে কেবল একটি নোট। কিছু কারণে আপডেটটি আমার আরভিএম রুবি ইনস্টলগুলি উড়িয়ে দিয়েছে।
বেন ফুলটন

1
হাই, আমি সঙ্গে উবুন্টু ব্যবহার প্রশ্নে যেমন একই সমস্যা আছে gem 2.7.6এবং ruby 2.5.0p0কি করতে হবে?
TheCrazyProforter

28

আপনি সম্ভবত একাধিক রুবি ইনস্টল করেছেন।

আপনি যদি আরভিএম ব্যবহার করে থাকেন তবে আপনার সম্ভবত চালানো দরকার:

rvm use system

রুবি ব্যবহার করার জন্য সংস্করণ সেট করতে।

Http://rvm.io/rubies/default দেখুন

ruby -v

আপনি বর্তমানে যে সংস্করণটি ব্যবহার করছেন তা আপনাকে জানাবে।


25

আপনি চালানোর চেষ্টা করতে পারেন:

bundle exec rake rails:update:bin

@ দীনেশ 5 টি কারাগারে উল্লেখ করেছেন:

rails app:update:bin

10

আমার ক্ষেত্রে, যাত্রী ইনস্টল করার পরে অ্যাপাচি কনফিগারেশন ফাইলে যুক্ত লাইনগুলি নিম্নরূপ ছিল:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-.0.24/buildout/apache2/mod_passenger.so 
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.24 
PassengerDefaultRuby /usr/bin/ruby1.8

তবে অ্যাপটির রুবি ২.০.০ প্রয়োজন, সুতরাং এটি আমাকে কিছুটা সময় নিয়েছিল কিন্তু শেষ পর্যন্ত, অ্যাপ্লিকেশনটির জন্য অ্যাপাচি ভার্চুয়াল হোস্ট কনফিগারেশন ফাইলের নীচে, 'যাত্রীবাহী' ব্যবহার করে একটি ভিন্ন পথ নির্দিষ্ট করার পরে ত্রুটিটি সমাধান হয়েছে:

...
VirtualHost *:80>
  ServerName www.yourhost.com

 **PassengerRuby /home/user/.rvm/gems/ruby-2.0.0-p247**
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /somewhere/public    
  <Directory /somewhere/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost...

আমার ক্ষেত্রেও এটি ছিল। আমার ক্ষেত্রে PassengerDefaultRubyরুবি একটি পুরানো ইনস্টলেশন উল্লেখ ছিল।
ওয়াসিম

8

আমি এই ত্রুটিটি সঠিকভাবে ইনস্টল করা বান্ডিল সহ একটি তাজা রেল অ্যাপগুলিতে পেয়েছি। জেমফাইলে বসন্তের রত্নটি মন্তব্য করা সমস্যার সমাধান করেছে।


4
এটি আমার পক্ষে ছিল কিন্তু gem install springমন্তব্য করার পরিবর্তে।
জ্যাকেনবার্গ

3

আমি একই ইস্যুতে দৌড়েছি, তবে আমি মনে করি এটি springকিছু রত্ন এবং কনফিগারেশন ক্যাশে করার কারণে হয়েছিল । আমি দৌড়ে এটি স্থির করেছিgem pristine --all

এটি মণি ক্যাশে থাকা ফাইলগুলি থেকে ইনস্টল করা রত্নগুলিকে প্রাথমিক অবস্থায় পুনরুদ্ধার করে।

অথবা আপনি আপনার রত্নটির মতো চেষ্টা করতে পারেন

gem pristine your_gem_name

1

এটি আমার জন্য উত্পাদনের পরিবেশে ঘটছিল।

rm /vendor/bundle

তারপর bundle install --deployment

সমস্যা সমাধান করুন।


1

অন্যান্য সম্ভাব্য পরিস্থিতি: আপনার সার্ভার পরিবেশে আপনার একাধিক ব্যবহারকারী সংজ্ঞায়িত হয়েছে। সেক্ষেত্রে চলছে

passenger-config --ruby-command

nginx/sites-enabled/relevant_applicationআপনার ব্যবহারের ক্ষেত্রে আপনার ফাইল নির্দিষ্ট করার জন্য প্রয়োজনীয় কমান্ড দেবে :

passenger-config was invoked through the following Ruby interpreter:
Command: /home/other_user/.rbenv/versions/2.4.5/bin/ruby
Version: ruby 2.4.5p335 (2018-10-18 revision 65137) [x86_64-linux]
To use in Apache: PassengerRuby /home/other_user/.rbenv/versions/2.4.5/bin/ruby
To use in Nginx : passenger_ruby /home/other_user/.rbenv/versions/2.4.5/bin/ruby
To use with Standalone: /home/other_user/.rbenv/versions/2.4.5/bin/ruby /usr/bin/passenger start

1

আমার একই সমস্যা ছিল এবং কোনও উত্তর ছাড়াই সমস্ত উত্তর চেষ্টা করেছিলাম।

আমি পুনরুত্পাদন করতে পদক্ষেপগুলি:

  1. rvm instal 2.1.10
  2. rvm gemset create my_gemset
  3. rvm use 2.1.10@my_gemset
  4. bundle install

তবে bundle installরেলগুলি ইনস্টল করা হয়েছে তবে আমি এখনও পেয়েছি cannot load such file -- bundler/setup (LoadError)

অবশেষে চলমান gem install rails -v 4.2এটি স্থির


1

বান্ডিলার সংস্করণ সম্ভবত সমস্যার কারণ হতে পারে।

অন্যান্য সংস্করণ নম্বর সহ বান্ডলার ইনস্টল করুন।

উদাহরণ স্বরূপ,

মণি ইনস্টল বান্ডলার -v 1.0.10


আমার ক্ষেত্রে বান্ডলার v2 ইনস্টল করার পরে এই ত্রুটি ঘটে । আমি এটি দিয়ে সমাধান gem uninstall -a bundler; gem install bundler -v '<2.0'
সার্জিএ

0

আমার এটি ছিল কারণ আমার মধ্যে কিছু খারাপ ছিল vendor/bundle । আপাচে কিছু করার নেই, কেবল স্থানীয় দেব enভির মধ্যে।

ঠিক করার জন্য, আমি মুছে ফেলেছি vendor\bundleএবং এটিতে আমার রেফারেন্সটি মুছে ফেলেছি.bundle/config যাতে এটি পুনরায় ব্যবহার না হয়।

তারপরে, আমি পুনরায় বান্ডিল করেছি (যা তার GEM_HOMEপরিবর্তে ইনস্টল করা হয়েছে vendor/bundleএবং সমস্যাটি চলে গেছে)।


0

দ্রষ্টব্য: আমার হোস্টিং সংস্থাটি সাইট 5.com এবং আমার একটি পরিচালিত ভিপিএস রয়েছে।

আমি আমার পাবলিক_এইচটিএমএল ডিরেক্টরিতে .htaccess ফাইলটিতে (রেলস অ্যাপ্লিকেশনে পাবলিক ডিরেক্টরিতে একটি উপনাম) গেমহোম এবং জিইএমপিএটিএইচ উভয়ের জন্য এনভির ভেরিয়েবল যুক্ত করেছি

তাদের আগে দরকার ছিল না তাই অবশ্যই স্বাগতিকদের দিক থেকে কিছু পরিবর্তন হওয়া উচিত। যাত্রী সার্ভারটি পুনঃসূচনা করতে পুনরায় চালু করার জন্য। Txt ফাইলটি স্পর্শ করার পরে এটি এই ত্রুটিটি পেয়েছে।

GEM_PATH পেয়েছেন:

প্রতিধ্বনি $ GEM_PATH

জেমহোমকে পেয়েছেন:

মণি env

 RubyGems Environment:
   - RUBYGEMS VERSION: 2.0.14
   - RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux]
   - INSTALLATION DIRECTORY: /home/username/ruby/gems
   - RUBY EXECUTABLE: /usr/local/ruby20/bin/ruby
   - EXECUTABLE DIRECTORY: /home/username/ruby/gems/bin
   - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
   - GEM PATHS:
      - /home/username/ruby/gems
      - /usr/local/ruby2.0/lib64/ruby/gems/
   - GEM CONFIGURATION:
      - :update_sources => true
      - :verbose => true
      - :backtrace => false
      - :bulk_threshold => 1000
      - "gem" => "--remote --gen-rdoc --run-tests"
      **- "gemhome" => "/home/username/ruby/gems"**
      - "gempath" => ["/home/username/ruby/gems", "/usr/local/ruby2.0/lib64/ruby/gems/"]
      - "rdoc" => "--inline-source --line-numbers"
   - REMOTE SOURCES:
      - https://rubygems.org/

নিম্নলিখিত লাইন সহ .htaccess ফাইল আপডেট করা:

SetEnv GEM_HOME /usr/local/ruby2.0/lib64/ruby/gems/
SetEnv GEM_PATH /home/username/ruby/gems:/usr/local/ruby20/lib64/ruby/gems/:/home/username/ruby/gems:/usr/

0

আমার জন্য সমস্যাটি ছিল আরভিএম রুবিকে যাত্রীর সাথে যুক্ত করা। সুতরাং আমার আরভিএম রুবি মোড়কটিকে যাত্রী কনফিগারেশনের ফাইলের সাথে সংহত করার দরকার হয়েছিল।

কমান্ড সহ আমি আরভিএম রুবি মোড়কের পথটি সন্ধান করি:

passenger-config --ruby-command

আমি ফলাফলটি থেকে পথ ধরলাম এবং একটি যাত্রী কনফিগারেশনে প্রবেশ করলাম nginx/passenger.conf:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/local/rvm/gems/ruby-2.3.1/wrappers/ruby;

0

আমি পরীক্ষার রেল প্রকল্প তৈরি করে এই সমস্যাটি সমাধান করেছি এবং সমস্ত রত্ন ইনস্টল করেছি তারপরে আমি আমার বর্তমান জেমফিল.লককে পরীক্ষার সাথে প্রতিস্থাপন করেছি এবং সমস্ত জিনিস ঠিকঠাক কাজ করে।

আমি মনে করি যে bundlerহোস্টিং সহ সংস্করণগুলি থেকে এই সমস্যা , সুতরাং দয়া করে নিশ্চিত করুন যে হোস্টিং বান্ডলারটি আপনার প্রকল্পের সাথে একই সংস্করণ।


0

আমার পরিস্থিতিতে এটি অনুমতিগুলির বিষয় ছিল:

 sudo chmod -R +777 <your_folder_path>

-1: ফাইল বা ডিরেক্টরিতে কখনও 777 লাগাবেন না। যদি "মালিক", "গোষ্ঠী" এবং "অন্য" এর মধ্যে বিভক্তি হয়, কারণ এটি একটি সুরক্ষা বিষয়।
ফ্লোরিয়ান দোয়েন

0

রুবি সংস্করণের যে সংস্করণটি ফিউশন যাত্রী ব্যবহৃত হয়েছিল তা আপনার রেল অ্যাপ্লিকেশানের সাথে পৃথক।

<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/passenger-6.0.2
  PassengerDefaultRuby /usr/local/rbenv/versions/2.5.3/bin/ruby
</IfModule>

নিশ্চিত করুন যে রেল অ্যাপ্লিকেশনটির সাথে httpd কনফিগারেশনের সংস্করণটি একই রকম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.