-
Notifications
You must be signed in to change notification settings - Fork 2
Virtualenv
Оскільки у всіх учасників проекту один й той самий код має запускатись з максимально однаковим результатом, версії програмного забезпечення потрібно чітко контролювати.
Версійний котроль має зберігатись й при оновленні системи, й при переїхні на нове обладання (наприклад повий ПК).
Найкращий спосіб, використовувати ізоловане середовище з встановленими в нього програмами фіксованих версій. Ізольованість дозволяє оновлювати основну ОС (та всі її компоненти), притім не змінюючи версії програм в цьому середовищі
В 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 %
Тепер при встановленні пакета засобами 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
- UserGuide - https://virtualenv.pypa.io/en/stable/userguide/
- venv в python 3.3 - https://habrahabr.ru/post/157287/
- Mozilla - https://mozilla-services.readthedocs.io/en/latest/server-devguide/release.html