বিভিন্ন বিকল্পের সাথে অনেক পরীক্ষার পরে আমি উপসংহারে পৌঁছেছি:
বিভিন্ন উপায়ে (যেমন শেল স্ক্রিপ্ট, ফাইন্ডার এবং স্পটলাইট) দ্বারা চালু করা অ্যাপ্লিকেশনগুলির জন্য সেট সেট করার জন্য কি একীভূত উপায় আছে PATH? ভাল, হ্যাঁ এবং না:
- না :
PATHশেল স্টার্ট আপ স্ক্রিপ্টগুলিতে সেট করা (উদাঃ .bashrc) কেবল শেল দ্বারা চালিত অ্যাপ্লিকেশানের জন্য কাজ করে।
- না : মাধ্যমে
PATHবর্তমান launchdপ্রক্রিয়াটির জন্য সেট করা launchctl setenv PATH <...>আমার পক্ষে মোটেই কার্যকর হয় না।
- হ্যাঁ : সেট
PATHমধ্যে /etc/launchd.conf(এবং সিস্টেম পুনরায় চালু) উপযুক্ত করতে হবে PATHস্পটলাইট, ডক এবং ফাইন্ডারে এবং পরবর্তীকালে (স্থানীয়) শাঁস চালু অ্যাপ্লিকেশন দৃশ্যমান।
- না : দূরবর্তীভাবে অনুরোধ করা শেলগুলি পরিবেশের উত্তরাধিকারী হয় না । (দেখুন ... কেন ssh এর মাধ্যমে দূরবর্তী শেলগুলি পরিবেশের উত্তরাধিকারী নয় .. )
শেল সেট আপ করার জন্য নোট:
স্থানীয় শেলগুলিতে সঠিক ক্রিয়াকলাপের জন্য এটির ব্যবহারটি বন্ধ করা গুরুত্বপূর্ণ /usr/libexec/path_helper, কারণ ডিফল্ট পাথগুলিতে পাথগুলির /etc/pathsক্রম পরিবর্তন হতে পারে PATH* **
মিটমাট করার জন্য দূরবর্তী শাঁস আপনি পুনরায় আমদানি প্রয়োজন launchdশেলে পরিবেশ। আপনার এইরকম কিছু ব্যবহার করুন .bashrc:
# the vexatious path stuff
eval $(launchctl export)
পুরো ইস্যুর দুর্ভাগ্যজনক পরিণতিগুলি হ'ল:
- কোনও ব্যবহারকারী ভিত্তিতে এই ইউনিফাইড সেটিংসের কোনও উপায় নেই। (
~/.launchd.confকাজ করে না।)
- হোম ডিরেক্টরি সম্প্রসারণ এবং অন্যান্য জাতীয় প্রযুক্তি ব্যবহার করে বিভিন্ন উত্স থেকে PATH নির্মানের কোনও সহজ উপায়।
/etc/launch.confকরে না (আমি ধরে নিই কারণsshdএটির পরিবেশটি তার পিতামাতার কাছ থেকে প্রাপ্তlaunchdসন্তানের শেলের কাছে উত্তরাধিকারসূত্রে উত্তীর্ণ হয় না )) - আমি সেই অনুযায়ী উত্তর সম্পাদনা করব।