据我了解,当您构建位于其中的包foo/usr/local/src
时,您不需要是 root。但是,当我提取包并尝试运行构建脚本时,它会失败,因为它无权在以下位置创建新文件/usr/local/src/foo
:
$ pwd
/usr/local/src
$ ls -ld .
drwxrwsr-x 5 root staff 4096 May 16 20:36 .
$ ls -l foo.tar.gz
-rw-r--r-- 1 root staff 206574 May 16 20:35 foo.tar.gz
$ sudo tar xf foo.tar.gz
$ ls -ld foo
drwxr-sr-x 7 root staff 4096 May 16 20:36 foo/
解决这个问题的正确方法是什么?我应该将自己添加到组人员中并运行sudo chmod g+w foo
吗?
以 root 身份提取存档会创建一个 root 拥有的目录层次结构,您无法在其中创建文件。
我建议您将自己添加到
staff
组中,以便您可以在没有sudo
.或者,这是我个人会做的,在别处构建软件,例如在
$HOME
. 在构建几乎任何软件时都应该可以做到这一点。