OS X 10.6 স্নো চিতাবাঘে AT PATH কোথায় সেট হবে?


139

আমি echo $PATHকমান্ড লাইনে টাইপ করে পেয়েছি

/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin

আমার .bash_loginফাইলটি খালি থাকায় এটি কোথায় সেট হচ্ছে তা আমি ভাবছি ।

আমি বিশেষত উদ্বিগ্ন যে, ম্যাকপোর্টগুলি ইনস্টল করার পরে এটি একগুচ্ছ জাঙ্ক ইন ইনস্টল করেছে /opt। আমি মনে করি না যে ডিরেক্টরিটি একটি সাধারণ ম্যাক ওএস এক্স ইনস্টলের ক্ষেত্রেও বিদ্যমান।

আপডেট: আমার বক্তব্য সংশোধন করার জন্য জিতিমারম্যানকে ধন্যবাদecho $PATH


5
এসএমসিক্যান্ডলিশের মন্তব্য :easiest solution when you want to make a site-wide path change (e.g. to include /usr/libexec or whatever) is to edit /etc/paths . While the new /etc/paths.d/ thing is functional, it's actually more hassle than maintaining a single file. As others have hinted but not spelled out, if the path changes you want would be useful only for one user, it's best to make that change in the bash and/or tcsh config files in that user's home directory instead of system-wide.
ভাট

@ সাথ্যা, মনে হচ্ছে এটি /etc/paths.dইনস্টলেশন স্ক্রিপ্টগুলির জন্য আমার পক্ষে কার্যকর। যদি আমি চাই যে আমার ইনস্টলেশন স্ক্রিপ্টটি ইনস্টলড প্রোগ্রামটিকে সেই পথে যুক্ত করতে পারে তবে আমি একটি ফাইল এতে ফেলে দিতে পারি /etc/paths.d। আমি যদি ম্যানুয়ালি পাথ সম্পাদনা করতে চাই তবে /etc/pathsএটি একটি ভাল বিকল্প।
হাইডেনমুহল

আমি বেশিরভাগ এই পোস্টের উপর ভিত্তি করে একটি স্ক্রিপ্ট তৈরি করেছি, যা দ্রুত এই একাধিক অবস্থানের সাথে যেখানে PATH সংজ্ঞায়িত করা হয়েছে তা মুদ্রণ করে: gist.github.com/lopespm/6407349952bc8a1ff8fb
পেড্রো লোপস

উত্তর:


161

যখন bashশুরু হয় এটি প্রতিবার আপনি লগইন করে নিচের ফাইলগুলি পড়েন। ওএস এক্সের উদ্দেশ্যে, এর অর্থ প্রতিবার আপনি একটি নতুন Terminalউইন্ডো খুলবেন ।

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

আপনি যখন bashকমান্ড লাইনে টাইপ করে একটি নতুন শেল শুরু করেন, এটি পড়ে.bashrc

ওএস এক্স ~/.MacOSX/environment.plistআরও প্রয়োজনীয় পরিবেশের ভেরিয়েবল সেট করতে ব্যবহার করে, প্রয়োজনে পাথ সহ।

অবশেষে, /etc/pathsএবং /etc/paths.dখুব শেল দ্বারা পড়া হয়।


/opt/local/binইত্যাদি ~/.tcshrcম্যাকপোর্টস দ্বারা যুক্ত করা হয়। অবশ্যই সন্ধান করুন ~/.cshrc


5
স্পষ্টতই, ~/.MacOSX/environment.plistকিছু লোকের জন্য কাজ করে না। ইন OS X এর জন্য পথ পরিবর্তন ফোল্ডারের ব্যবহার করে একটি বিকল্প /etc/paths.dবর্ণনা করা হয়েছে। আমি এটা পরীক্ষা করিনি।
আরজান

জন্য +1 ~/.cshrc। বাদাম কেন ~/.profileকাজ করছে না তা জানার চেষ্টা করছে।
tomlogic

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

আমার মনে .bashrcহয় আপনি টাইপ করেন bashবা না লিখে নির্বিঘ্নে পড়া হয় ।
জিয়াও পেং - ZenUML.com

48

ফাইলটি /etc/pathsব্যবহার করুন /usr/libexec/path_helperযা দ্বারা ব্যবহৃত হয় তা একবার দেখুন /etc/profile

ম্যাকপোর্টস এর জন্য, sudo /etc/paths/opt/local/binটার্মিনাল উইন্ডোটি ব্যবহার করুন এবং আবার খুলুন।


25

গুরুতরভাবে, চিতাবাঘ আমাদেরকে পথ জুড়তে একটি নতুন উপায় দিয়েছে। আপনি যে পথের অংশটি যুক্ত করতে চান তাতে কেবল একটি ফাইল তৈরি করুন এবং এটি /etc/paths.d- এ রেখে দিন

এক ধাপে এটি করার একটি দ্রুত উদাহরণ হ'ল:

echo "/some/path/to/add" >> /etc/paths.d/somefilename

অন্যথায়, আপনি কেবল /etc/paths.d এ গিয়ে ফাইলটি সরাসরি সেখানে রাখতে পারেন। যে কোনও উপায়ে, সেই ডিরেক্টরিতে থাকা ফাইলগুলির যে কোনও পাথ অংশগুলি ডিফল্ট পথে সংযুক্ত হবে।

এটি মানপথের জন্যও কাজ করে।

আরও তথ্যের লিঙ্কটি এখানে:

আরস টেকনিকা: আমি কীভাবে তুষার চিতাবাঘের মধ্যে কিছু কিছু যুক্ত করব?

২ য় নোটে: ম্যাকপোর্টস সবকিছু ঠিকভাবে অপ্ট ডিরেক্টরিতে রাখে কারণ এটি অ্যাপলের স্টাফ দ্বারা ব্যবহৃত হয়নি। এইভাবে এটি বিরোধ করবে না। তাদের গাইডের (দুর্দান্তভাবে লেখা, বিটিডাব্লু) এটি কেন অপ্ট ব্যবহার করে এবং যদি আপনি চান তবে এটি ডিফল্টটি কীভাবে পরিবর্তন করবেন তার একটি ব্যাখ্যা রয়েছে।

ম্যাকপোর্টস গাইড


খুব ঠান্ডা. এখন আমাদের কেবল সেই পথ নির্ভর অ্যাপ্লিকেশনগুলি আমাদের প্রোফাইল ফাইলগুলিকে আর দূষিত করতে হবে ...
ড্যানিয়েল বেক

ভাল লাগবে। সরল!
অ্যান্ড্রু হেজেস

এসএমসিক্যান্ডলিশের মন্তব্য :I have to concur that there's nothing weird or bad about MacPorts using /opt (likewise Fink uses /sw); trying to replace stock Mac BSD parts with bleeding-edge builds from external projects like these is a recipe for an unusable system that requires an OS reinstallation.
ভাট

একক লাইন, ফাইলগুলিতে সংযোজন নেই এবং সহজে সরানো। এটা খুবই পছন্দ করি. ধন্যবাদ লেন
ইব্রাহিম

4

আপনার পথ দেখানোর জন্য, প্রতিধ্বনি $ PATH।

echo $PATH

আপনার পথ নির্ধারণ করতে, সম্পাদনা করুন ~/.bash_profile, না ~/.bash_login


3

Ssh দ্বারা নির্ধারিত পথটিও রয়েছে

তুলনা echo $PATHকরার জন্য ssh localhost 'echo $PATH'। যেহেতু ssh / etc / প্রোফাইল পড়েন না, / usr / lixec / path_helper চালিত হয় না এবং এভাবে / ইত্যাদি / পাথগুলি এড়িয়ে যায়। এখন চেষ্টা করুন ssh localhost 'source /etc/profile; echo $PATH'। পথগুলি আরও কাছাকাছি হওয়া উচিত। বাকী পার্থক্য সম্ভবত আপনার .bash_profile (যা ssh দ্বারা এড়িয়ে যায়) এবং .bashrc (যা এসএসএস দ্বারা পড়া হয়) এর পথে পরিবর্তনের কারণে হবে be

আপনি যদি চান যে আপনার ssh পথটি আপনার সাধারণ টার্মিনাল পাথের অনুরূপ হয় তবে source /etc/profileআপনি আপনার .bashrc এ যুক্ত করতে পারেন ।


ইঙ্গিতটির জন্য ধন্যবাদ! আমি ssh সহ সমাধানটি ঠিক খুঁজছিলাম। এসএনএন + এসএসএসএনভিএন কমান্ডটি ঠিক সন্ধান করতে পারেনি কারণ এসএনএনভিজারের পথটি প্রফাইলে ছিল, কিন্তু .বাশার্কে ছিল না।
KIR

2

এটি সংজ্ঞা দেওয়া যেতে পারে:

  • সিস্টেম ভেরিয়েবল - /etc/paths
  • ব্যবহারকারী ভেরিয়েবল - @ স্টিভ ফলির ব্যাখ্যা দেখুন

1

আসলে এটি আপনার .profileফাইলের পরিবর্তে সংরক্ষণ করা হয় .bash_loginএবং ম্যাকপোর্টগুলি ফাইলের পরিবর্তে এটি ব্যবহার করবে বলে সাধারণ .bash_login

এছাড়াও /optডিরেক্টরিটি সাধারণত ম্যাকপোর্টগুলি তৈরি করে এবং এটি এই ফোল্ডারে এর ফাইলগুলি সঞ্চয় করে।


1

সংক্রান্ত ডক্স জন্য /usr/libexec/path_helperইউটিলিটি, $ পাথ জন্য প্রারম্ভিক উপাদান থেকে নিয়ে যাওয়া হয় /etc/pathsএবং ডিফল্ট মত দেখায় দ্বারা

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

ওএস-এক্স স্নো লেপার্ডের জন্য

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