命令可以作为用户使用,但不能作为 sudo 使用?

命令可以作为用户使用,但不能作为 sudo 使用?

我正在构建 gendev(世嘉创世纪开发环境),遇到了一个有趣的问题。

当我尝试通过“sudo make install”安装时,出现错误,提示未找到名为“rescomp”的程序,如下所示:

make[1]: Entering directory `/home/bubo/Genesis-Dev/gendev-read-only/sgdk/sgdk-read-only'
rescomp res/libres.res res/libres.s
make[1]: rescomp: Command not found
make[1]: *** [res/libres.s] Error 127
make[1]: Leaving directory `/home/bubo/Genesis-Dev/gendev-read-only/sgdk/sgdk-read-only'
make: *** [sgdk-read-only/libmd.a] Error 2

但是,如果我恢复为普通用户(不是 root 用户),我可以毫无问题地执行 rescomp 程序。这是环境变量的问题吗?我如何才能让 root 帐户也能使用“rescomp”?

答案1

事实证明,原始“make”仅修改了用户的 PATH 环境变量,而不是 root 的!

我使用以下命令发现了这一点:

printenv

在每个帐户上,然后我注意到不同的路径变量,从那里我通过以根用户身份登录并发出以下命令来修改根路径:

导出 PATH=$PATH:/usr/games:/usr/local/games

其中 /usr/games 和 /usr/local/games 是两个缺失的目录!

答案2

确保以which command用户身份检查路径指向的位置。

检查该命令路径是否在您的PATH根目录中。

相关内容