如何在没有 sudo 权限的情况下构建应用程序?

如何在没有 sudo 权限的情况下构建应用程序?

我需要在 Ubuntu 9.10 服务器上进行什么设置,以便用户可以构建他们选择的应用程序(即 ./configure 、make && make install)而无需 sudo/admin 权限。

我只是觉得,为了构建应用程序而让用户访问他们可能不需要的系统部分,这有点安全风险。

答案1

如果您的用户使用

./configure --prefix=/home/user/opt/

或者对于 cmake 项目

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

这会将程序安装在该前缀中(而不是默认的 /usr/local/),然后您的用户应该能够像这样运行该程序:

/home/user/opt/bin/program

如果您希望他们能够仅使用名称(不使用完整路径)来运行程序,则需要添加/home/user/opt/bin到路径环境变量中,编辑用户 .profile 并添加以下行:

export PATH=/home/user/opt/bin:$PATH

请注意,以这种方式安装的程序将只对特定用户开放,但这是一种方法

答案2

用户无需 sudo 权限即可构建应用程序。唯一需要 sudo 权限的情况是当您想要将某些内容安装到系统目录中时。

./configure并且make始终无需 sudo 权限即可工作。make install通常需要 sudo 权限,因为它会将应用程序安装到/usr/local/usr(有时/opt)。

但是,如果您更改安装路径的前缀(即./configure --prefix=~/usr/local),使得安装在用户主目录树内执行,则不需要 sudo 权限make install

答案3

添加什么txwikinger已经说过,您可能还想检查一下fakeroot,这提供了构建 .deb 包的机会,而dpkg无需提升权限。当然,安装这些包通常需要 sudo 访问权限。

相关内容