টিএল; ডিআর: কমান্ডটি পুনরায় ইনস্টল বা জারির মাধ্যমে নিশ্চিত করুন যে আরভিএম কমপক্ষে 1.26.11 এর সাথে আপ-টু-ডেট রয়েছে rvm get head
এবং কেবলমাত্র টার্মিনাল পরিবেশে একবারেই এটি আরম্ভ করা হচ্ছে।
ফল
অবশেষে আমি আমার পরিবেশ ঠিক করতে সক্ষম হয়েছি। আমি কারও সাহায্য করার প্রয়াসে আমার নির্দিষ্ট সমস্যা সম্পর্কিত কিছু তথ্য পোস্ট করব, যদিও অন্যদের একই লক্ষণ থাকতে পারে তবে অন্য একটি মূল কারণ হতে পারে।
কারণ
মূল সমস্যার একটি অংশ আরভিএম থেকে আসছিল এবং কীভাবে এটি আমার কমান্ড লাইন পরিবেশের জন্য আরম্ভ করা হয়েছিল। আমি এটি করার জন্য বেশ কয়েকটি ভিন্ন উপায় খুঁজে পেয়েছি, বিশেষ করে fish
শেল পরিবেশের জন্য একটি অতিরিক্ত পদ্ধতি বিশেষভাবে তৈরি করা হয়েছিল ।
মনে হয় মূল কারণটি ছিল:
- আরভিএমকে একাধিকবার ইনিশিয়াল করা হচ্ছে, কারণ আমার একাধিক বক্তব্য ছিল, প্রতি টার্মিনাল কনফিগারেশন ফাইলের একটি এবং সেগুলি কীভাবে বেঁধে রাখা হয়েছিল, আমি অন্যদের সাথে স্বয়ংক্রিয়ভাবে যুক্ত হওয়া সম্পর্কে অবগত ছিলাম না।
- অথবা, কোনওভাবে বিবৃতি যুক্ত করা হয়েছিল যা এক টার্মিনাল পরিবেশের জন্য সূচনা মিশ্রিত করে, বলুন
fish
, এবং আমার অন্যান্য টার্মিনাল পরিবেশে চালিত করা হয়েছিল bash
, বা বিপরীতে। এটি নীচে আমার বিশদগুলিতে দেখা যেতে পারে যেখানে ভাঙা bash
PATH এর কয়েকটি পথগুলি :
গুলি দ্বারা বিভক্ত করা হয়েছে তবে এর পরে অন্যরা স্পেস দ্বারা অন্তর্ভুক্ত করেছে, যা সঠিক সিনট্যাক্স bash
, তবে সঠিক fish
।
- নাকি দুটোই হচ্ছিল!
তারপরে মূল সমস্যার অপর অংশটি হ'ল মনে হয় যে একটি আরভিএম / ডায়রনভ সম্পর্কিত বাগটি ফাঁদ ফাংশনটি সম্পর্কে সম্প্রতি সজ্জিত হয়েছিল। আরভিএমের অন্যান্য সমস্যাযুক্ত রিলিজগুলির মধ্যে একটি হতে পেরে আমি সম্ভবত এটির পুনরায় सामना করেছি:
- একটি পুনরায় ইনস্টলেশন:
curl -sSL https://get.rvm.io | bash
- একটি ম্যানুয়াল আপডেট:
rvm get head
- একটি স্বয়ংক্রিয় আপডেট (যে আমি শুধু করেছে) যোগ করে
rvm_autoupdate_flag=2
করতে~/.rvmrc
এই সমস্যাটি মার্চ 30, 2016 হিসাবে স্থির করা উচিত, বা 1.26.11 প্রকাশ করুন:
গল্পটি
জিএনইউ ইউটিলিটিগুলির সাথে ফাইল সিস্টেমের সম্পূর্ণ অনুসন্ধানের জন্য লড়াই করার পরে, ফাইলের সামগ্রীর ভিতরে উঁকি দেওয়ার পরে আমি এটি আরও বেশি সাফল্যের জন্য ব্যবহার করেছি এবং দেখতে পেলাম যে জাঞ্চি দ্বারা উল্লিখিত ফাইলটিতে ইতিহাসের একমাত্র ঘটনা shell_session_update
পাওয়া গেছে /etc/bashrc_Apple_Terminal
(ইতিহাসের ফাইলগুলি ছাড়াও) এবং যেমন). আমি এটি নিশ্চিত নই যে কেন এটি চালানো হচ্ছে কারণ আমি আইটিার্ম (২) ব্যবহার করছিলাম $TERM_PROGRAM
এবং সেই ক্ষেত্রে এর মানও আছে iTerm.app
এবং তাও নয় Apple_Terminal
।
এটিও সহায়তা করে না যে কোনও কারণে আমাকে আরভিএম ইনস্টলেশনটি একাধিকবার পরিচালনা করতে হয়েছিল, ইনস্টলেশন প্রক্রিয়াটি যাচ্ছিল, যা স্পষ্টতই বেশ কয়েকটি 'ডটফাইলে' কনফিগারেশন যুক্ত করেছে, যেখানে আমি নিজেও কিছু বা লাইন যুক্ত করেছিলাম ।
সেই সাথে আমি একটি .bashrc
ফাইল তৈরি করেছিলাম এবং এটি .bash_profile
আমার ম্যাক থেকে এর সাথে সংযুক্ত করেছিলাম, যেহেতু এটি স্পষ্টতই ডিফল্টরূপে উপস্থিত ছিল না। আমি আগে একটি লিনাক্স সিস্টেমে পড়েছিলাম যে কনভেনশন অনুসারে .bash_profile
কিছু কাস্টমাইজেশনের .bashrc
জন্য ভাল , এবং অন্যের পক্ষে যেমন ব্যবহারকারীর নাম এবং ফাংশন সংজ্ঞায়িত করা বা এর বিপরীতে ভাল। সুতরাং আমি .bash_profile
ফাইলটির অভ্যন্তরে সন্ধান করতে অভ্যস্ত ছিলাম না , এবং বিশেষত .profile
ফাইলটি নয়, সমস্ত ব্যবহারকারীর ডিরেক্টরিতে, একই সিস্টেমটি অনুলিপি করে। আসুন এছাড়াও একটি path_helper
মিশ্রণ (!) এ ভুলে যাবেন না , তবে কোনও সমস্যার ক্ষেত্রে অবদান রাখবেন বলে মনে হয় না।
পরিবেশ স্থাপনের সম্ভাব্য উপায়গুলি, যা সঠিক হতে পারে বা নাও হতে পারে সেগুলি নিম্নরূপ:
আরো বিস্তারিত
আরও অবিশ্বাস্য ভার্বোসিটির জন্য, সমস্যাটি ডিবাগ করার সময় আমি বিভিন্ন পরিবেশের মধ্য দিয়ে নিয়েছি এমন কয়েকটি উদাহরণ পাথ রয়েছে:
আসল (ভাঙা) মাছের পাথ
/ ব্যবহারকারীর / ব্যবহারকারীর নাম / আরভিএম / গেমস / রবি ২.০.০-p648/bin / ব্যবহারকারী / ব্যবহারকারী নাম / আরভিএম / জেমস / রবি ২.০.০-p648@global/bin / ব্যবহারকারী / ব্যবহারকারী //rvm/rubies/ রুবি -০.০.০-পি 8৮৮ / বিন / ইউজার / ব্যবহারকারী নাম / আরভিএম / বিন / ইউএসআর / স্থানীয় / বিন / ইউএসআর / বিন / বিন / ইউএসআর / এসবিন / ইউএসআর / স্থানীয় / মুনকি / ইউজারস / ব্যবহারকারী নাম / আরভিএম / বিন
'প্রাকৃতিকভাবে' আরও ভাল ফ্যাট পাথ
/ ইউএসআর / স্থানীয় / অপ্ট / কোর্টিলস / লিবেক্সেক / জ্ঞানবিন / ইউএসআর / স্থানীয় / অপ্ট / সন্ধানী / বিন / ইউএসআর / স্থানীয় / বিন / ইউএসআর / বিন / বিন / ইউএসআর / এসবিন / এসবিন / ইউএসআর / স্থানীয় / মুনকি
আসল (ভাঙা) ব্যাশ PATH
/libexec/gnubin :/bin:/Uvers/username/.rvm/gems/ruby-2.0.0-p648/bin / ব্যবহারকারী / ব্যবহারকারীর নাম / rvm/gems/ruby-2.0.0-p648@global/bin / ব্যবহারকারী / ব্যবহারকারীর নাম। আরভিএম / রবি / রবি ২.০.০- পি 8৪৮ / বিিন / ব্যবহারকারী / ব্যবহারকারী নাম / আরভিএম / বিন / ইউএসআর / স্থানীয় / বিন / ইউএসআর / বিন / বিন / ইউএসআর / এসবিন / এসবিএন / ইউএসআর / স্থানীয় / মুনকি : /Users/username/.rvm/bin
'ম্যানুয়ালি' ফিক্সড ব্যাশ পাঠ
/libexec/gnubin:/bin:/Users/username/.rvm/gems/ruby-2.0.0-p648/bin:/Users/username/.rvm/gems/ruby-2.0.0-p648@global/bin: /Users/username/.rvm/rubies/ruby-2.0.0-p648/bin:/Users/username/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: /sbin:/usr/local/munki:/Users/username/.rvm/bin:/Users/username/.rvm/bin
'প্রাকৃতিকভাবে' আরও ভাল প্যাশ
, / Usr / স্থানীয় / অপ্ট / coreutils / libexec / gnubin / usr / স্থানীয় / অপ্ট / findutils / বিন / usr / স্থানীয় / অপ্ট / coreutils / libexec / gnubin / usr / স্থানীয় / অপ্ট / findutils / বিন / usr / স্থানীয় / বিন / usr / বিন: / বিন: / usr / sbin: পক্ষ থেকে / sbin / usr / স্থানীয় / munki
নোট:
- সমস্যাটির সময় মূলটি হ'ল উভয় কমান্ড লাইন ইন্টারপ্রেটারে একেবারে নতুন পরিবেশ শুরু করা।
- 'ম্যানুয়াল' অবশ্যই যখন আমি ভুল পথের স্ট্রিং নিয়েছিলাম, সিনট্যাক্স ত্রুটিগুলি স্থির করেছিলাম এবং দোভাষীর আরও সঠিক পরিচালনা করতে দেখেছিলাম, সুতরাং মূল কারণটি স্থির করতে অব্যাহত রাখার সময় আমি কী আশা করব তা জানতাম।
- 'প্রাকৃতিকটি তখন থেকেই ছিল যখন আমি প্রথম আমার টার্মিনাল এনভায়রনমেন্ট কনফিগারেশন ফাইলগুলি
.bashrc
এবং এরকম আরও কিছু লোড করা এড়িয়ে গিয়েছিলাম এবং সমস্যা সমাধানের পরে অবশেষে সেগুলি চালাতে পারি।
shell_session_update
ওএস এক্স দ্বারা ইনস্টল করা একটি বাশ ফাংশন/etc/bashrc_Apple_Terminal
, সুতরাং সম্ভবত বাশ কমান্ডের এমন কিছু যা আরভিএম রান করে এটি আউটপুট হিসাবে উত্পাদন করে।