Umake - отказано в разрешении при установке вне домашнего каталога (даже с правами root)
Я пытаюсь установить Firefox-Dev с помощью Umake. По умолчанию путь установки umake: ~/.local/share/
; Я бы предпочел, чтобы это было в /usr/local/
или же /opt/
,
Кажется, проблема в том, что у umake (или, скорее всего, в скрипте os.py, который он запускает) нет разрешения на создание файлов / каталогов - это происходит, даже когда я работаю как пользователь с правами администратора с повышенными правами, используя sudo
или я переключился на пользователя root с помощью sudo -i
,
Вот пример соответствующей ошибки:
os.makedirs(self.install_path, exist_ok=True)
File "/usr/lib/python3.5/os.py", line 231, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/lib/python3.5/os.py", line 241, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/opt/umake'
Есть ли способ установить двоичные файлы, используя umake, за пределами каталогов / home /?
Изменить: Ничего необычного в команде запуска - sudo umake web firefox-dev
, Неважно, где я его запускаю.
Что касается путей установки (введенных в подсказку во время попыток установки), я еще раз попробовал все варианты из явно объявленных абсолютных путей (включая создание самого себя, что в конечном итоге, что неудивительно, просто отправляет сообщения об ошибках обратно в создание файла) до в целевой директории и используя "./".
У меня нет абсолютно никаких проблем с выполнением каких-либо действий от имени пользователя root, но эти разрешения, похоже, не наследуются сценариями установки Python.
1 ответ
Хорошо, оказывается, это (довольно давняя) проблема с Ubuntu Make.
Есть несколько обходных путей, предложенных одним из разработчиков в приведенной выше ссылке.
Первое (предпочтительное) решение:
sudo -s
unset SUDO_UID
unset SUDO_GID
Тогда беги umake
чтобы установить приложение в обычном режиме - теперь вы сможете установить его в любой каталог. Работает без нареканий.
Второй вариант заключается в том, чтобы заранее создать нужную папку установки и установить разрешения для каталога установки, чтобы ее могли писать пользователи без полномочий root, но у меня возникали проблемы с использованием этого в некоторых приложениях, даже когда разрешения применялись рекурсивно и umake
был выполнен с использованием sudo
, Я бы придерживался первого метода.