一直以为,sudo命令就是拿来升级权限的,今天才发现,sudo会把用户设置的环境变量重置,导致配置的环境变量失效,这也导致了我一直配置不成功avs2库。
要让环境变量在 sudo
下依旧生效,可以使用 -E
选项来 sudo
命令。-E
选项会保留用户的环境变量,这样就可以在 sudo
提升的权限下运行命令时,保留你的环境变量设置。
例如,如果你想要在 sudo
下运行一个命令并保留 PKG_CONFIG_PATH
环境变量,你可以这样做:
sudo -E command
这里的 command
是你想要在 sudo
权限下运行的任何命令。通过使用 -E
选项,PKG_CONFIG_PATH
以及其他用户设置的环境变量将会被保留。
另外,你也可以在 sudo
命令中显式地设置环境变量,如下所示:
sudo env PKG_CONFIG_PATH=$PKG_CONFIG_PATH command
在这个例子中,我们通过 env
关键字在 sudo
命令中显式地设置了 PKG_CONFIG_PATH
环境变量,并将其设置为当前用户的值。这样,即使 sudo
重置了环境变量,你也能确保 PKG_CONFIG_PATH
在执行 command
时是正确的。
请注意,虽然 -E
选项可以保留环境变量,但在某些情况下,出于安全考虑,某些环境变量可能会被 sudo
自动清除或重置。因此,如果你发现某些环境变量即使在 -E
选项下也不起作用,可能需要显式地设置它们。