在makefile中传递sudo参数

3 投票
1 回答
12008 浏览
提问于 2025-04-17 23:49

我现在在一个代理后面。身处 bash 的世界,我把 HTTP_PROXY 和 HTTPS_PROXY 设置成了环境变量,指向这个代理。当我想用 sudo 安装一些东西,比如 pip 时,我必须加上 -E 这个标志,才能让安装顺利进行:

sudo -E pip install 'selenium>=2.40.0'

这样做是可以的,也能正常工作。

不过,我遇到了一个 Makefile,它里面调用了 sudo pip install。即使我在用 -E 标志调用 make:

sudo -E make install

但是当 Makefile 尝试从 pip 进行安装时,sudo 的 -E 标志并没有被识别到(我正在使用的 pip)。

请问 Makefile 能否识别在调用 sudo 命令时使用的标志呢?

1 个回答

1

在调用任何包含'sudo pip install'的makefile之前,你可以为sudo设置一个别名。比如:

alias sudo='sudo -E'
make install

如果你想在后面的过程中去掉这个别名,可以使用:

unalias sudo

(当然,如果你希望这个别名在整个过程中都有效,可以选择不去掉它)

撰写回答