বেশ কয়েকটি জায়গা যেখানে আপনি পরিবেশের ভেরিয়েবল সেট করতে পারেন।
~/.profile
: টার্মিনাল থেকে চালু হওয়া সমস্ত প্রোগ্রামগুলিতে আপনি সেট করতে চান এমন ভেরিয়েবলগুলির জন্য এটি ব্যবহার করুন (নোট করুন লিনাক্সের বিপরীতে, টার্মিনাল.এপ-এ খোলা সমস্ত শেল লগইন শেলগুলি)।
~/.bashrc
: এটি শেলগুলির জন্য অনুরোধ করা হয়েছে যা লগইন শেল নয়। এটি উপকরণ এবং অন্যান্য জিনিসের জন্য ব্যবহার করুন যা উত্তরাধিকারসূত্রে প্রাপ্ত পরিবেশের ভেরিয়েবলগুলির জন্য নয়, সাব-শেলগুলিতে পুনরায় সংজ্ঞায়িত করা দরকার।
/etc/profile
: এটি ~ /। প্রোফাইলের আগে লোড করা হয় তবে এটি অন্যথায় সমতুল্য। আপনি যখন ভেরিয়েবলটি মেশিনে সমস্ত ব্যবহারকারীর দ্বারা চালু করা টার্মিনাল প্রোগ্রামগুলিতে প্রয়োগ করতে চান তা ব্যবহার করুন (ধরে নিবেন তারা ব্যাশ ব্যবহার করে)।
~/.MacOSX/environment.plist
: এটি লগইন-এ উইন্ডো দ্বারা পড়া হয়। এটি জিপিআই সহ সমস্ত অ্যাপ্লিকেশনগুলিতে প্রযোজ্য, যা স্পটলাইট 10.5 (10.6 নয়) এ চালু করেছে except পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে লগআউট এবং আবার লগইন করা দরকার। এই ফাইলটি আর ওএস এক্স 10.8 হিসাবে সমর্থিত নয়।
- আপনার ব্যবহারকারীর
launchd
উদাহরণ: এটি ব্যবহারকারী, জিইউআই এবং সিএলআই দ্বারা চালু করা সমস্ত প্রোগ্রামের জন্য প্রযোজ্য। আপনি setenv
কমান্ডটি ব্যবহার করে যে কোনও সময় পরিবর্তনগুলি প্রয়োগ করতে পারেন launchctl
। তত্ত্ব অনুসারে , আপনার setenv
কমান্ডগুলি সন্নিবেশ করতে সক্ষম হওয়া উচিত ~/.launchd.conf
এবং launchd
ব্যবহারকারীরা লগ ইন করলে স্বয়ংক্রিয়ভাবে সেগুলি পড়তে পারে তবে বাস্তবে এই ফাইলটির জন্য সমর্থন কখনও প্রয়োগ করা হয়নি। পরিবর্তে, আপনি লগইনে কোনও স্ক্রিপ্ট কার্যকর করতে অন্য একটি প্রক্রিয়া ব্যবহার করতে পারেন launchctl
এবং launchd
পরিবেশ সেট আপ করার জন্য সেই স্ক্রিপ্ট কলটি রাখতে পারেন ।
/etc/launchd.conf
: এটি যখন সিস্টেম শুরু হয় এবং যখন কোনও ব্যবহারকারী লগ ইন করে সেগুলি লঞ্চের মাধ্যমে পড়ে। চালু হওয়া চলমান রুটে পরিবর্তনগুলি প্রয়োগ করতে আপনি কমান্ডগুলিকে পাইপ করতে পারেন sudo launchctl
।
মূল বিষয়গুলি বুঝতে হবে:
- পরিবেশের পরিবর্তনশীলগুলি কাঁটাচামচ করার সময় কোনও প্রক্রিয়ার শিশুরা উত্তরাধিকার সূত্রে প্রাপ্ত হয়।
- মূল প্রক্রিয়াটি একটি লঞ্চকৃত উদাহরণ, এবং ব্যবহারকারীর সেশন অনুযায়ী পৃথক প্রবর্তিত উদাহরণও রয়েছে।
- চালু করা আপনাকে এটির বর্তমান পরিবেশের পরিবর্তনগুলি ব্যবহার করে পরিবর্তন করতে দেয়
launchctl
; আপডেট হওয়া ভেরিয়েবলগুলি তখন থেকে নতুন নতুন সমস্ত প্রক্রিয়া দ্বারা উত্তোলন করা হয়।
প্রবর্তন সহ পরিবেশের পরিবর্তনশীল স্থাপনের উদাহরণ:
echo setenv REPLACE_WITH_VAR REPLACE_WITH_VALUE | launchctl
এখন, আপনার জিইউআই অ্যাপ্লিকেশনটি চালু করুন যা ভেরিয়েবল এবং ভয়েলা ব্যবহার করে!
যেটি ~/.launchd.conf
কাজ করে না তার আশেপাশে কাজ করার জন্য, আপনি নিম্নলিখিত স্ক্রিপ্টটি এতে রাখতে পারেন ~/Library/LaunchAgents/local.launchd.conf.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.launchd.conf</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>launchctl < ~/.launchd.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
তারপরে আপনি setenv REPLACE_WITH_VAR REPLACE_WITH_VALUE
ভিতরে রাখতে পারেন ~/.launchd.conf
এবং এটি প্রতিটি লগইনে কার্যকর করা হবে।
মনে রাখবেন যে, এই ফ্যাশনে একটি কমান্ড তালিকার প্রবর্তনকারীকে প্রবর্তন করার সময়, আপনি স্থানগুলি সহ মান সহ পরিবেশের ভেরিয়েবল সেট করতে সক্ষম হবেন না। আপনি এখন যা করতে হবে, তাহলে আপনি launchctl নিম্নরূপ কল করতে পারেন: launchctl setenv MYVARIABLE "QUOTE THE STRING"
।
এছাড়াও, নোট করুন যে অন্যান্য প্রোগ্রামগুলি লগইন চলাকালীন লঞ্চজেন্টের আগে কার্যকর করা হতে পারে এবং এটি সেট করে এমন পরিবেশের পরিবর্তনশীলগুলি নাও দেখতে পারে।