ডিরেনভ 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
আপনি যখনই tecmint_projects এ যান ডিরেক্টরি, .envrc
নিম্নলিখিত স্ক্রিনশটে দেখানো হিসাবে ফাইলটি লোড হবে:
$ cd tecmint_projects/
প্রদত্ত .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
এই সব আমরা আপনার জন্য ছিল! আমাদের সাথে শেয়ার করার জন্য আপনার কোন প্রশ্ন বা চিন্তা থাকলে, নিচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।