প্রশ্ন আমি কিভাবে ওএস এক্স এ গ্লোবাল প্যাথ এনভায়রনমেন্ট ভেরিয়েবল সেট করব?


আমি OS X এ বিশ্বব্যাপী PATH এনভায়রনমেন্ট ভেরিয়েবল যুক্ত করতে চাই যাতে সমস্ত ব্যবহারকারী শেল এবং GUI অ্যাপ্লিকেশনগুলি একই প্যাথ এনভায়রনমেন্ট পায়।

আমি জানি শেল প্রারম্ভ স্ক্রিপ্টে আমি পাথ যুক্ত করতে পারি, কিন্তু সেই সেটিংস GUI অ্যাপ্লিকেশনগুলির দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত নয়।

আমি যতদূর পাইনি পাইথ এনভায়রনমেন্ট ভেরিয়েবলকে পুনরায় সংজ্ঞায়িত করা /etc/launchd.conf:

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path

আমি আসলে PATH যোগ করার একটি উপায় খুঁজে বের করতে পারে না launchd.conf

আমি এই পদ্ধতি সম্পর্কে একটু চিন্তিত, কিন্তু এ পর্যন্ত এটি কাজ করে একমাত্র জিনিস। একটি ভাল উপায় আছে কি?


97
2018-05-31 19:08


উত্স


দেখুন: stackoverflow.com/questions/347286 - rjmunro
ইয়াসমাইটের জন্য এবং পরে দেখুন stackoverflow.com/questions/25385934/... - thSoft
এখানে কোন উত্তর নেই OP এর প্রশ্ন। কিন্তু থসফট দ্বারা মন্তব্য এখানে টাকা! হয়তো এই মিশ্রিত প্রশ্ন বা যে রেফারেন্সযুক্ত প্রশ্নের সাথে সংযুক্ত করা উচিত: stackoverflow.com/questions/25385934/... - Kevin Buchs


উত্তর:


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

উদাহরণস্বরূপ, আমার সিস্টেমে:

$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ ls /etc/paths.d
X11       git      postgres
$ cat /etc/paths.d/postgres
/Library/PostgreSQL/8.4/bin
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Library/PostgreSQL/8.4/bin:/usr/X11/bin:/usr/local/mysql/bin

70
2018-05-28 06:53



সুন্দর ধন্যবাদ! নোট: এটি আপনাকে কাজ করার আগে লগ আউট এবং লগ ইন করতে হবে। - weronika
@ ওয়ারনিয়িকা: আমি দেখলাম এটি ছেড়ে দেওয়া এবং পুনরায় চালু করার জন্য যথেষ্ট ছিল X11 (সম্পূর্ণ লগ আউট চেয়ে কম বেদনাদায়ক)। আমি এটা চেষ্টা করে না Terminal। - Peter Gluck
আমি টার্মিনাল উল্লেখ ছিল - আপনি সঠিক, আমি উল্লেখ করতে ভুলে গেছি। - weronika
এটি জানা ভাল, কিন্তু এটি OP এর প্রশ্নের উত্তর দেয় না যে এই প্রক্রিয়াটি GUI অ্যাপগুলিতে প্রযোজ্য নয়। ওপি একটা খুঁজছিল সমন্বিত সমাধান যে তাকে করতে পারবেন যুক্ত করা ডিফল্ট $PATH। - mklement
আপনি এখানে "আমার সিস্টেম" দ্বারা কি বোঝাতে চান, @ কোগগ? আমরা সব এখানে ওএস এক্স ব্যবহার করছেন না? দুঃখিত, কিন্তু আমি এখনও ওএস এক্স তে নতুন। আমি ওএস এক্স 10.7 ব্যবহার করছি - ericn


/etc/launchd.conf

দ্য launchd.conf ফাইলটি ** শুধুমাত্র সম্পূর্ণ সমাধান যা কমান্ড লাইন এবং GUI অ্যাপ্লিকেশনের জন্য কাজ করবে OS X এর v10.8 (মাউন্টেন লায়ন) এবং v10.9 (ম্যভারিক্স), যে সমস্ত ব্যবহারকারীর জন্য GUI এবং কনসোল অ্যাপ্লিকেশনগুলির সাথে কাজ করবে।

sudo touch /etc/launchd.conf
sudo nano /etc/launchd.conf

যোগ

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

উপরের উদাহরণে আমি যোগ করেছি /usr/local/bin PATH এর জন্য ডিফল্ট পরিবেশ মান।

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

মনে রাখবেন, সব অন্যদের শুধুমাত্র আংশিক সমাধান হয়:

  • environment.plist স্পটলাইটের মাধ্যমে চালু অ্যাপ্লিকেশনের জন্য কাজ করে না।
  • /etc/paths - শুধুমাত্র কনসোল জন্য
  • /etc/csh.cshrc অথবা /etc/bashrc - শুধুমাত্র কিছু শেল জন্য

এই উত্তর থেকে একই প্রশ্ন উপর ভিত্তি করে ম্যাক ওএস এক্স এ পরিবেশ ভেরিয়েবল সেট করা


47
2018-06-04 20:30



গ্রেট ফাইন্ডিং, কিন্তু ইতিমধ্যে প্রশ্ন সম্পর্কে আলোচনা launchd এবং কিভাবে জিজ্ঞাসা করা হয় যুক্ত করা এটা পথে। - cregox
আপনি কি আসলেই আসল প্রশ্নের উত্তরটি "আসল উত্তর" হিসাবে মন্তব্য করেছেন? - TJ Luoma
এটি আপনার - সহায়ক - উত্তর দ্বারা সূচিত করা হয়েছে, কিন্তু কেবল এটি বানান করার জন্য: OP এর ইচ্ছা যুক্ত করা ডিফল্ট পাথ সমর্থিত নয়, কারণ আপনি অন্যান্য পরিবেশ ভেরিয়েবল উল্লেখ করতে পারবেন না /etc/launchd.conf। - mklement
এটি বিশ্বব্যাপী নয় - কমান্ড লাইন এনভায়রনমেন্ট / etc / প্রোফাইল কল path_helper এবং / etc / paths এবং /etc/paths.d/ থেকে PATH পুনঃনির্মাণের সময় এটি বাতিল করবে - Dave X
অনুসারে apple.stackexchange.com/questions/106355/..., এই Yosemite বা পরে জন্য কোন দীর্ঘ কাজ - ericn


আপনাকে এটি শেল-বাই-শেল ভিত্তিতে সেট করতে হবে; Bash এবং csh-like shells PATH সামঞ্জস্য করার জন্য একই কনফিগারেশন ফাইল এবং সিনট্যাক্স ভাগ করে না।

এই কাজ করার চেষ্টা করছেন launchctl কাজ করবে না, কারণ পরিবেশ ভেরিয়েবল লগইন সেট করা হয়; ইউনিক্সে একটি শেল সেশনের বাইরে বিস্তৃত সিস্টেম নেই।

সুতরাং আপনি যোগ করতে চান

setenv PATH "$PATH:/add/my/extra/path"

থেকে /etc/csh.cshrc এবং

export PATH="$PATH:/more/paths:/

থেকে /etc/bashrc

যদি আপনি GUI অ্যাপ্লিকেশনগুলিতে পরিবেশের পরিবর্তনগুলি চান তবে এটি আরও জটিল। আপনি একটি তৈরি করতে হবে .MacOSX/environment.plist প্রতিটি ব্যবহারকারীর হোম ডিরেক্টরি ফাইল। দ্য .MacOSX ডিরেক্টরি সম্ভবত ডিফল্টরূপে বিদ্যমান হবে না, তাই আপনাকে এটি তৈরি করতে হবে।

ফাইলের বিন্যাস তাই ভালো:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    <key>PRINTER</key>
    <string>myprinter</string>

    <key>PATH</key>
    <string>/path/to/thing/I/need</string>

    <key>DISPLAY</key>
    <string>0:1</string>

</dict>
</plist>

আরো environment.plist  অ্যাপল এর সাইটে


7
2018-06-01 12:24



কিন্তু সেটিংস কার্যকর হবে যখন /etc/launchd.conf তে সেট করা হয় ... হুম ... / আমি বিভ্রান্ত। - Xerxes
সত্যি? কি পরিবেশ পরিবর্তনশীল আপনি সেখানে সেটিং হয়? - palmer
ওএস এক্স 10.8 এর মত একটি আপডেট: দ ~/.MacOSX/environment.plist পদ্ধতিটি আর সমর্থিত নয় এবং ব্যবহারকারী পর্যায়ে কোন বিকল্প নেই। সিস্টেম প্রশস্ত আপনি ব্যবহার করতে পারেন /etc/launchd.conf(এবং একটি প্রতি - *। অ্যাপ্লিকেশন সমাধান) আছে। - mklement
OP এর প্রশ্নের উত্তর দেয় না। - Kevin Buchs


আপনি লাইন যোগ করে আপনার বৈশ্বিক পথ সম্পাদনা করতে পারেন /etc/paths, লাইন প্রতি এক পথ।

sudo nano /etc/paths সেখানে আপনি পেতে হবে।


3
2017-09-03 18:04



এটি জানা ভাল, কিন্তু এটি OP এর প্রশ্নের উত্তর দেয় না যে এই প্রক্রিয়াটি GUI অ্যাপগুলিতে প্রযোজ্য নয়। - mklement


আপনি জন্য মানুষের পাতা একটি চেহারা আছে path_helper ওএস এক্স এ কমান্ড লাইন ইউটিলিটি? আমি উত্তর দিলাম SO তে কিছুটা সম্পর্কিত প্রশ্ন আমি মনে করি আপনি সহায়ক খুঁজে পেতে পারেন।


1
2018-06-01 12:50





কেউ আচ্ছাদিত না হলে আমি নিশ্চিত নই সহজতম এবং সবচেয়ে মার্জিত উপায়। অন্তত উপর Mac OS X এর v10.6 (তুষার চিতা).

সঙ্গে messing [/etc/|~/.] এর [profile|bashrc] ফাইল কাজ করতে পারে, কিন্তু এটি একটি হ্যাক কিছুটা। দ্য /etc/paths.d/ ডিরেক্টরি যেতে উপায়:

  • আপনার প্রিয় সম্পাদক মধ্যে সুডো।
  • নামে একটি নতুন ফাইল তৈরি করুন *name* (শুধু এটিতে এমন কিছু নেই যা ইতিমধ্যে আছে) /etc/paths.d/ লাইন প্রতি একটি পাথ সঙ্গে:

    /usr/X11/bin
    /Developer/usr/bin
    
  • পরে যুক্ত

    eval '/usr/libexec/path_helper -s`
    

    থেকে profile অথবা bashrc, এবং আপনি যেতে ভাল হতে হবে।


1
2018-01-31 07:22



এটি জানা ভাল, কিন্তু এটি OP এর প্রশ্নের উত্তর দেয় না যে এই প্রক্রিয়াটি GUI অ্যাপগুলিতে প্রযোজ্য নয়। - mklement
ফাইল নাম আক্ষরিক হয় *name*? অথবা আপনি শুধু মানে name? - Peter Mortensen


লঞ্চড এইটিকে গ্রহণ করলে আমি নিশ্চিত নই, তবে চেষ্টা করুন:

Setenv প্যাথ "$ PATH: / আমার / পাথ"

0
2018-05-31 19:26



দুর্ভাগ্যবশত যে কাজ করে না। এটি launctl মত চেহারা না যে সহজে পরিবেশ ভেরিয়েবল অ্যাক্সেস আছে। পরিবেশের ভেরিয়েবল পাওয়ার জন্য একটি কমান্ড আছে তবে এটি কীভাবে ব্যবহার করবেন তার কোনও ডকুমেন্টেশন নেই। - lajos


আমি নিশ্চিত না কেন আপনি ব্যবহার করতে চাই /etc/launchd.conf উল্টোদিকে /etc/profile - কিন্তু আমি ম্যাক ওএস এক্স তে কোন বিশেষজ্ঞ নই - আমি আপনাকে বিশ্বাস করি যে আমি নিশ্চিত যে এটি কাজ করে, কিন্তু launchd ম্যাক ওএস এক্স বাস্তবায়ন / প্রতিস্থাপন জন্য init - ম্যাক ওএস এক্স আমাকে বিভ্রান্ত করে।

যাই হোক, setenv PATH "$PATH:/more/paths:/and/more/paths" কাজ করবে (tcsh), এবং বোর্ন শেল সমতুল্য হয় export PATH="$PATH:/more/paths:/and/more/paths" - আমি কিভাবে কোন ধারণা আছে launchd হয় একটি নির্দিষ্ট শেল সম্পর্কিত হয়।

আমি মনে করি আমি আরও প্রশ্ন করেছি তারপর আমি উত্তর দিয়েছি =)


0
2018-06-01 04:10



/ etc / প্রোফাইল পাথ সেটিংস কোনও OS X GUI অ্যাপ্লিকেশানগুলির দ্বারা দেখা হয় না। যে শুধুমাত্র bash প্রযোজ্য। আমি সব অ্যাপ্লিকেশন নতুন পথ সেটিং পেতে চান। - lajos
ডান - আমার জন্য যে ক্লিয়ারিং জন্য ধন্যবাদ :) - Xerxes
ইউনিক্স? অবশ্যই, এটা ইউনিক্স। আমি, sorta মানে। হ্যাঁ, আমরা 30 বছর ধরে কাজ করেছি এমন স্টাফ ভেঙ্গেছি, কিন্তু এটি এখনও ইউনিক্স! /দীর্ঘশ্বাস - Matt Simmons