কম্পিউটার

Direnv - লিনাক্সে প্রকল্প-নির্দিষ্ট পরিবেশের ভেরিয়েবল পরিচালনা করুন

ডিরেনভ Linux এবং macOS-এর মতো UNIX অপারেটিং সিস্টেমে আপনার শেলের জন্য একটি নিফটি ওপেন-সোর্স এক্সটেনশন। এটি একটি একক স্ট্যাটিক এক্সিকিউটেবলের মধ্যে কম্পাইল করা হয় এবং শেল সমর্থন করে যেমন bash , zsh , tcsh , এবং মাছ।

direnv এর মূল উদ্দেশ্য ~/.profile বিশৃঙ্খল ছাড়াই প্রকল্প-নির্দিষ্ট পরিবেশ ভেরিয়েবলের জন্য অনুমতি দেওয়া হয় বা সম্পর্কিত শেল স্টার্টআপ ফাইল। এটি বর্তমান ডিরেক্টরির উপর নির্ভর করে পরিবেশ ভেরিয়েবল লোড এবং আনলোড করার একটি নতুন উপায় প্রয়োগ করে৷

এটি 12factor লোড করতে ব্যবহৃত হয় অ্যাপস (সফ্টওয়্যার-এ-সার্ভিস অ্যাপস তৈরির জন্য একটি পদ্ধতি) এনভায়রনমেন্ট ভেরিয়েবল, প্রতি-প্রকল্প বিচ্ছিন্ন ডেভেলপমেন্ট এনভায়রনমেন্ট তৈরি করে এবং ডিপ্লয়মেন্টের জন্য সিক্রেট লোড করে। উপরন্তু, এটি rbenv-এর মতো মাল্টি-সংস্করণ ইনস্টলেশন এবং ব্যবস্থাপনা সমাধান তৈরি করতে ব্যবহার করা যেতে পারে , pyenv, এবং phpenv .

তাহলে direnv কিভাবে কাজ করে?

শেল একটি কমান্ড প্রম্পট লোড করার আগে, direnv একটি .envrc এর অস্তিত্ব পরীক্ষা করে বর্তমানের ফাইল (যা আপনি pwd কমান্ড ব্যবহার করে প্রদর্শন করতে পারেন) এবং প্যারেন্ট ডিরেক্টরি। চেকিং প্রক্রিয়া দ্রুত এবং প্রতিটি প্রম্পটে লক্ষ্য করা যায় না।

একবার এটি .envrc খুঁজে পায় উপযুক্ত অনুমতি সহ ফাইল, এটি একটি ব্যাশ সাব-শেলের মধ্যে লোড করে এবং এটি সমস্ত রপ্তানি করা ভেরিয়েবল ক্যাপচার করে এবং সেগুলিকে বর্তমান শেলে উপলব্ধ করে।

লিনাক্স সিস্টেমে direnv ইনস্টল করা হচ্ছে

বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে, direnv প্যাকেজটি আপনার সিস্টেম প্যাকেজ ম্যানেজার ব্যবহার করে ডিফল্ট সংগ্রহস্থল থেকে ইনস্টল করার জন্য উপলব্ধ।

$ sudo apt install direnv		#Debian,Ubuntu and Mint
$ sudo dnf install direnv		#Fedora

অন্যান্য বিতরণে যেমন Red Hat Enterprise Linux (RHEL ) এবং CentOS অথবা যে কোনো ডিস্ট্রিবিউশন যা স্ন্যাপ সমর্থন করে, আপনি এটিকে স্ন্যাপ হিসেবে ইনস্টল করতে পারেন . এর জন্য আপনার সিস্টেমে স্ন্যাপড ইনস্টল করা দরকার৷

$ sudo snap install direnv

কিভাবে আপনার ব্যাশ শেলের মধ্যে ডিরেনভ হুক করবেন

direnv ইনস্টল করার পরে , আপনাকে এটিকে আপনার বর্তমান লিনাক্স শেল এ হুক করতে হবে। উদাহরণস্বরূপ ব্যাশ-এর জন্য , ~/.bashrc এর শেষে নিম্নলিখিত লাইনটি যোগ করুন ফাইল।

নিশ্চিত করুন যে এটি rvm এর পরেও উপস্থিত হয়৷ , গিট-প্রম্পট , এবং অন্যান্য শেল এক্সটেনশন যা প্রম্পটকে পরিচালনা করে।

eval "$(direnv hook bash)"

ZSH শেলের জন্য

~/.zshrc এর শেষে নিচের লাইনটি যোগ করুন ফাইল:

eval "$(direnv hook zsh)" 

ফিশ শেলের জন্য

~/.config/fish/config.fish এর শেষে নিম্নলিখিত লাইনটি যুক্ত করুন ফাইল:

eval (direnv hook fish)

তারপর সক্রিয় টার্মিনাল উইন্ডোটি বন্ধ করুন এবং একটি নতুন শেল খুলুন বা দেখানো হিসাবে ফাইলটি উৎস করুন।

$ source ~/.bashrc
$ source  ~/.zshrc 
$ source ~/.config/fish/config.fish

লিনাক্স শেলে direnv কিভাবে ব্যবহার করবেন

কিভাবে direnv তা প্রদর্শন করতে কাজ করে, আমরা tecmint_projects নামে একটি নতুন ডিরেক্টরি তৈরি করব এবং এটিতে যান৷

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

এর পরে, আসুন একটি নতুন ভেরিয়েবল তৈরি করি যার নাম TEST_VARIABLE কমান্ড লাইনে এবং যখন এটি প্রতিধ্বনিত হয়, তখন মানটি খালি হওয়া উচিত:

$ echo $TEST_VARIABLE

এখন আমরা একটি নতুন .envrc তৈরি করব যে ফাইলে ব্যাশ কোড রয়েছে যা direnv দ্বারা লোড করা হবে . এছাড়াও আমরা লাইন যোগ করার চেষ্টা করি “Export the TEST_VARIABLE=tecmint ” এর মধ্যে ইকো কমান্ড এবং আউটপুট রিডাইরেকশন অক্ষর (>) ব্যবহার করে :

$ echo export TEST_VARIABLE=tecmint > .envrc

ডিফল্টরূপে, নিরাপত্তা ব্যবস্থা .envrc এর লোডিং ব্লক করে ফাইল যেহেতু আমরা এটিকে একটি সুরক্ষিত ফাইল জানি, তাই আমাদের নিম্নলিখিত কমান্ডটি চালিয়ে এর বিষয়বস্তু অনুমোদন করতে হবে:

$ direnv allow .

এখন যে বিষয়বস্তু .envrc ফাইল লোড করার অনুমতি দেওয়া হয়েছে, চলুন TEST_VARIABLE এর মান পরীক্ষা করা যাক যা আমরা আগে সেট করেছি:

$ echo $TEST_VARIABLE

যখন আমরা tecmint_project থেকে প্রস্থান করি ডিরেক্টরি, direnv আনলোড করা হবে এবং যদি আমরা TEST_VARIABLE এর মান পরীক্ষা করি আরও একবার, এটি খালি হওয়া উচিত:

$ cd ..
$ echo $TEST_VARIABLE
Direnv - লিনাক্সে প্রকল্প-নির্দিষ্ট পরিবেশের ভেরিয়েবল পরিচালনা করুন

আপনি যখনই tecmint_projects এ যান ডিরেক্টরি, .envrc নিম্নলিখিত স্ক্রিনশটে দেখানো হিসাবে ফাইলটি লোড হবে:

$ cd tecmint_projects/
Direnv - লিনাক্সে প্রকল্প-নির্দিষ্ট পরিবেশের ভেরিয়েবল পরিচালনা করুন

প্রদত্ত .envrc এর অনুমোদন প্রত্যাহার করতে , অস্বীকার করুন ব্যবহার করুন আদেশ৷

$ direnv deny .			#in current directory
OR
$ direnv deny /path/to/.envrc
অস্বীকার করুন

আরও তথ্য এবং ব্যবহারের নির্দেশাবলীর জন্য, direnv দেখুন ম্যান পেজ:

$ man direnv

উপরন্তু, direnv এছাড়াও একটি stdlib ব্যবহার করে (direnv-stdlib ) বেশ কয়েকটি ফাংশনের সাথে আসে যা আপনাকে সহজেই আপনার PATH-এ নতুন ডিরেক্টরি যোগ করতে দেয় এবং আরও অনেক কিছু করুন।

সমস্ত উপলব্ধ ফাংশনের জন্য ডকুমেন্টেশন খুঁজে পেতে, direnv-stdlib চেক করুন ম্যানুয়াল এন্ট্রি পৃষ্ঠা:

$ man direnv-stdlib

এই সব আমরা আপনার জন্য ছিল! আমাদের সাথে শেয়ার করার জন্য আপনার কোন প্রশ্ন বা চিন্তা থাকলে, নিচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।


  1. পরিবেশের ভেরিয়েবলের জন্য রুবিস্ট গাইড

  2. শেল স্ক্রিপ্টিং ল্যাঙ্গুয়েজে লিনাক্স "ভেরিয়েবল" এর অন্তর্দৃষ্টি - পার্ট 9

  3. রুবিতে পরিবেশের ভেরিয়েবলগুলি কীভাবে ব্যবহার করবেন

  4. Windows 10 এ পরিবেশ ভেরিয়েবল কিভাবে সেট করবেন