Skip to content
This repository was archived by the owner on Jul 22, 2023. It is now read-only.

Virtualenv

Bohdan Sukhomlinov edited this page Dec 24, 2017 · 1 revision

Workflow

env

Оскільки у всіх учасників проекту один й той самий код має запускатись з максимально однаковим результатом, версії програмного забезпечення потрібно чітко контролювати.

Версійний котроль має зберігатись й при оновленні системи, й при переїхні на нове обладання (наприклад повий ПК).

Найкращий спосіб, використовувати ізоловане середовище з встановленими в нього програмами фіксованих версій. Ізольованість дозволяє оновлювати основну ОС (та всі її компоненти), притім не змінюючи версії програм в цьому середовищі

В python для цього використовується virtualenv - по суті застосунок створює дерево файлової системи в обраній директорії.

Встановленя:

dnf install virtualenv

Використання:

Перейти в домашній каталог (~ це скорочення для /home/username/):

cd ~

Створити директорію ENV (де в майбутньому будуть зберігатись всі оточення):

mkdir ENV && cd ENV

Створити нове оточення dNull:

virtualenv dNull

Активувати нове оточення:

source ~/ENV/dNull/bin/activate

Якщо в інтерпритаторі встановлені необхідні розширення, в командній стрічні з'явиться назва оточення

(детальніше в гугл з запитом "bash virtualenv" чи "zsh virtualenv)" - в залежності що в кого встановлено):

(dNull) shellshock@localhost ~/dNull %

Робота з env

Тепер при встановленні пакета засобами PIP він буде встановлений під ~/ENV/dNull/bin/ з необхідними бібліотеками в ~/ENV/dNull/lib/ і не буде знаходитись під котролем ОС.

Щоб спростити встановлення необхідних для роботи компонент, список програм вносять в файл requirement.txt з указанням конкретних версій:

ansible==2.4.2

В такому випадку, встановлення рекомендованих програм здійснюється:

pip install -r requirements.txt

Єдиний requirements.txt знаходиться за адресою https://raw.githubusercontent.com/wiki/dnullsecops/KnowledgeBase/requirements.txt (поки тимчасово).

Відповідно встановлення відубвається за допомогою:

pip install -r https://raw.githubusercontent.com/wiki/dnullsecops/KnowledgeBase/requirements.txt

Links:

Clone this wiki locally