我正在尝试在我的 Slackware (14.2) 上构建和安装 mutt 客户端。我遵循标准程序configure && make && make install
。以下是有关该主题的问题。
- 如何检查所有 3 个步骤 (configure、make、make install) 是否正确?我可以将 std 错误重定向到如下文件,对吗:
.configure 2> configure_errors.log
make 2> make_errors.log
然后假设如果相应的文件为空(没有错误)则相应的步骤成功?
- 脚本的默认选项是什么
configure
?我可以找到选项列表及其含义,但找不到哪些是默认选项? - 我想在自定义目录 ($HOME/mutt) 中安装 mutt,但该
--prefix
选项似乎不起作用。当我添加--prefix=$HOME/mutt
到configure
脚本时,它最终只会将 mutt 安装在我发布脚本的目录中(即解压脚本的目录)。我的$HOME/mutt
目录是空的。
答案1
1)如果您不确定它是否会无错误地工作,通常的做法(或者至少我的做法)是分别执行所有步骤,然后查看终端消息。
因此,执行configure
,观察它是否抱怨缺少库,为缺少的库安装软件包,configure
重复执行等等,直到成功。然后执行make
,如有必要,修复源文件中的错误(希望不会)。最后,如有必要,以 root 身份执行make install
。
将标准错误重定向到日志文件听起来有点复杂,通常你会立即发现问题。而且终端可以向上滚动。我还没有遇到需要这样做的问题,尽管偶尔我会查看它configure
自己生成的详细日志(因为它包含它尝试编译的测试程序),如果我无法从错误消息中找出到底出了什么问题。
2) 我认为没有办法找到默认值。您可以查看等configure.in
,Makefile.am
了解如果某个选项不清楚,它会做什么。您对哪个选项有疑问?
3)一般来说,对于自编译的软件,我建议/usr/local
使用来安装它们stow
,如下所述这里。仅当您未安装任何库或其他系统大部分$HOME
已找到的内容时,安装到的子目录才会起作用,因为默认情况下存在这些搜索路径。/usr/local
不幸的是,所有软件处理安装的方式都略有不同,即使使用自动工具也是如此,所以我不知道为什么它没有安装到目录中--prefix
。输入后你收到了什么消息make install
?它们通常会告诉你它试图将所有内容安装到哪里。有时部分或所有文件会忽略各种前缀,并安装在其他地方,因此你必须更改Makefile.am
等才能使其正常工作。