ফাইন্ডার-চালু হওয়া অ্যাপ্লিকেশনগুলির জন্য কীভাবে PATH সেট করবেন


70

ফাইন্ডারের মাধ্যমে চালু হওয়া অ্যাপ্লিকেশনগুলি PATH কে সেট করা হিসাবে সম্মান করবে না বলে মনে হচ্ছে .bash_profile। সুতরাং যখন আমি কোনও আইডিই (ইন্টেলিজ) থেকে কোড চালানোর চেষ্টা করি তখন আমার আর প্রোগ্রামগুলিতে অ্যাক্সেস থাকে না /usr/local/bin, যা সাধারণত টার্মিনালের আমার পথে যুক্ত হয়।

দৃশ্যত .MacOSX/environment.plist এটি করার উপায় হিসাবে ব্যবহৃত হত তবে সিংহটিতে এটি আর কাজ করে না।

আমি কীভাবে PATHসন্ধানকারী-চালু অ্যাপ্লিকেশনগুলির জন্য সেট করতে পারি ?


আপনি কি নিশ্চিত যে আপনার গৃহীত সমাধানটি 10.8 এ কাজ করে?
সোরিন

1
@ সোরিনসবার্নিয়া (আমি জানি এটি পুরানো, তবে) আমি যাচাই করতে পারি যে বর্তমানে গৃহীত উত্তরগুলি ওএস এক্স ১০.৮.৩ এ আমার জন্য কাজ করে, যখন আমি প্রস্তাবিত ডক পুনঃসূচনা হ্যাকটিও ব্যবহার করি । (যদিও আমি আলাদা পরিবেশের পরিবর্তনশীল স্থির করছি, যদিও $PATHতা গুরুত্বপূর্ণ নয়।)
ক্যালরিওন

উত্তর:


38

আপনি যদি 10.7 তে থাকেন এবং 10.8 নয়, নীচের সমাধানটি ভালভাবে কাজ করে:

আমার গ্রহনের ক্ষেত্রেও একই সমস্যা ছিল, তবে এখন আমি উদাহরণটি আমার .bash_profileএবং এরপরে যুক্ত করেছি।

export PATH=some_path:another_path
launchctl setenv PATH $PATH

আপনি যদি আসল পথটি অক্ষত ব্যবহারে ছেড়ে যেতে চান তবে

p=$(launchctl getenv PATH)
launchctl setenv PATH /my/new/path:$p

পরিবর্তে (বা ন্যায়সঙ্গত launchctl setenv PATH /my/new/path:$(launchctl getenv PATH))

দ্রষ্টব্য: ডক "পুনরায় আরম্ভ করা" না হওয়া অবধি লঞ্চটেল PATH পরিবর্তন কার্যকর হবে না। কমান্ডের সাহায্যে বর্তমানটিকে হত্যা করার পরে একটি নতুন ডক প্রক্রিয়া স্বয়ংক্রিয়ভাবে শুরু হবে:

killall Dock

1
আমি ব্যবহার করে শেষ করেছি: "লঞ্চাক্টেল সেটেনভ পাথ $ पथ"। "$ P" এর মাধ্যমে বিদ্যমান লঞ্চেক্টল পাথ যুক্ত করা প্রতিটি সময় আপনি শেল খোলার সাথে সাথে পুনরাবৃত্তিটি শেষ করে।
ক্যাফিন কোমা

4
এই OS X এর 10.8 কাজ করে না - অন্ধকার এবং IntelliJ সঙ্গে চেষ্টা করেছে - চলমান set|grep PATHতাদের কাছ থেকে সবসময় ফিরে আসবেPATH=/usr/bin:/bin:/usr/sbin:/sbin
sorin

1
আমার (10.8.1) এর জন্যও কাজ করে না
নোহিলসাইড

4
আপনি চলমান পরে ডক পুনরায় চালু করার চেষ্টা করতে পারে launchctl: osascript -e 'tell app "Dock" to quit'। এটা আমার জন্য এটি ঠিক করা বলে মনে হয়েছিল।
ইভান অ্যান্ড্রুস

2
এটি আমার জন্য 10.12 এ কাজ করে তবে কেবল এক হিসাবে বন্ধ। মেশিনটি পুনরায় চালু করার পরে প্রভাবগুলি নষ্ট হয়ে যায়।
ডোভার 8

19

আপনার 'নতুন' সমস্যায় আপনাকে প্রশ্নের উত্তর দেওয়ার জন্য, আমি অন্য একটি উত্তর লেখার সিদ্ধান্ত নিয়েছি - কারণ নমুনা দিয়ে ব্যাখ্যা করা আরও সহজ easier

আপনার পছন্দের সরঞ্জাম (আইডিই) শুরু করার সময় পরিবেশের ভেরিয়েবলগুলি লোড করার একটি উপায় এটি গ্রহণের মতোই করা যেতে পারে - আমি মনে করি আপনার সরঞ্জামেও (আইডিই) একটি অনুরূপ কাঠামো থাকতে হবে।

এটি কীভাবে গ্রহণে করা যায় - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-en पर्यावरण-variables- set

(পরিবেশের ভেরিয়েবল সম্পর্কে সামান্য পুনরায় লিখিত)

Eclipse অ্যাপ্লিকেশন বান্ডেল ডিরেক্টরিতে "eclipse.sh" নামে একটি খালি পাঠ্য ফাইল তৈরি করুন /Applications/eclipse/Eclipse.app/Contents/MacOS

একটি পাঠ্য সম্পাদকে eclipse.sh খুলুন এবং নিম্নলিখিত বিষয়বস্তু লিখুন:

#!/bin/sh

. ~/.bash_profile

logger "`dirname \"$0\"`/eclipse"

exec "`dirname \"$0\"`/eclipse" $@

টার্মিনালে শেল স্ক্রিপ্ট eclipse.sh এর এক্সিকিউটেবল ফ্ল্যাগ সেট করে, অর্থাত:

chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh

Eclipse.app Info.plist খুলুন এবং CFBundleExecutable কী-এর জন্য মানটিকে eclipse.sh এ পরিবর্তন করুন।

ম্যাকোস এক্স স্বয়ংক্রিয়ভাবে সনাক্ত করে না যে Eclipse.app এর তথ্য.প্লেস্টটি পরিবর্তিত হয়েছে। অতএব, আপনাকে lsregister কমান্ডটি ব্যবহার করে টার্মিনালে লঞ্চ সার্ভিস ডাটাবেসটি জোর করে আপডেট করতে হবে:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app

পরের বার আপনি ডক থেকে বা ফাইন্ডারের কাছ থেকে Eclipse.app চালু করবেন পরিবেশের ভেরিয়েবল সেট করা উচিত।


একটি স্পষ্ট এবং নির্ভুল ব্যাখ্যার জন্য +1, এবং ছয় বছরেরও বেশি পরে, এটি এখনও হাই সিয়েরার সাথে কাজ করে, 10.13.x.
dgnuff

16

ওএস এক্স 10.10 ইয়োসেমাইটে, আমি এই আদেশটি ব্যবহার করেছি:

sudo launchctl config user path <my path setting>

সচেতন থাকুন যে তাঁর ব্যবহারকারীর জন্য প্রবর্তক PATH সেট করে । এটি আমার ব্যবহারের ক্ষেত্রে ভাল কাজ করেছে। মনে রাখবেন যে প্রভাবগুলি ধরে রাখতে আপনাকে আপনার মেশিনটি পুনরায় চালু করতে বলা হবে।


এটি লগইন-এ পুনরায় খোলা অ্যাপ্লিকেশনগুলির PATH পরিবেশ পরিবর্তনশীলের উপর প্রভাব ফেলেছে বলে মনে হচ্ছে না (যা বন্ধ করার সময় খোলা ছিল)।
ব্রেচ্ট ম্যাচিলস

4
এই উত্তরটি আমার পক্ষে কাজ করেছিল। বিশেষত, ব্রিউ-পরিচালিত এক্সিকিউটেবল অ্যাক্সেস করতে, আমাকে sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbinপুনরায় বুট করতে হয়েছিল।
জেপি

হোমব্রিউভিত্তিক অ্যাপ্লিকেশনগুলির জন্য / usr / স্থানীয় / বিন যোগ করার জন্য এটি এখানে সেরা উত্তর। লোকেরা দয়া করে এই উত্তরটি ভোট দিন! এটি 10.11 এবং 10.12 তেও কাজ করে (10.13 নিজেই পরীক্ষিত হয় না)। environment.plistবেশিরভাগ ক্ষেত্রে গণ্ডগোল করার দরকার নেই ।
মার্ক এডিংটন

এটি আমার পক্ষে কাজ করেছিল যখন গৃহীত উত্তর না দেয়
মাইকেলচিরিকো

11

মাউন্টেন লায়নগুলিতে সমস্ত /etc/pathsএবং /etc/launchd.confসম্পাদনা কার্যকর হয় না!

অ্যাপলের বিকাশকারী ফোরামগুলি বলে:

"আপনার পছন্দসই পরিবেশের ভেরিয়েবলের সাথে" এলএসইএনভায়রনমেন্ট "অভিধান থাকতে চাইলে অ্যাপ্লিকেশনটির ইনফো.প্লিস্টটি পরিবর্তন করুন।

। / .MacOSX / পরিবেশ.plist আর সমর্থিত নয় p "

সুতরাং আমি সরাসরি অ্যাপ্লিকেশনটির সম্পাদনা করেছি Info.plist("AppName.app" এ ডান ক্লিক করুন (এক্ষেত্রে SourceTree) এবং তারপরে " Show package contents")

প্যাকেজ বিষয়বস্তু প্রদর্শন করুন

এবং একটি নতুন কী / ডিক জোড় যুক্ত করেছে:

<key>LSEnvironment</key>
<dict>
     <key>PATH</key>
     <string>/Users/flori/.rvm/gems/ruby-1.9.3-p362/bin:/Users/flori/.rvm/gems/ruby-1.9.3-p362@global/bin:/Users/flori/.rvm/rubies/ruby-1.9.3-p326/bin:/Users/flori/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:</string>
</dict>

(দেখুন: অ্যাপলে লঞ্চ সার্ভিসকিজ ডকুমেন্টেশন )

এখানে চিত্র বর্ণনা লিখুন

এখন অ্যাপ (আমার ক্ষেত্রে সোর্সট্রি) প্রদত্ত পাথটি ব্যবহার করে এবং 1.9.3 :-) গিটের সাথে কাজ করে

PS: অবশ্যই আপনাকে আপনার নির্দিষ্ট পাথের প্রয়োজনের সাথে পাথ এন্ট্রি সামঞ্জস্য করতে হবে।


এটা কি সত্য? আমি বিবাদী তথ্য সহ প্রচুর পোস্ট দেখতে পাচ্ছি, যার কয়েকটি স্পষ্টভাবে পুরানো, তবে এর কয়েকটি সাম্প্রতিক বলে মনে হয়। আমার কাছে (10.8.2 এ) /etc/launchd.confযাইহোক নেই। সম্ভবত, আইন অনুযায়ী অ্যাপ্লিকেশান না এমনকি যদি উচিত পাথ জন্য তাদের Info.plist ফাইল ব্যবহার, তারা এখনও অন্যান্য ফাইল ব্যবহার করা যায়নি - /etc/launchd.conf, /etc/paths/, অথবা /etc/paths.d/*, অথবা `~ / .MacOSX / environment.plist। তাহলে বলতে চাই যে, নিরাপদ অভ্যাস , মাউন্টেন লায়ন মধ্যে গুই অ্যাপসের জন্য পাথ এই ফাইলগুলির মধ্যে কোনো সেট করা যেতে পারে?
ওরোম

2
আমার ম্যাভেরিক্স এবং গ্রহনের সাথে lauchd.conf, ইত্যাদি / পাথ ইত্যাদির চেষ্টা করার পরে এই তথ্য.ইলিস্টটি কেবল আমার জন্য কাজ করেছিল। প্রকৃতপক্ষে এটি তাত্ক্ষণিকভাবেও কাজ করে না, আপনার দুটি জিনিস মনে রাখা দরকার: ১. /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.appঅন্য উত্তরে দেওয়া অনুসারে চালান , প্লাস্ট পরিবর্তন করার পরে এবং ২. সেখানে সম্পূর্ণ পথ যুক্ত করুন , আপনি নিজের প্রোফাইল স্ক্রিপ্টগুলিতে যেমন বিদ্যমান পাথ ব্যবহার করতে পারবেন না।
জাকএল

এটি সিয়েরায় (10.12) কাজ করে। lsregister@ যাকএল দ্বারা উল্লিখিত হিসাবে কমান্ডটি চালানো এখনও প্রয়োজনীয় ।
অ্যালাস্টার হ্যারিসন

1

মাউন্টেন সিংহটিতে (10.8.4), $PATHকোনওভাবে বিশেষভাবে চিকিত্সা করা হয়। টার্মিনাল.এপ বা ইমাস্যাক.এপ ইভেন্টগুলিতে পরবর্তী সময়ে ডক বা ফাইন্ডার থেকে লঞ্চ করা হয়েছে (যেখানে সূক্ষ্ম কাজ করে) এর launchctl setenv PATH /your/path:/hereকোনও প্রভাব নেই । এছাড়াও কাজ করে না। আমি সর্বত্র প্যাথ সঠিকভাবে সেট করার একমাত্র উপায় way দুর্ভাগ্যক্রমে, কেউ এখানে যেমন এনভের ব্যবহার করতে পারে না , তাই আমার ল্যাপটপে সমস্ত ব্যবহারকারীদের তাদের রয়েছে । এটাই কেবল আমি, তাই আমি পাত্তা দিই না।$PATHlaunchctl setenv SPONG foo$HOME/.launchd.conf/etc/launchd.conf$HOME/Users/nb/bin$PATH


আপনার সন্ধান করা উচিত যে টার্মিনাল প্রক্রিয়াটি PATHআপনার নির্ধারিত মানটি তুলবে , কিন্তু: আপনি যখন নতুন টার্মিনাল তৈরি করেন এটি একটি লগইন শেল শুরু করে, যা আপনি যদি ব্যাশ ব্যবহার করছেন — কার্যকর করে /etc/profile, যা PATHথেকে প্রাপ্ত মানকে আরম্ভ করে /usr/libexec/path_helper। আপনি যদি শেল> নতুন কমান্ড… চয়ন করেন এবং চালান env(শেলের মধ্যে না) তবে আপনি যে PATHমানটি লঞ্চের মাধ্যমে সেট করেছেন তা খুঁজে পাওয়া উচিত ।
ক্রিস পেজ

-1

আপনার ~ /। প্রোফাইলে বা ~ / .bash_profile বা ~ / .zprofile (zsh এর জন্য) এ পথ নির্ধারণ করার চেষ্টা করুন। এটি আমার জন্য ভিআইএমআর-এর সাথে কাজ করেছে - ডক থেকে লঞ্চ করার সময় এটি প্যাথটি পড়ছিল না, তবে টার্মিনাল থেকে চালু করার সময় এটি কাজ করেছিল। আমি ওএসএক্স 10.11 এ চলছিলাম।

আমি একটি ভাল যথেষ্ট এই হ্যান্ডেল কেন আপনি এটি কাজ করে মহান ব্যাখ্যা দিতে হবে না, সেখানে ব্যাখ্যা প্রচুর বিভিন্ন কনফিগ ফাইল সম্পর্কে অনলাইন এবং তারা কি: https://stackoverflow.com/questions/415403/ কি-পার্থক্য-মধ্যে-bashrc-ব্যাশ-প্রোফাইল-এবং-পরিবেশ

এছাড়াও, এখানে একই রকম আলোচনা দেখুন: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ 24542893 # 24542893


প্রশ্নটি ডক থেকে চালু হওয়া অ্যাপ্লিকেশানগুলির জন্য এটি কীভাবে করতে হয় যা আপনি ফাইন্ডারের কাছ থেকে প্রবর্তনের অনুরূপ যা বলেছিলেন যে আপনার উত্তরটির জন্য এটি কার্যকর হয় না - এবং এটি কেন কাজ করে না / ঠিক তা আমরা ব্যাখ্যা করতে পারি
ব্যবহারকারী 151019

-3

ম্যাক ওএস এক্স 10.8.4 এ, মাউন্টেন লায়ন, পাথ পরিবেশ এই ফাইলটিতে তালিকাবদ্ধ পাথগুলি অন্তর্ভুক্ত করেছে:

/etc/paths

কমান্ড লাইন সরঞ্জাম ব্যবহার করে আপনি এই ফাইলটি সম্পাদনা করতে পারেন, যেমন vimনিম্নলিখিত কমান্ডটি ব্যবহার করে:

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