2015-07-28 54 views

回答

1

指令有状态

make 
sudo make install 

所以,你正在建设作为普通用户,当然,安装它需要root权限。

附注:使用DESTDIR将安装带有二进制文件不知道的前缀。安装DESTDIR的软件通常无法从安装位置运行。如果要安装在非标准位置,请在构建时进行安装(例如,如果项目使用自动工具,则将--prefix=/home/foo/mytree传递到./configure)。

DESTDIR仅用于创建包。我使用我自己的小包管理器在perl中执行,用于管理/usr/local树中的安装。它通过将DESTDIR设置为/usr/local/pkg/<product_name>make install,然后将所有内容符号链接到正确的位置来工作。

+0

错误。请参阅回答 – bafla

+0

@bafla - 废话。 * building *步骤是'make'命令。这就是你所问的。 'make install'通常直接在系统中安装'make'的结果。这需要root权限。 'DESTDIR'工具是为*包构建者*创建树的存档,因此可以稍后由*包管理器*安装。 –

+1

@bafla完全正确。你发现的是一种解决方法,这将导致未来的问题,因为你必须在'include'等包含'new_path/lib'到'LIBDIR'和'new_path/include'。不安装到默认目标是应该考虑的步骤之一。通常情况下,与本地系统管理员交谈以安装到'/ usr/local /'树中是合理的,本地编译的软件属于FHS。 –

-1

我刚才意识到我可以在安装时使用DESTDIR作为目标目录来更改安装目录。 在我的情况下,它看起来像这样:make DESTDIR=new_path install

+1

虽然你回答你自己的问题,但这不是你问题的答案。您正在*建筑*与*安装*混淆。 –

相关问题