মাউন্টেন সিংহে আমি কীভাবে এক জায়গায় সেট করব, সমস্ত নতুন চালু হওয়া অ্যাপ্লিকেশনগুলির জন্য PATH পরিবেশ পরিবর্তনশীল?


9

আস্ক ডিফারেন্টে PATHএনভায়রনমেন্ট ভেরিয়েবল এবং শেল দ্বারা চালিত অ্যাপ্লিকেশনগুলির জন্য এটি কীভাবে সেট করা যায়, স্পটলাইট দ্বারা বা ফাইন্ডারের মাধ্যমে কীভাবে সেট করা যায় সে সম্পর্কে অনেক প্রশ্ন রয়েছে (সাধারণ প্রশ্ন: ফাইন্ডার-লঞ্চ করা অ্যাপ্লিকেশনগুলির জন্য PATH কীভাবে সেট করা যায় বা কীভাবে PATH পরিবেশ পরিবর্তনশীল পরিবর্তন করতে হয়)। .. )।

উত্তর থেকে পরিসীমা shপ্রারম্ভে স্ক্রিপ্ট থেকে /etc/pathsথেকে /etc/launchd.conf। এখানে আমি ম্যাক ওএস এক্স মাউন্টেন সিংহ 10.8.2 এর অধীনে সমস্ত অ্যাপ্লিকেশনের একীভূত সেটিংয়ের উত্তরের পরে আছি PATH

উত্তর:


14

বিভিন্ন বিকল্পের সাথে অনেক পরীক্ষার পরে আমি উপসংহারে পৌঁছেছি:

বিভিন্ন উপায়ে (যেমন শেল স্ক্রিপ্ট, ফাইন্ডার এবং স্পটলাইট) দ্বারা চালু করা অ্যাপ্লিকেশনগুলির জন্য সেট সেট করার জন্য কি একীভূত উপায় আছে PATH? ভাল, হ্যাঁ এবং না:

  • না : PATHশেল স্টার্ট আপ স্ক্রিপ্টগুলিতে সেট করা (উদাঃ .bashrc) কেবল শেল দ্বারা চালিত অ্যাপ্লিকেশানের জন্য কাজ করে।
  • না : মাধ্যমে PATHবর্তমান launchdপ্রক্রিয়াটির জন্য সেট করা launchctl setenv PATH <...>আমার পক্ষে মোটেই কার্যকর হয় না।
  • হ্যাঁ : সেট PATHমধ্যে /etc/launchd.conf(এবং সিস্টেম পুনরায় চালু) উপযুক্ত করতে হবে PATHস্পটলাইট, ডক এবং ফাইন্ডারে এবং পরবর্তীকালে (স্থানীয়) শাঁস চালু অ্যাপ্লিকেশন দৃশ্যমান।
  • না : দূরবর্তীভাবে অনুরোধ করা শেলগুলি পরিবেশের উত্তরাধিকারী হয় না(দেখুন ... কেন ssh এর মাধ্যমে দূরবর্তী শেলগুলি পরিবেশের উত্তরাধিকারী নয় .. )

শেল সেট আপ করার জন্য নোট:

  1. স্থানীয় শেলগুলিতে সঠিক ক্রিয়াকলাপের জন্য এটির ব্যবহারটি বন্ধ করা গুরুত্বপূর্ণ /usr/libexec/path_helper, কারণ ডিফল্ট পাথগুলিতে পাথগুলির /etc/pathsক্রম পরিবর্তন হতে পারে PATH* **

  2. মিটমাট করার জন্য দূরবর্তী শাঁস আপনি পুনরায় আমদানি প্রয়োজন launchdশেলে পরিবেশ। আপনার এইরকম কিছু ব্যবহার করুন .bashrc:

# the vexatious path stuff
eval $(launchctl export)

পুরো ইস্যুর দুর্ভাগ্যজনক পরিণতিগুলি হ'ল:

  • কোনও ব্যবহারকারী ভিত্তিতে এই ইউনিফাইড সেটিংসের কোনও উপায় নেই। ( ~/.launchd.confকাজ করে না।)
  • হোম ডিরেক্টরি সম্প্রসারণ এবং অন্যান্য জাতীয় প্রযুক্তি ব্যবহার করে বিভিন্ন উত্স থেকে PATH নির্মানের কোনও সহজ উপায়।

আপডেট: মাধ্যমে PATH নির্ধারণ করা ssh এর মাধ্যমে দূরবর্তীভাবে লগ ইন করা শেলগুলির জন্য কাজ /etc/launch.confকরে না (আমি ধরে নিই কারণ sshdএটির পরিবেশটি তার পিতামাতার কাছ থেকে প্রাপ্ত launchdসন্তানের শেলের কাছে উত্তরাধিকারসূত্রে উত্তীর্ণ হয় না )) - আমি সেই অনুযায়ী উত্তর সম্পাদনা করব।
হলোলিও

রিমোট শেলগুলির সমাধান সহ উত্তর আপডেট হয়েছে।
হলোলিও

1
দুর্দান্ত উত্তর; নিম্নরূপ আপনি launchd পরিবেশের গুন প্রক্রিয়া সহজ করতে পারেন: eval "$(launchctl export)"
mklement0

সম্পাদনা করার একটি সহজ উপায় /etc/launchd.confহ'ল সবে চালানো sudo -e /etc/launchd.conf(যদি আপনি vi এর সাথে পরিচিত হন) বা EDITOR=nano sudo -e /etc/launchd.conf(আপনি যদি কোনও নন-মডেল সম্পাদক পছন্দ করেন)।
নোহিলসাইড

3

পূর্ববর্তী উত্তরটি প্রসারিত করার জন্য , পথটি পরিবর্তনের জন্য /etc/launchd.conf, আপনাকে নিম্নলিখিতগুলি করতে হবে।

  1. আপনার প্রশাসকের অধিকার রয়েছে তা নিশ্চিত করুন।

  2. আপনার প্রয়োজনীয়তার সাথে মানিয়ে নেওয়ার জন্য নিম্নলিখিত সামগ্রীগুলির সাথে একটি নতুন পাঠ্য ফাইল তৈরি করুন:

    setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin
    
  3. এটি সংরক্ষণ করুন আপনার home ডিরেক্টরিতে যেমন launchd.conf

  4. টার্মিনাল.এপ (বা আপনার প্রিয় বিকল্প) খুলুন এবং টাইপ করুন:

    sudo mv ~/launchd.conf /etc

    আপনার sudoকমান্ডটির আগের ব্যবহারের উপর নির্ভর করে আপনি "আপনি যা করছেন সে সম্পর্কে সতর্কতা অবলম্বন করুন" বার্তাটি পেতে পারে তবে কোনওভাবেই আপনাকে নিজের পাসওয়ার্ডটি প্রবেশ করতে হবে। সমস্ত কমান্ড হ'ল ফাইলটি /etcডিরেক্টরিতে স্থানান্তরিত করা হয় , উদাহরণস্বরূপ, টেক্সটএডিটে কোনও ফাইল সংরক্ষণ করার সময় এটি সরাসরি অ্যাক্সেসযোগ্য নয়। sudo("সুপার ইউজার ডিও" এর জন্য সংক্ষিপ্ত) ব্যবহৃত হয় কারণ সেই ডিরেক্টরিতে লেখার জন্য প্রশাসকের সুযোগ সুবিধাগুলি প্রয়োজন।

  5. আপনার কম্পিউটারটি পুনরায় বুট করুন।

এবং আপনি সব প্রস্তুত করা উচিত। শুভকামনা!


বিশদগুলির জন্য ধন্যবাদ, তবে প্রশ্নটি কীভাবে সংশোধন করা যায় সেগুলি সম্পর্কে নয়launchd.conf , বরং সমস্ত অ্যাপ্লিকেশন কীভাবে একীভূত উপায়ে একই প্যাথটি ভেরিয়েবল পাবে তা সম্পর্কে।
হলিও

ঠিক আছে, তবে আমি মূলত PATHআমার জিইউআই অ্যাপ্লিকেশনগুলির জন্য কীভাবে সেট করতে হবে তা নির্ধারণের চেষ্টা করার জন্য প্রশ্নটি অনুসন্ধান করেছিলাম এবং আমি বুঝতে পেরেছিলাম যে এই
দুর্বলরা

আপনার এখানে একটি বৈধ পয়েন্ট রয়েছে; তবুও, আমি মনে করি উত্তরে আপনার তথ্য সংহত করা ভাল বিকল্প। - আমি মনে করি এই মন্তব্য থ্রেডটি একটি মেটা আলোচনায় পরিণত হয়েছে, তাই আমি অতিরিক্ত উত্তর দিয়ে কী করব
হলিও

1
আসলে, এটি মেটা.এপল.স্ট্যাকেক্সচেঞ্জ.কম এ থাকা উচিত নয়?
ম্যাটডিমো

প্রকৃতপক্ষে, meta.apple.stackexchange.com সঠিক জায়গা হত। আমি কেবল এটি জানতাম না যে এটি বিদ্যমান ...
হোলিওলিও

-2

আপনি https://github.com/ersiner/osx-env-sync ব্যবহার করে দেখতে পারেন ।

এটি একক উত্স থেকে কমান্ড লাইন এবং জিইউআই অ্যাপ্লিকেশন উভয়ই পরিচালনা করে । এবং এটি ওএস এক্স (ইয়োসেমাইট) এর সর্বশেষতম সংস্করণে কাজ করে ।


যা কেবল অন্য উত্তরটি বিটটি ব্যবহার করে স্বয়ংক্রিয়ভাবে ব্যবহার করে যা বলে যে কাজ করে না যেমন লঞ্চক্টেল সেটেনভ পথ <...>
ব্যবহারকারী 151019

@ মার্ক এর উত্তরের স্বয়ংক্রিয় পদক্ষেপগুলির সাথে এর কোনও যোগসূত্র নেই। এটি একটি লঞ্চ এজেন্ট ব্যবহার করে। আমি আপনাকে চেষ্টা করে দেখুন।
এরসিন এর

গৃহীত সমাধানটি launchdসিস্টেমটিও ব্যবহার করে । আপনার সমাধানটিতে গৃহীত উত্তরে বর্ণিত একই সমস্যা রয়েছে।
হলিওলিও

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