Я пытаюсь развернуть openstack, используя подход Kolla-ansible с этим руководством, используя виртуальную среду. пока пишу команду:
kolla-ansible -i ./all-in-one bootstrap-servers
Я получаю эту ошибку:
TASK [openstack.kolla.packages : Install packages] *****************************************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [localhost]: FAILED! => {"changed": false, "msg": "python3-apt must be installed and visible from /root/my_venv/bin/python."}
Я гуглил, но не нашел ничего полезного, и я супер новичок в ansible, openstack и linux. Каков наилучший порядок действий?
Я ожидаю, что результат будет примерно таким:
PLAY RECAP *********************************************************************************************
localhost: ok=8 changed=0 unreachable=0 **failed=0** skipped=3 rescued=0 ignored=0
Пакет python можно установить в нескольких местах. Различные виртуальные среды настроены на поиск различных наборов таких местоположений, поэтому некоторые из этих виртуальных сред могут найти пакет, а другие — нет.
Виртуальная среда, созданная по умолчанию, не сможет найти глобально установленные пакеты. Это по дизайну.
Ваша конкретная виртуальная среда /root/my_venv/
должна быть в состоянии найти python3-apt
. Даже если он установлен глобально, виртуальная среда его не найдет.
Один из способов — активировать виртуальную среду и pip3 install
пакет. Он будет виден только этой виртуальной среде.
Другой способ — установить пакет глобально, скажем, apt install
, а затем создать виртуальную среду для наследования глобальных пакетов вот так.
По умолчанию нет, глобальные пакеты не будут найдены.
В Linux установленное приложение должно быть «видимо» для каталога, чтобы пользователь мог получить к нему доступ. Это означает, что приложение должно находиться в каталоге, который указан в переменной среды PATH пользователя.
Спасибо. чтобы переменные среды могли получить доступ к PATH?
Переменная среды <code>PATH</code> представляет собой список каталогов, в которых оболочка будет искать исполняемые файлы при вводе команды. Если команда не найдена ни в одном из каталогов, перечисленных в <code>PATH</code>, оболочка выдаст сообщение об ошибке.
Спасибо. так что не имеет значения, где создается виртуальная среда, она никогда не сможет найти глобально установленные пакеты?