2014-11-04 57 views
1

如何从$ PATH变量中确定我的Makefile中哪个是我的程序最适合的安装位置,以便普通用户可以执行该程序?或者任何其他方法,因为所有系统都不同,每个makefile中都不能有一个静态值。

对我来说,第一个值是/ usr/sbin - 可能不会优先于/ usr/local/bin?

回答

4

不要猜测。你会弄错的。

使用/usr/local并让用户在make install时间覆盖它。

请参阅http://www.gnu.org/software/make/manual/make.html#Directory-Variables标准GNU Make变量用于此。

+0

我认为有一些方法可以根据系统确定哪些路径更好地使用。如果安装在BSD或Ubuntu上,可能“优选”路径是不同的。 – Deukalion 2014-11-04 17:12:15

+0

'/ usr/local' *是linux历史上的首选路径,BSD使用'/ opt/local'作为端口我不确定这是否也用于自编译,或者如果仍然是'/ usr/local' 。我想'LSB'可能会对此说些什么,但我不知道它是否正确。但正如我所说,你无法猜测。图书馆最适合的位置可能不在'$ PATH'中。用户可能试图使用“stow”或应用程序路径。不要。 – 2014-11-04 17:57:47

+0

'/ usr/bin'通常由供应商的软件管理填充,例如,一个Linux发行版的包管理器 - 你不想干涉它。这就是为什么'/ usr/local/...'是一个很好的默认值。这也是其他人使用的。 – reinierpost 2014-11-05 10:33:11