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, Я бы придерживался первого метода.

Другие вопросы по тегам