Umake-在主目录之外安装时权限被拒绝(即使以 root 身份)

Umake-在主目录之外安装时权限被拒绝(即使以 root 身份)

我正在尝试使用 umake 安装 firefox-dev。默认情况下,umake 安装路径是~/.local/share/;我更希望它在/usr/local/或中/opt/

问题似乎是 umake(或者更确切地说,它运行的 os.py 脚本)没有创建文件/目录的权限 - 即使我以提升的管理员用户身份运行sudo,或者使用 切换到根用户,也会发生这种情况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/ 目录之外安装二进制文件?

编辑:命令 run - 中没有什么异常sudo umake web firefox-dev。无论我在哪里运行它。

至于安装路径(在安装尝试期间输入提示符),我再次尝试了所有选项,从明确声明的绝对路径(包括自己创建目录树,最终并且不出所料,只是将错误消息推回到文件创建)到目标目录并使用'./'。

我自己以 root 身份执行任何操作绝对没有任何问题,但这些权限似乎没有被 python 安装脚本继承。

答案1

好吧,事实证明这是一个(相当长期的)问题使用 Ubuntu Make。

上面的链接中,一位开发人员建议了几种解决方法。

第一个(首选)解决方案:

sudo -s
unset SUDO_UID
unset SUDO_GID

然后正常运行umake以安装您的应用程序 - 您现在可以将其安装到您想要的任何目录。运行完美。

第二种选择是预先创建所需的安装文件夹并设置安装目录的权限,以便非 root 用户可以写入,但我在某些应用程序中使用此方法时遇到了问题,即使以递归方式应用权限并umake使用 执行也是如此sudo。我坚持使用第一种方法。

相关内容