direnv یک برنامه منبع باز عالی برای پوسته شما در سیستم عامل های یونیکس مانند لینوکس و macOS است.
این نرم افزار به صورت یک استاتیک جمع آوری شده و از پوسته هایی مانند bash ، zsh ، tcsh و ماهی پشتیبانی می کند.
هدف اصلی direnv این است که اجازه دهد متغیرهای محیطی خاص برای پروژه بدون ایجاد فایل های cl / .profile یا پرونده های مربوط به راه اندازی پوسته مرتبط باشد.
بسته به فهرست موجود ، یک روش جدید برای بارگیری و بارگیری متغیرهای محیط را پیاده سازی می کند.
برای بارگیری متغیرهای محیط برنامه کاربردی 12factor (نرم افزاری به عنوان یک روش کارآفرینی ایجاد سرویس) ، ایجاد محیط های توسعه جداگانه برای هر پروژه و بارگیری اسرار در استقرار.
همچنین می تواند برای ایجاد نصب چند نسخه ای مورد استفاده قرار گیرد و مدیریتی مشابه rbenv ، pyenv و phpenv.
بنابراین چگونه direnv کار می کند؟
در اکثر توزیع های لینوکس x بسته 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 به پوسته Bash
پس از نصب direnv ، باید آن را به پوسته فعلی لینوکس خود وصل کنید.
به عنوان مثال ، برای Bash خط زیر را اضافه کنید. end of the file ~ / .bashrc.
اطمینان حاصل کنید که حتی پس از rvm ، git-prompt و سایر پسوندهای پوسته که اعلان را کنترل می کنند ظاهر می شود.
eval "$ (direnv hook bash)"
برای پوسته ZSH
خط پایان را به انتهای پرونده ~ / .zshrc اضافه کنید:
eval "$ (direnv hook zsh)"
را برای پوسته FISH
خط زیر را به انتهای پرونده ~ / .config / fish / file اضافه کنید. config.fish:roulette19659009 022eval (ماهی قلاب direnv)
سپس پنجره مدت فعال را ببندید و یک پوسته جدید باز کنید یا پرونده را مطابق شکل زیر بارگذاری کنید:
$ source ~ / .bashrc منبع $ ~ / .zshrc $ source ~ / .config / fish / config.fish
نحوه استفاده از direnv در لینوکس
برای نشان دادن نحوه کار direnv ، ما یک فهرست جدید ایجاد می کنیم به نام itsecforu_projects و وارد آن می شویم.
$ mkdir ~ / itsecforu_projects $ cd itsecforu_projects /
در مرحله بعد ، بیایید یک متغیر جدید به نام TEST_VARIABLE در خط فرمان ایجاد کنیم و وقتی ظاهر شد مقدار آن خالی است:
اکنون یک فایل جدید .envrc ایجاد می کنیم که حاوی کد Bash خواهد بود.
ما همچنین سعی داریم با استفاده از دستور echo و شخصیت تغییر مسیر خروجی ، خط "export TEST_VARIABLE = itsecforu" را به آن اضافه کنیم (>):
$ echo export TEST_VARIABLE = itsecforu> .envrc
.envrc.
از آنجا که می دانیم که این یک پرونده ایمن است ، باید دستورالعمل های آن را با اجرای دستور زیر تصویب کنیم:
اکنون که محتویات پرونده .envrc مجاز به بارگیری است ، بیایید مقدار TEST_VARIABLE را که قبلاً تعیین کردیم بررسی کنیم: [19659036] $ echo $ TEST_VARIABLE
وقتی از دایرکتوری itsecforu_project خارج شویم ، direnv تخلیه می شود ، و اگر مقدار TEST_VARIABLE را دوباره بررسی کنیم. برای خالی:
سی دی .. $ echo $ TEST_VARIABLE
هر بار که به دایرکتوری itsecforu_projects بروید ، پرونده .envrc مطابق شکل زیر بارگذاری می شود:
$ cd itsecforu_projects /
برای غیرمجاز کردن این .envrc ، از دستور mohy9 استفاده کنید. [1965] $ direnv انکار می کند. # در فهرست اصلی
یا
$ direnv deny /path/to/.envrcociation19659010-06 برای کسب اطلاعات بیشتر و دستورالعمل های استفاده ، به صفحه man direnv مراجعه کنید:
علاوه بر این ، direnv از stdlib (direnv-stdlib) نیز استفاده می کند ، که دارای چندین کارکرد است که اجازه می دهد آسان است که دایرکتوری های جدیدی را به PATH خود اضافه کنید و کارهای بیشتری انجام دهید.
برای یافتن اسناد در مورد همه توابع موجود ، صفحه صفحه direnv-stdlib را بررسی کنید:
$ man direnv-stdlib
شما هر گونه سؤال یا افکاری دارید ، برای به اشتراک گذاشتن با ما ، از فرم بازخورد زیر استفاده کنید.