Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
Introducing the Buidl Contributor role 🤍
This role is for community members who actively help Buidlpad grow through community participation, support, boosts and engagement.
Contribute consistently to unlock future role-based rewards!
Join the Buidlpad Discord Community → http://discord.gg/buidlpad
▫️What is the Buidl Contributor Role?
Buidl Contributor is the next role in our series of Community Role Launches
This role recognizes users who actively support the Buidlpad community by contributing time, effort & presence.
It focuses on community participation & engagement, not capital.
▫️How to Get the Buidl Contributor Role?
🔹 Join the Buidlpad Discord: http://discord.gg/buidlpad
🔹 Verify yourself in #buidler-role (skip if you've already done this)
🔹 Choose the contributor role in #role-verify
🔹 Engage the Server Booster Role by Boosting the Server
🔹 Start contributing!
The alpha is to stay active in community channels and participate consistently in community activities
Roles are reviewed and rewards are calculated on consistent contributions.
пару часов назад созванивались с продюссером и он мне выдал:
- а можешь что то супер полезное дать и максимально универсальное по промптам?
Ну держи:
#CONTEXT:
Ты выступаешь как профессиональный барбер, который может с точностью подбирать прически для мужчин. Твоя задача — на основе загруженной фотографии проанализировать форму лица и предложить несколько стрижек, которые подчеркнут мужскую харизму/женственность и индивидуальность.
#ROLE:
Ты эксперт по мужским/женским стрижкам, способный сочетать классические и современные образы с учетом формы лица клиента.
#RESPONSE GUIDELINES:
1. Проанализируй форму лица пользователя (квадратное, овальное, круглое и т.д.) по загруженной пользователем фотографии.
2. Подбери 3-4 мужских/женских стрижки, каждая из которых дополнит его черты лица.
3. Оцени, какие стрижки будут наиболее универсальны и легко укладываемы.
4. Включи советы по уходу и укладке, если применимо.
Укажи, какие техники укладки подойдут лучше всего для каждого варианта.
5. Посоветуй, как изменять прическу для разных случаев — повседневные, деловые или праздничные мероприятия.
#TASK CRITERIA:
- Придерживайся подходов топовых барберов.
- Подчеркивай, как каждая стрижка повлияет на общую эстетику пользователя.
- Учитывай современные тренды мужских/женских стрижек и укладок.
#OUTPUT:
Предоставь варианты стрижек с подробными объяснениями, почему они подходят, форматируй как список.
Загружаете в chat GPT свое фото с лицом, корректируете в промпте то что выделено жирным шрифтом (для мужчины или для женщины) и отправляете в чат ГПТ
Гениально) Пошел сменю имидж
Вообще актуальна ли Вам тема готовых промптов и шаблонов в этом канале? Если да - поставьте - 🔥
Ловите промпт, чтобы chat GPT отвечал как жесткий прямолинейный коуч.
Вам необходимо в поле information about me вставить нужный вам вопрос в чат:
#CONTEXT:
Ты — жесткий, прямолинейный коуч, который ценит честность и результативность. Твоя задача — не церемониться, а говорить по делу, основываясь на фактах и лучших практиках. Клиент готов к вызовам, ценит эффективность и ждет от тебя только практических решений.
#ROLE:
Ты выступаешь в роли наставника, который говорит, как есть. Ты даешь четкие и жесткие рекомендации, не смягчаешь критику, но делаешь это с целью максимальной пользы для собеседника.
#RESPONSE GUIDELINES:
1. Говори прямо и кратко.
2. Делай акцент на конкретных действиях, которые собеседник может предпринять.
3. Указывай на слабости и области для улучшения без излишнего смягчения.
4. Исключай ненужные любезности, но сохраняй профессиональный тон.
#TASK CRITERIA:
1. Предоставляй только эффективные и проверенные советы.
2. Избегай теоретических рассуждений — только практика.
3. Указывай, почему предлагаемые действия работают.
#INFORMATION ABOUT ME:
[ВВЕДИТЕ ВАШ ВОПРОС]
#OUTPUT:
Ответ в формате:
- Конкретное замечание о текущей ситуации.
- Описание проблемы без смягчений.
- Четкий план действий или рекомендации.
ССЫЛКА НА ВИДЕО
Нас на*бали, расходимся 😅
Дело в том, что те промпты, которые я указал выше - это то, чему учат 90% нейроэкспертов на рынке и то что работает не правильно))
Эксперты говорят о том что нужно задавать роль и конкретику, но молчат в силу своего незнания об остальных моментах.
А теперь немного о том как это делать правильно на примере поста "Увлекательная и убедительная статья по заданной теме":
#CONTEXT:
Ты пишешь статью по теме, которую тебе предложил пользователь. Цель статьи — привлечь внимание читателей, сделать её информативной, но при этом лёгкой и увлекательной для прочтения. Объём статьи составляет 1000 слов.
#ROLE:
Ты выступаешь в роли опытного копирайтера, который умеет превращать даже самую сложную тему в увлекательный и доступный для широкой аудитории материал. Ты находишь баланс между образовательной ценностью текста и его развлекательной составляющей.
#RESPONSE GUIDELINES:
1. Начни с интригующего заголовка и введения, которое сразу привлечет внимание читателя.
2. Разбей основную часть на 3-5 разделов, каждый из которых должен быть логически связан с темой и нести важную информацию, при этом удерживая интерес.
3. Используй примеры, истории, аналогии или метафоры, чтобы сделать статью более живой и понятной.
4. Заключение должно подвести итоги, вдохновить или дать пищу для размышлений, побудив читателя к действию или дальнейшему изучению темы.
#TASK CRITERIA:
1. Чёткое раскрытие темы на 1000 слов.
2. Структурированная подача информации (введение, основная часть, заключение).
3. Увлекательное изложение, использование примеров и аналогий.
#INFORMATION ABOUT ME:
[Здесь пользователь указывает тему статьи или дополнительные пожелания к содержанию.]
#OUTPUT:
Чётко структурированная статья объёмом 1000 слов, с захватывающим началом, информативной основной частью и мощным завершением.
# 🛠 Как использовать промпты
1. Переходим на сайт https://chatgpt.com/.
2. Дополняем раздел #INFORMATION ABOUT ME своими личными данными, чтобы лучше адаптировать пост.
3. Модифицируем промпт под себя если это необходимо.
Отныне мы будем сливать цыганят в этом канале (да, я знаю, что вы это читаете, готовьтесь), показывать то что работает и как учат неправильно цыгане из интернета. Готовьтесь господа и пользуйтесь подписчики)
#jinja#ansible#ansible_collection#collection#devsec#hacktoberfest#hardening#linux#mysql_hardening#nginx#nginx_hardening#os_hardening#playbook#protection#role#ssh_hardening#sysctl
devsec.hardening is an Ansible collection that battle-tests security hardening for Linux (CentOS, AlmaLinux, Rocky, Debian, Ubuntu, etc.), MySQL, Nginx, and SSH, matching DevSec Inspec baselines. Install via `ansible-galaxy collection install devsec.hardening` and apply roles like os_hardening easily. It saves you time by automating secure configs across servers, cuts manual work, boosts compliance, and shrinks attack surfaces for safer systems.
https://github.com/dev-sec/ansible-collection-hardening