根据 Ubuntu 版本,需要使用 sudo -s 执行 make 命令

根据 Ubuntu 版本,需要使用 sudo -s 执行 make 命令

我们有一个用于编译网络接口驱动程序的 Makefile。在 Ubuntu 9.04 安装中调用 Makefile 时,我们只需调用“make”。但是,在 Ubuntu 10.04 安装中调用 Makefile 时,我们需要调用“sudo -s make”。

在 Ubuntu 9.04 中,如果我们调用 'sudo -s make',编译会失败。而在 Ubuntu 10.04 中,如果我们调用 'make',编译也会失败。

尽管可以通过发出或不发出“sudo -s”位在两个版本的 Ubuntu 中进行编译,但我们希望有一个单独的 .sh 脚本,无论它在哪个版本的 Ubuntu 上运行,都可以成功调用 Makefile。与 10.04 相比,9.04 中处理 sudo -s 的方式有什么不同吗?如果有,那么在调用 make 时,确保在一个 .sh 脚本中同时满足两个版本要求的最佳解决方案是什么?

答案1

make命令应该编译源代码。这是一项不需要任何管理权限的任务。对于系统范围的安装,需要 root 权限。这意味着您的 makefile 不正确。我不知道它做什么,但它不应该这样做,因为它需要 root 权限。

考虑以下场景:用户想要安装软件。他/她启动

./configure --prefix=/home/joe/bin/usr && make && make install

make命令一定不能需要 root 访问权限,这样可以避免任何用户正在安装您的程序。您提到,这是一个网络驱动程序,通常不需要非 root 用户使用,无论如何,您应该修复您的构建。

相关内容