রুবিকে কীভাবে GEM_HOME এবং GEM_PATH সেট করবেন


10

আমি লিনাক্সের একটি নবীন ব্যবহারকারী এবং লিনাক্স পুদিনা 17.1 ব্যবহার করছি

আমি এই ইস্যুটির জন্য লিনাক্স মিন্টকে গত 3 দিনে 20 বার পুনরায় ইনস্টল করেছি তবে এটি ঠিক করতে পারিনি

আমি আরভিএম ব্যবহার করে রেলগুলিতে রুবি ইনস্টল করার চেষ্টা করছি যা ঘটেছিল তা হল যদি কোনও নতুন লিনাক্স ইনস্টলেশন শুরু করেন এবং একটি টার্মিনাল সেশনে রত্ন এবং রুবি এবং স্টাফ ইনস্টল করার চেষ্টা করুন এটি টার্মিনাল সেশনটি বন্ধ করার সাথে সাথে এটি সফলভাবে ইনস্টল হয়ে গেছে তবে আমি সেই রত্নগুলি পাব না ।

গত 3 দিনে 20 বার এটি পুনরায় ইনস্টল করে আমি ওয়েবেও অনুসন্ধান করেছি। আমাকে সেই পরিবেশের পরিবর্তনশীল রাখতে বলা হয়েছিল /etc/environmentআমি সেই অধিবেশনটির প্রতিধ্বনি করে এবং /etc/environmentফাইলটিতে এটি আটকালাম ।

এখনও আমি আমার ইনস্টল করা রত্ন পাই না

যখন আমি টাইপ rvm -vকরি আমি নিম্নলিখিত ত্রুটিগুলি পাই

Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see:
    https://github.com/wayneeseguin/rvm/issues/3212

Warning! PATH is not properly set up, $GEM_HOME is not set,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

টার্মিনালের সাথে কাজ করার সময় আমি খুব শিক্ষানবিশ ব্যক্তি, আমি রুবীর সাথে কাজ করার জন্য কয়েকটি বেসিক কমান্ড চালাতে পারি।

আমি জানতে চাই

  1. কীভাবে PATH সেট করবেন
  2. কীভাবে জিইএমহোম সেট করবেন
  3. কীভাবে GEM_PATH সেট করবেন

নীচে আমার পুরো পথ রয়েছে

echo $PATH
/home/sharif/.rvm/gems/ruby-2.2.2/bin:/home/sharif/.rvm/gems/ruby-2.2.2@global/bin:/home/sharif/.rvm/rubies/ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin

মিঃ @ মোহসেন পাহলেঞ্জাজেস আমি জিজ্ঞাসা করতে পারি যে এই দুটি লাইন মুছে ফেলার অর্থ কী, যদি আপনি আমাকে বলতে বলতে মন চান না, শুভেচ্ছা
আমজাদ

যদি আমি সঠিক মনে রাখি তবে আপনি শুভেচ্ছা লিখেছিলেন বা আপনাকে ধন্যবাদ জানায়
ফারসি গল্ফ

উত্তর:


18

আপনার মতো exportপরিবেশ পরিবেশের ভেরিয়েবল সেট করার জন্য কমান্ডটি চান :

export PATH=$PATH':/path/to/add'
export GEM_HOME=$HOME/.gem
export GEM_PATH=$HOME/.gem

যদিও এটি কেবলমাত্র বর্তমান অধিবেশনে কার্যকর হবে। এগুলিকে আরও স্থায়ী করতে, আপনার লাইনগুলিকে যুক্ত করুন ~/.bashrc


3

সাধারণত এর অর্থ হল যে আরভিএম সঠিকভাবে সেটআপ হয় না। সাধারণ ভুলটি হ'ল আপনি নিজের .bashrcসঠিকভাবে (বা অনুরূপ) সংশোধন করেননি বা আপনি আপনার টার্মিনালটি পুনরায় লোড করেননি।

আরভিএম ব্যবহার করার সময় আপনাকে ম্যানুয়ালি GEM_Home বা GEM_PATH সেট করা উচিত নয়।

আপনি এটি চেষ্টা করে source ~/.rvm/scripts/rvmদেখতে পারেন এবং এটি কাজ করে কিনা।

এটি এমনও হতে পারে যে আপনি এখনও কোনও রত্ন তৈরি করেন নি। আরভিএম এবং সুডো ব্যবহার করবেন না। আপনার অ্যাকাউন্টে পিঁপড়া সিস্টেম বিস্তৃত নয় এ ইনস্টল করার সময় আরভিএম সেরা কাজ করে।


এছাড়াও আপনি যোগ করতে পারেন source ~/.rvm/scripts/rvmআপনার টু ~/.bashrcনিশ্চিত করুন যে এটি প্রত্যেক সময় আপনি একটি নতুন শেল শুরু লোড হয় না।
নিল ডি ওয়েট

2

এখানে আমি কী শিখেছি এবং কীভাবে আমি জেমহোম এবং জেমপ্যাথ এনভায়রনমেন্ট ভেরিয়েবলগুলির আপাতদৃষ্টিতে সাধারণ সমস্যাটি সমাধান করেছি তা ত্রুটি সেট করে না।


পটভূমি

আরভিএম ইনস্টলটি সেটআপ করা প্রতিটি আরভিএমের জন্য জেমহোম এবং জিইএমপিএটিএন এনভি ভার্স তৈরি করার কথা রয়েছে এবং এটি তা করে। তবে সম্ভবত একটি বাগ রয়েছে যা কিছু ক্ষেত্রে এনভ ভার্স কেবল অস্থায়ীভাবে সেট করা থাকে এবং সেগুলি পুনরায় সেট করতে আপনাকে সেগুলি কমান্ড লাইনের সাথে সেট করতে হবে। এনভিভি ভার্সনগুলি আরভিএমের জন্য অবিচল থাকার জন্য আমি একটি কার্যপ্রণালী পেয়েছি।

কার্যসংক্রান্ত

  1. আপনার সক্রিয় (আরভিএম-এ) রুবি সংস্করণটি সন্ধান করুন: আপনার প্রোডাকশন সার্ভারে আপনার অ্যাপ ডিরেক্টরিতে যান এবং টাইপ করুন $rvm list। এটি রুবি সংস্করণ ইনস্টল করা এবং আরভিএমের জন্য কোনটি সক্রিয় সেগুলির একটি তালিকা তৈরি করবে। প্রতিক্রিয়া উদাহরণ:

    rvm rubies ruby-1.9.3-p547 [ x86_64 ] => ruby-1.9.3-p551 [ x86_64 ]

সুতরাং, আমি জানি যে আরভিএম বর্তমানে সংস্করণ ব্যবহার করছে ruby-1.9.3-p551। পরবর্তী পদক্ষেপের জন্য আপনার এই তথ্য দরকার।

  1. জেম্পাথ এবং জিইএম_হোমের জন্য পাথগুলি পান : আপনি কমান্ড লাইন থেকে সম্পাদন করে এটি করেন $rvm use ruby-1.9.3-p551। তারপরেও কমমান লাইন থেকে কমান্ডটি ব্যবহার করে সমস্ত পরিবেশ সেটিংস প্রদর্শন করা হবে env। জেমপ্যাট এবং জিইএমহোম অনুসন্ধান করুন এবং তাদের সম্পূর্ণরূপে এগুলিকে একটি ওয়ার্কস্পেসে অনুলিপি করুন।

    GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

  2. জেমহোম এবং জেমপ্যাথ এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট করুন : এখন এই প্রোফাইল ভেরিয়েবলগুলি অনেকগুলি প্রোফাইল ফাইলে একটিতে সেট করুন। আমি আরভিএম সংস্করণ বিচ্ছিন্নতা কাঠামো বজায় রাখতে চেয়েছিলাম, তাই আমি এই দুটি লাইনের সাথে / প্রোফাই.ড / অ্যাপস্পেসিফিক.শ আপডেট করেছি:

    export GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551


স্পষ্টতই GEM_Home এবং GEM_PATH আরভিএমের সাথে নির্দিষ্ট নয়?
বারলপ

2

আমি দেখতে পেয়েছি যে। প্রোফাইল শেষের দিকে লোড হয়ে যায় এবং সেই পথের সামনে ~ / .local / bin এবং and / বিন রাখে। আমি /etc/profile.d/rvm.sh কে ~ / .rvm এ স্থানান্তরিত করেছি এবং। প্রোফাইলের একেবারে শেষে আমি "উত্স ~ / .rvm / rvm.sh" যুক্ত করেছি এবং ত্রুটিটি চলে গেছে। আমি লিনাক্স মিন্টে 18.3 এ আছি। আমার কাছে পাইয়নভ, আরভিএম এবং এসডিকেম্যান ইনস্টল আছে এবং তারা সবাই শেষ হতে চায়। তারা সবাই এখন ঠিকঠাক কাজ করছে। :)

যদি এটি একটি ভাগ করা সিস্টেম থাকে তবে rvm.sh কে পথের বাইরে কোথাও সরিয়ে নিয়ে যায় এবং অন্য কোনও ব্যবহারকারী এটি উত্স হিসাবে দেখতে পারেন, যেমন /opt/rvm/rvm.sh থেকে।


1

ভালো লেগেছে @coteyr উল্লেখ করা হয়েছে, আপনি নিজে সেট করা উচিত নয় GEM_HOME এবং GEM_PATH যখন ব্যবহার rvm। যদি আপনি আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলটি পরীক্ষা করে চালিয়ে যান $ echo $PATHএবং OME HOME / .rvm / bin এর অংশ হয়ে থাকে, তবে আপনাকে নিশ্চিত করতে হবে যে আপনার টার্মিনালটি লগইন শেল হিসাবে কমান্ডগুলি চালাচ্ছে । উদাহরণস্বরূপ আপনি যদি উবুন্টু মেশিনে থাকেন তবে আপনি আপনার টার্মিনালটি খুললে তারপরে যান: মেনু> সম্পাদনা> প্রোফাইল পছন্দসমূহ> কমান্ডের পরে "লগইন শেল হিসাবে কমান্ড চালান" নির্বাচন করুন

এটি একটি পুরানো সমস্যা বলে মনে হচ্ছে rvmযার সাথে আমি ধরে নিয়েছি এটি সংশোধন করা তুচ্ছ নয় কারণ এটি প্রায় কিছুকাল ধরে চলেছে।


1

$GEM_PATHআমার সিস্টেমে (মানজারো / আর্চ) জনসংখ্যার জন্য gemsআমি আমার সাথে যুক্ত করেছি .bashrc:

for _entry in /usr/lib/ruby/gems/*; do
  if [[ -d $_entry ]]; then
    # TODO: Add only if not there already
    export GEM_PATH=$_entry:$GEM_PATH
  fi
done
unset _entry
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.