我正在编写一个需要LLVM的程序,并考虑使用autotools在Linux上发布它,所以从用户的角度来看,这个过程看起来就像众所周知的./configure && make && sudo make install
。
使用autotools,通常依赖系统包管理器来安装依赖项。问题在于,无论出于何种原因,这都不适用于LLVM;在Ubuntu 14.04上,apt-get
认为最新版本是3.4,而实际上需要更新版本。因此,我需要提供一个脚本来首先下载和构建LLVM(它的本地副本,不干扰可能在系统上的任何旧版本),这个过程需要几个小时。
这个过程最明显的地方是configure
的开头。这被认为是正常和合理的吗?或者是否有configure
只应包含autotools通常放入其中的内容的约定,并且安装依赖项应该是用户首先单独运行的另一个脚本?在后一种情况下,是否存在关于应该调用单独脚本的约定?
答案 0 :(得分:2)
在配置期间不要安装任何东西。脚本名称为" configure"不是"安装依赖"。
编写配置检查,如果缺少llvm,请向用户说明如何安装它。如有必要,请提供单独的脚本来下载llvm。
最好将configure(和make)作为普通的非特权用户而不是root用户运行。所以你甚至没有权限安装任何东西。你必须检查" sudo"已安装等 也可能是用户正在安装的系统没有网络连接(防火墙等),因此您的下载将失败。