我想安装一个库 libevent。我忘了安装,su root
并./configure
用我的用户帐户运行。然后我注意到使用esolve
运行后出现错误。make install
esolve
我root
无法修改被修改的文件esolve
(我不太清楚为什么,因为这台计算机的 Linux 操作系统已被某些系统/网络管理员配置)。
现在我su root
运行./configure
,结果出现以下错误:
./configure: line 2178 config.log permission denied
那么我在哪里可以找到该config.log
文件并删除或修改它?
仅供参考-我的电脑:3.6.10-2.fc16.x86_64
答案1
如果您在特定目录中运行该./configure
命令,我希望该命令config.log
位于该位置。您可以运行此命令从该目录中查找文件:
$ find . -name "config.log"
如果您访问的目录是从另一个系统挂载的,那么 root 可能无权在该挂载的目录上执行任何操作。这在 Linux/UNIX 中很常见。
您可以通过运行此命令进行检查,再次从上面的同一目录运行此命令:
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
429G 375G 32G 93% /
如果您看到类似的路径:/dev/...
那么该目录就是计算机本地文件系统的一部分,如果您看到类似以下内容:
# windows share mounted locally
$ df -h .
Filesystem Size Used Avail Use% Mounted on
//remotecomputer/t 22T 12T 10T 55% /remote/t
# linux share mounted locally
$ df -h .
Filesystem Size Used Avail Use% Mounted on
cobbler:/cobbler/isos
43G 33G 8.3G 80% /cobbler/isos
然后,该文件系统从另一台计算机被挂载并显示为本地文件系统的一部分,即使从技术上讲它并非如此。
在最后这两种情况下,root 通常没有对共享目录的写权限。
在远程共享上进行编译
通常我会以非 root 用户身份运行编译的前两个步骤,然后切换到 root 用户执行安装步骤:
作为非 root
$ ./configure
$ make
以 root 身份
$ make install
假设安装的目标是计算机上的某个本地目录,例如/usr
或/usr/local
。