/ ইত্যাদি / প্রোফাইল উত্সাহিত হচ্ছে না


45

11.04 এর জন্য, আমি আমার সিস্টেমে একটি নতুন ইনস্টল করেছি did এই ইনস্টলের অংশটি ছিল rvm ইনস্টল করা , যা একটি স্টিক rvm.shথাকে /etc/profile.d/। এটি /etc/profile(যা প্রতিটি + আর /etc/profile.d/*.shলোড হয় না) কাজ করে না। ডকুমেন্টেশন অনুসারে, ব্যাশ লগইনে চালিত হলেই প্রোফাইলটি উত্সাহিত হয়। এটি যাচাই করতে, আমি অনুরোধ করেছি bash --login, এর পরে rvmপাওয়া গেল।

এটি কোনও কনফিগারেশন ছাড়াই উবুন্টুর পূর্ববর্তী সংস্করণগুলিতে আমার পক্ষে কাজ করেছে। এটি হল, ১০.১০ এর একটি নতুন ইনস্টল সঠিকভাবে প্রোফাইল / .ডি উত্স করবে।

আমার প্রশ্ন হ'ল: আমি কি ভুল করছি এমন কিছু আছে, বা নাট্টিতে এমন কিছু নতুন অনুমান যা ভেঙে গেছে? আমার বর্তমান কার্যসংক্রান্ত হয় source /etc/profileমধ্যে ~/.bashrc(যা ভয়াবহ রূপে প্রোফাইল লোড বোঝানো হয় আগে bashrc, কিন্তু কৌতুক আছে)।

উত্তর:


52

ডিফল্ট হিসাবে, জিনোম-টার্মিনাল লগইন শেল হিসাবে ব্যাশ শুরু করে না (আমি ধরে নিচ্ছি আপনার অর্থ জিনোম-টার্মিনালের অভ্যন্তরে শুরু হয়েছিল)। তার মানে বাশ পড়বে না /etc/profileবা ~/.profile। আপনি যেমনটি সঠিকভাবে পর্যবেক্ষণ করেছেন, লগইন শেল হিসাবে শুরু করা হলে ব্যাশ সেই ফাইলগুলি পড়বে।

আপনার সমস্যার দ্রুত সমাধান হ'ল লগইন শেল হিসাবে ব্যাশ শুরু করতে জিনোম-টার্মিনালটি কনফিগার করা যাতে এটি পড়তে পারে /etc/profile। এটি করতে আপনাকে জিনোম-টার্মিনালে "প্রোফাইল পছন্দগুলি" সম্পাদনা মেনু থেকে পৌঁছাতে সক্ষম "লগইন শেল হিসাবে রান কমান্ড" সক্ষম করতে হবে।

আমি এই কাজ করা হয়েছে কারণ এটি মধ্যে পার্থক্য টা বাজিয়েছে সুপারিশ করি না ~/.profileএবং ~/.bashrc~/.profileলগইন চলাকালীন শুধুমাত্র একবারে প্রয়োজনীয় জিনিসগুলি আদর্শভাবে করা উচিত, যখন ~/.bashrcপ্রতিটি বার শুরু করা দরকার তখন স্টাফ করা উচিত।

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

আপনার সমস্যার বিবরণ থেকে মনে হচ্ছে লগইন করার সময় আরভিএম স্ক্রিপ্টটি একবারে লোড করা দরকার। আমি যতদূর জানি উবুন্টু গ্রাফিকাল লগইনটি পড়ার জন্য /etc/profile/এবং কনফিগার করেছে ~/.profile। তার মানে, একবার লগ আউট এবং একবার লগ ইন করার পরে, আরভিএম স্ক্রিপ্টটি সক্রিয় হওয়া উচিত। যদি এটি এখনও কাজ না করে, তবে সম্ভবত প্রতিটি বাশ সেশনের জন্য আরভিএম স্ক্রিপ্টটি লোড করা দরকার। যদি এটি হয় bashrcতবে স্ক্রিপ্টের জন্য আরও উপযুক্ত জায়গা।


'লগইন শেল হিসাবে রান কমান্ড' সেট করা প্রকৃতপক্ষে লোড হয়েছিল /etc/profile(এবং এইভাবে .d এর)। ব্যাখ্যার জন্য ধন্যবাদ - দেখে মনে হচ্ছে এর জন্য আরভিএম লোকের সাথে অনুসরণ করা দরকার।
মার্ক

7
উবুন্টু 11.04 লগইন পড়ার /etc/profileএবং পড়ার ~/.profileসময় বলে মনে হচ্ছে না । এটি আশ্চর্যজনক কারণ এটি সর্বদা পুরানো সংস্করণগুলির সাথে কাজ করে। আমি মনে করি এটি কোনও সমাধান নয় বরং একটি কর্মচঞ্চল।
লুকা

2
@ লেসমানা কি কোনও উপায় আছে যা আমি জিআইআই এর পরিবর্তে সি এল এল থেকে "লগইন শেল হিসাবে রান কমান্ড" সক্ষম করতে পারি? আমি একটি রিমোট সার্ভারে ছিটিয়েছি এবং স্থানীয়ভাবে এক্স ফরোয়ার্ড করতে পারি না।
ওয়াসিম

5

তবে, এমন একটি ফাইল রয়েছে /etc/bash.bashrc যা জিনোম-টার্মিনাল দ্বারা পঠিত এবং এটি "ইন্টারেক্টিভ বাশ (1) শেলগুলির জন্য সিস্টেম-ওয়াইড .bashrc ফাইল।"

আরভিএম ফাংশনে আমার কল [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm", সেখানে গিয়েছিল, এবং সেই সিস্টেমে থাকা বেশ কয়েকটি ব্যবহারকারীদের জন্য ঠিক কাজ করে।


জিনোম-টার্মিনাল বাছাই করে কিছুই করে না। জিনোম-টার্মিনাল ইন্টারঅ্যাকটিভ মোডে বাশ (বা আপনার লগইন শেলটি পাসডাব্লুড ডাটাবেসে সেট করা যাই হোক না কেন) চালায় এবং ব্যাশ ইন্টারেক্টিভভাবে পড়া শুরু করে /etc/bash.bashrc। ঠিক আছে, কমপক্ষে ডেবিয়ান / উবুন্টুতে। বাশ সাধারণত একটি সিস্টেম প্রশস্ত বাশার্ক পড়ে না; ডিবিয়ান এটি করতে প্যাচ করেছে।
গিরিহা

@geirha: দিমিত্রি @ ইওস: ame ame আনামে-লিনাক্স ইওস 3.0.0-16-জেনেরিক # 29-উবুন্টু এসএমপি মঙ্গল মঙ্গলবার 12:48:51 ইউটিসি 2012 x86_64 x86_64 x86_64 জিএনইউ / লিনাক্স দিমিত্রি @ ইওএস: $ বিড়াল / etc / bash.bashrc # ইন্টারেক্টিভ ব্যাশ (1) শেলগুলির জন্য সিস্টেম-প্রশস্ত .বাশার্ক ফাইল। # লগইন শেলগুলির জন্যও এই ফাইলে সেটিংস / কমান্ড সক্ষম করতে, # এই ফাইলটি / ইত্যাদি / প্রোফাইলে উত্সাহিত করতে হবে। # যদি ইন্টারেক্টিভভাবে চলতে না থাকে তবে কিছু না [-z "$ PS1"] && ফেরত করুন .....
দিমিত্রি

2
হ্যাঁ, স্পষ্টতই, জিনোম-টার্মিনাল বাশকে সেই ফাইলটি পড়ার জন্য অনুরোধ করে: আপনার শেলটি যদি ksh হয়, তবে জিনোম-টার্মিনাল সেই ফাইলটি পড়বে না, তাই না? আপনি "ধরণের কিছুই করেন না" এর মতো উস্কানিমূলক বাক্যাংশ ব্যবহার করা চালানোর আগে অভিধানে "পেডেন্ট" শব্দটি সন্ধান করার পরামর্শ দিতে পারি May
দিমিত্রি

4

আরভিএমকে মাল্টিউজার হিসাবে ইনস্টল করতে ব্যবহারকারীর এই কমান্ডটি চালানো দরকার:

(কারণ উবুন্টু লগইনটিতে /etc/profile.d উত্স দেয় না)

echo '[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh" # Load RVM function' >> ~/.bashrc

3
/etc/profile.d/লগ-ইন করার সময় উবুন্টু ফাইলগুলি উত্স করে কারণ /etc/profileডিফল্টগুলি লুপ করে, এবং উত্সগুলিতে, ফাইলগুলি /etc/profile.d/। যাইহোক, যদি rvm.shএটিতে ইন্টারেক্টিভ শেলগুলির জন্য ফাংশন বা অ্যালিয়াসগুলির মতো কোড থাকে তবে সেগুলি উত্সাহিত করা /etc/profileঅর্থহীন। ইন্টারেক্টিভ বাশ সেশনের জন্য সেটআপ থাকা আবশ্যক .bashrc
গিরিহা


0

আমি আসলে তাদের জন্য খুঁজে পেয়েছি যারা নিখুঁতভাবে নিম্নলিখিতগুলির প্রয়োজন না হলে তাদের বাক্সগুলি পুরোপুরি পুনরায় চালু করতে পছন্দ করে না ...

পরিবর্তনগুলি /etc/profileকার্যকর করতে আপনাকে পুরো মেশিনটি পুনরায় চালু করতে হবে না । আপনার কেবলমাত্র আপনার এক্স উইন্ডো ডেস্কটপ জিইউআই পুনরায় চালু করা দরকার যাতে এটি কনফিগগুলি পুনরায় পাঠ করে (যেমন এটি যদি সিস্টেম-ওয়াইড পুনঃসূচনা করার অংশ হিসাবে শুরু করা হত)।

আমার জন্য আমি xUbuntu ব্যবহার করি যা লাইটডিএম ব্যবহার করে তবে আপনি যে কোনও এক্সিকিউটেবলকে আপনার বর্তমান ডেস্কটপ ডেকে আনতে পারেন।

প্রথমত, আপনি ডেস্কটপ জিইউআই এর ভিতরে থেকে নিজেই কোনও টার্মিনাল এমুলেটর ব্যবহার করতে পারবেন না (অন্তত লাইটডিএম দিয়ে নয়) আপনাকে এসএসএইচ বা একটি সেকেন্ডারি কনসোল ব্যবহার করতে হবে (যদি আপনি সিটিআরএল + আল্ট ধরে থাকেন এবং কোনও এফ কী বা নম্বর কী চাপান) আপনার গ্রাফিকাল ডেস্কটপ লগইন বা পর্দাটি একটি সরল টার্মিনাল উইন্ডোতে ফেলে দেওয়া উচিত)। আমি আপনাকেও পরামর্শ দিচ্ছি যে আপনি যদি কোনও এসএনএইচ ব্যবহার করে থাকেন তবে ভিএনসি-র মতো কোনও দূরবর্তী ডেস্কটপ স্টাফ বন্ধ করে দিন (স্পষ্টতই এসএসএইচ সংযুক্ত হতে পারে আপনি কেবল একটি খোলা ভিএনসি উইন্ডোটি পোলিং ডিসপ্লে 0 হিসাবে দেখতে চান না যখন এটি পুনরায় চালু করার চেষ্টা করার সময় এটি পুনরায় চালু হতে পারে) এটি আপনার ভিএনসি সেশনটি শেষ করার জন্য অপেক্ষা করে)।

আমি এসএসএইচ এর সাথে সর্বদা এটি করি এবং এটি একটি বড় জীবনধারণকারী বিশেষত যখন আপনি নিজের মেশিন দ্বারা শারীরিকভাবে না থাকেন এবং পুরো পুনরায় আরম্ভের জন্য অপেক্ষা করতে এবং পুনরায় সংযোগ করার মতো মনে করেন না :- ডি

এখন "মাধ্যমিক" টার্মিনাল বা এসএসএইচ ইস্যুতে একবার সহজ অংশ: (হ্যাঁ, এটি আপনার বর্তমান অধিবেশনটিকে মেরে ফেলবে, নিশ্চিত হন যে আপনি আপত্তি করবেন না, কোনও খোলা নথি বা কাজ সংরক্ষণ করুন)

sudo service lightdm restart

এক মিনিট অপেক্ষা করুন এটি ডেস্কটপটিকে হত্যা করার সাথে সাথে আবার এটি শুরু করে (জিনিসগুলি বন্ধ হয়ে যাওয়ার পরে এটি শুরু করতে আবার বেশ কয়েকটি কার্যকর সময় নিতে পারে)

এটি এখন, আপনি যখন কনসোল 0-এ ফিরে যান বা আপনি আবার সংযোগের জন্য ভিএনসি ব্যবহার করতে যান আপনি লগইন প্রম্পট দ্বারা অভ্যর্থনা জানানো হবে এবং স্বাভাবিক হিসাবে লগইন করবেন এবং যদি আপনি একটি টার্মিনাল এমুলেটর খোলেন এবং আপনার আদেশটি জারি করতে হবে এখন আপনার উচিত কোনও সমস্যা নেই কারণ সমস্ত কিছু পুনরায় উত্সাহিত করা ঠিক যেমন আপনি একটি সম্পূর্ণ মেশিন পুনঃসূচনা করেছেন।

কেবল মনে রাখবেন, আপনি যদি ডেস্কটপ পরিবেশের মধ্যে থেকে sudo service lightdm restart[বা stop, startযাই হোক না কেন] একটি টার্মিনাল এমুলেটর ব্যবহার করে কমান্ডটি কেবল সেখানে স্থির থাকে এবং কিছুই ঘটছে বলে মনে হয় না। কারণ আপনি বর্তমানে সেই কনসোলটি ব্যবহার করছেন (ওরফে ডিসপ্লে) 0 এবং সুতরাং এটি সম্পূর্ণরূপে নীচে নেমে ফিরে আসতে পারে না কারণ এটি কমান্ডটি চালানোর আগে ডেস্কটপটি ব্যবহার না হওয়ার জন্য অপেক্ষা করছে।

শেষ দ্রষ্টব্য: আমি টার্মিনাল এমুলেটরটিতে ডেস্কটপ থেকে পরিবেশের পুনরায় আরম্ভ করার চেষ্টা করিনি এবং তারপরে আবার চালু হতে পারে এমন একটি অন্য কনসোলে স্যুইচ করতে চেষ্টা করি নি, তবে আপনি যদি ইতিমধ্যে কনসোল পরিবর্তন করতে চলেছেন তবে কেন কেবল কমান্ডটি চালাবেন না? সেখান থেকে যেভাবে হওয়া উচিত?


-4

প্রতিধ্বনি "।। প্রোফাইল" >> ~ / .bashrc

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


1
ডিফল্ট .profileউত্স থেকে .bashrc, এর ফলে বেশিরভাগ ব্যবহারকারীর জন্য লুপ হবে in
مورু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.