আমি কেন / কীভাবে এই ত্রুটিটি সমাধান করতে পারি: "শেল_সেশন_আপডেট: আদেশটি পাওয়া যায় নি"


24

পটভূমি

আমি এই পৃষ্ঠায় তালিকাভুক্ত ইন্টিগ্রেশন নিয়োগ করে, ফিশ শেলটি ব্যবহার করে ওএস এক্স এল ক্যাপিটান (10.11.3) ব্যবহার করে ম্যাকবুকে রুবি ২.x, এবং রেলস ৪.x এ যাচ্ছি: আরভিএম - ফিশ শেল ( সংহতকরণ )

সমস্যা

যখন বিভিন্ন কমান্ড নির্বাহ যেমন rvm version, rvm install ..., rvm use ..., rvm --default ..., ইত্যাদি, আমি নিম্নলিখিত ত্রুটির বার্তা:

/var/folders/2w/zhgybz7d25s1gdy41qdxwp48001gfh/T/rvm.fish.Pqd0CuZRJW: shell_session_update: command not found

দ্রুত গুগল অনুসন্ধানে কোনও সম্পর্কিত ফলাফল ফেরত দেয় না যা সমস্যাটি সনাক্ত করতে এবং / বা সমস্যা সমাধানে সহায়তা করবে, যেমনটি আমার অন্যান্য অন্যান্য বিকাশ সেটআপ সমস্যার জন্য কাজ করেছে।

আমি rvm.fishফাংশন ফাইলে, .config/fishডিরেক্টরিতে এবং $HOME/.rvm/bin/rvmমূল নির্বাহযোগ্য ভিতরেও একটি দ্রুত পাঠ্য অনুসন্ধান করেছি , এবং shell_session_updateসেই ফাইলটিতে সরাসরি ডাকা হওয়ার মতো কোনও কমান্ডও দেখিনি ।

প্রশ্ন

কেউ কি জানেন যে এটি কেন ঘটছে, এবং আমি কীভাবে এটি সংশোধন করতে পারি? আমি এমন একজন ব্যক্তি যা আমার সামনে জিনিসগুলি ঠিক করতে পছন্দ করে, যাতে আমার সামনে যে পদক্ষেপ নেওয়ার দরকার তা কেবল আমার সামনে উপস্থিত হয়, তাই আমি এই ত্রুটি / সতর্কতা বার্তাটি সরিয়ে দিতে চাই। :)

পিএস একটি নির্দিষ্ট রুবি সংস্করণ (২.০.০) যা আমি ইনস্টল ও ব্যবহারের চেষ্টা করেছিলাম তা একইভাবে টার্মিনাল (আইটার্ম (২)) সেশনে পুনরায় আরম্ভ না করে যথাযথভাবে কাজ করছে বলে মনে হচ্ছে। আমি তখন থেকে এটি বন্ধ করে দিয়েছি এবং একটি নতুন টার্মিনাল সেশন তৈরি করেছি এবং এখনও পূর্বোক্ত বিভিন্ন কমান্ড চালানোর সময় বার্তাটি উপস্থিত হতে দেখি।


shell_session_updateওএস এক্স দ্বারা ইনস্টল করা একটি বাশ ফাংশন /etc/bashrc_Apple_Terminal, সুতরাং সম্ভবত বাশ কমান্ডের এমন কিছু যা আরভিএম রান করে এটি আউটপুট হিসাবে উত্পাদন করে।
জাঙ্কে

উত্তর:


41

টিএল; ডিআর: কমান্ডটি পুনরায় ইনস্টল বা জারির মাধ্যমে নিশ্চিত করুন যে আরভিএম কমপক্ষে 1.26.11 এর সাথে আপ-টু-ডেট রয়েছে rvm get headএবং কেবলমাত্র টার্মিনাল পরিবেশে একবারেই এটি আরম্ভ করা হচ্ছে।

ফল

অবশেষে আমি আমার পরিবেশ ঠিক করতে সক্ষম হয়েছি। আমি কারও সাহায্য করার প্রয়াসে আমার নির্দিষ্ট সমস্যা সম্পর্কিত কিছু তথ্য পোস্ট করব, যদিও অন্যদের একই লক্ষণ থাকতে পারে তবে অন্য একটি মূল কারণ হতে পারে।

কারণ

মূল সমস্যার একটি অংশ আরভিএম থেকে আসছিল এবং কীভাবে এটি আমার কমান্ড লাইন পরিবেশের জন্য আরম্ভ করা হয়েছিল। আমি এটি করার জন্য বেশ কয়েকটি ভিন্ন উপায় খুঁজে পেয়েছি, বিশেষ করে fishশেল পরিবেশের জন্য একটি অতিরিক্ত পদ্ধতি বিশেষভাবে তৈরি করা হয়েছিল ।

মনে হয় মূল কারণটি ছিল:

  • আরভিএমকে একাধিকবার ইনিশিয়াল করা হচ্ছে, কারণ আমার একাধিক বক্তব্য ছিল, প্রতি টার্মিনাল কনফিগারেশন ফাইলের একটি এবং সেগুলি কীভাবে বেঁধে রাখা হয়েছিল, আমি অন্যদের সাথে স্বয়ংক্রিয়ভাবে যুক্ত হওয়া সম্পর্কে অবগত ছিলাম না।
  • অথবা, কোনওভাবে বিবৃতি যুক্ত করা হয়েছিল যা এক টার্মিনাল পরিবেশের জন্য সূচনা মিশ্রিত করে, বলুন fish, এবং আমার অন্যান্য টার্মিনাল পরিবেশে চালিত করা হয়েছিল bash, বা বিপরীতে। এটি নীচে আমার বিশদগুলিতে দেখা যেতে পারে যেখানে ভাঙা bashPATH এর কয়েকটি পথগুলি :গুলি দ্বারা বিভক্ত করা হয়েছে তবে এর পরে অন্যরা স্পেস দ্বারা অন্তর্ভুক্ত করেছে, যা সঠিক সিনট্যাক্স 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এবং এরকম আরও কিছু লোড করা এড়িয়ে গিয়েছিলাম এবং সমস্যা সমাধানের পরে অবশেষে সেগুলি চালাতে পারি।

rvm get headএবং তারপরে rvm reinstall {version}প্রতিটি সংস্করণের জন্য আমার জন্য ফিক্সিং শেষ হয়েছিল
টমফুয়ের্তেস

1
কার্ল ইনস্টল পদ্ধতিটি ব্যবহার করে:curl -sSL https://get.rvm.io | bash -s head --ruby
'15 এ rynop

এই উত্তরটি সোনার। দরকারী এবং পুঙ্খানুপুঙ্খ।
তেহশ্রাইক

ব্যাশ-গিট-প্রম্পট ইনস্টল করার পরে আমার এই "সমস্যা" হয়েছিল। আরভিএম পুনরায় ইনস্টল করা খুব বেশি নাআহ বলে মনে হয়েছিল । সুতরাং আমি সবেমাত্র <rvm sourcing line>আমার শেষ পর্যন্ত চলে এসেছি .bash_profile। সংশোধন করা হয়েছে।
এডি

আমি সাধারণত দেখতে পেয়েছি যে এখানে অন্য ত্রুটি বার্তাটি রেফারেন্স করা হয়েছে: stackoverflow.com/questions/18276701/… "সতর্কতা! PATH সঠিকভাবে সেট আপ করা হয়নি ”সম্ভবত আপনার অন্য কোথাও স্যোসিং লাইন রয়েছে যা এটি এই সমস্যার সাথে আরও সাদৃশ্য তৈরি করবে? এটি হুবহু বোঝায় না, তবে যে কোনও কিছুই সম্ভব anything
পাইসিস

5

আমারও একই সমস্যা ছিল। পরে আমি দেখতে পেয়েছি যে এর জন্য ইতিমধ্যে আরভিএম রেপোতে একটি সমস্যা উপস্থিত রয়েছে। এবং তারা এটিকে একটি টানার অনুরোধে স্থির করেছে।

এটি ঠিক করতে আরভিএমকে সর্বশেষতম সংস্করণে আপগ্রেড করুন বা এটি বর্তমান বিকাশের সংশোধনকে নির্দেশ করুন।

rvm get head

আরও তথ্যের জন্য এই পোস্টে দেখুন


1
আপনি কি লিঙ্ক থেকে প্রাসঙ্গিক অংশ উদ্ধৃত করতে পারেন? অন্যথায় এটি দেখে মনে হচ্ছে আপনি নিজের ব্লগ প্রচার করার চেষ্টা করছেন।
বুর্গী

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