【发布时间】:2014-12-31 16:09:52
【问题描述】:
我如何从 $PATH 变量中确定我的 Makefile 中哪个是我的程序最合适的安装位置,以便普通用户可以执行该程序?或者任何其他方法,因为所有系统都不同,所以每个 makefile 中不可能有一个静态值。
对我来说,第一个值是 /usr/sbin - 可能不喜欢 /usr/local/bin?
【问题讨论】:
标签: c linux makefile environment-variables
我如何从 $PATH 变量中确定我的 Makefile 中哪个是我的程序最合适的安装位置,以便普通用户可以执行该程序?或者任何其他方法,因为所有系统都不同,所以每个 makefile 中不可能有一个静态值。
对我来说,第一个值是 /usr/sbin - 可能不喜欢 /usr/local/bin?
【问题讨论】:
标签: c linux makefile environment-variables
别猜了。你会弄错的。
使用/usr/local 并让用户在make install 时间覆盖它。
请参阅 http://www.gnu.org/software/make/manual/make.html#Directory-Variables 了解用于此目的的标准 GNU Make 变量。
【讨论】:
/usr/local 是历史上linux上的首选路径,BSD使用/opt/local作为端口我不确定这是否也用于自编译或者是否仍然/usr/local。我想LSB 可能会对此说些什么,但我并没有立即意识到这一点。但正如我所说,你无法猜测。库的最合适位置可能不在$PATH。用户可能正在尝试使用 stow 或 app-paths。只是不要。
/usr/bin 通常由供应商的软件管理填充,例如Linux 发行版的包管理器——你不想干涉它。这就是为什么/usr/local/... 是一个很好的默认值。它也是其他人使用的。