🐧 Direnv – مدیریت متغیرهای محیط پروژه پروژه Linux – تیم امنیت اطلاعات

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 

شما هر گونه سؤال یا افکاری دارید ، برای به اشتراک گذاشتن با ما ، از فرم بازخورد زیر استفاده کنید.