爲了解決您的兩件事情依次是:
這最後一個是困難的。下面是做這件事,我個人認爲錯:
# Don't do this
libsecuritydir = /lib/security
libsecurity_LTLIBRARIES = pam_mymodule.la
這繞過--prefix
,如果你嘗試做一個本地安裝你的包而不直接寫入到您的生活系統,這將去可怕,可怕的錯誤,相信我,你會想在某個時候做。它也會阻止你在大多數Linux發行版的打包系統中打包你的程序。
正確的方法是把責任推到誰安裝包:使用AC_ARG_WITH
添加--with-libsecuritydir
參數configure.ac
並讓這默認爲$(libdir)/security
:
AC_ARG_WITH([libsecuritydir],
[AS_HELP_STRING([--with-libsecuritydir],
[Directory for PAM modules, pass /lib/security for live install])],
[], [with_libsecuritydir='$(libdir)/security'])
AC_SUBST([libsecuritydir], [$with_libsecuritydir])
,然後就去做
libsecurity_LTLIBRARIES = pam_mymodule.la
in Makefile.am
。
當您想要直接在系統中安裝實時版本(或正在構建二進制包)時,請將--with-libsecuritydir=/lib/security
傳遞給configure
。
相關:http:// stackoverflow。com/questions/8669303/gnu-autotools-install-binaries-into-bin-sbin-usr-bin-and-usr-sbin-intera – ptomato 2014-09-26 07:19:14