Выполнение пользовательской команды с помощью sudo не работает

Consulte los requisitos enumerados enhttps://github.com/OpenXenManager/openxenmanager

Dice claramente Python 2.7, mientras que su stacktrace indica que Python 3.6 está instalado. Puede verificar esto con python -V.

Ambas versiones de Python pueden existir juntas (Las tengo ambas instaladas ). /usr/bin/openxenmanageres solo un breve script de shell que invoca un pythonno calificado. Podría ser suficiente cambiar la versión de python allí; podrías probar con cd /usr/share/openxenmanager; python2.7 window.py.

Si se asumen otras dependencias ambientales, es posible que deba operar en un entorno virtual; ver

https://wiki.archlinux.org/index.php/Python/Virtual_environment

1
03.04.2019, 00:11
2 ответа

Попробуйте sudo -E, это сохранит вашу среду, может работать не во всех случаях.
Поскольку вам нужна переменная среды, установленная.profile, также попробуйте sudo -i, это выполняет вход в систему, требуя, чтобы вы также использовали-c my_command
Если вы все еще хотите использовать sudo my_commandбез параметров any, проверьте файл /etc/sudoers и убедитесь, что переменная безопасного пути _установлена ​​и содержит путь, содержащий вашу команду. Для этого может потребоваться разместить его в общедоступном месте, например/usr/local/bin

1
28.04.2021, 23:35

sudoимеет PATH, отличный от вашего. sudoне читается ~/.profile.

Зацени:

$ sudo sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 

Сравните полученные выходные данные, чтобы убедиться, что ~/.local/binне включено.

Реализовать то, что вы хотите сделать, лучше всего так:

sudo ~/.local/bin/YourBashScript

Технически вы также можете изменить sudoПУТЬ, но это, вероятно, не лучший ваш ход.

1
28.04.2021, 23:35

Теги

Похожие вопросы