来自LFFS文档:
.bash_profile 中的 exec env -i.../bin/bash 命令将正在运行的 shell 替换为具有完全空环境(HOME、TERM 和 PS1 变量除外)的新 shell。这可以确保主机系统中不需要的和潜在危险的环境变量不会泄漏到构建环境中。这里使用的技术达到了确保环境清洁的目的。
什么情况会导致这个问题呢?
有没有简单的例子?
答案1
有很多变量会改变 shell 的行为方式、执行哪些程序或可以挂接到新程序。一些更有问题的环境变量的示例是CDPATH
、、、、。LD_LIBRARY_PATH
LD_PRELOAD
PATH
通过重置环境,您可以确保干净、健全的构建环境,而无需照顾/重置所有类型的环境变量。