বিভিন্ন বিকল্পের সাথে অনেক পরীক্ষার পরে আমি উপসংহারে পৌঁছেছি:
বিভিন্ন উপায়ে (যেমন শেল স্ক্রিপ্ট, ফাইন্ডার এবং স্পটলাইট) দ্বারা চালু করা অ্যাপ্লিকেশনগুলির জন্য সেট সেট করার জন্য কি একীভূত উপায় আছে 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
সন্তানের শেলের কাছে উত্তরাধিকারসূত্রে উত্তীর্ণ হয় না )) - আমি সেই অনুযায়ী উত্তর সম্পাদনা করব।