Answers:
避免在系统目录中进行本地安装。系统目录(例如/usr)保留给包管理系统使用。根据定义,如果您执行make install此操作意味着您要进行本地安装,而如果需要执行sudo make install此操作则意味着您无权访问任何编写位置。
因此,如果通过遇到权限错误make install,请检查并查看是否要尝试安装到系统目录中,然后/usr/local改为安装到或类似目录中。/usr/local保留用于本地安装。您可能需要授予自己写权限/usr/local,但这通常很容易做到。在Debian上,可以通过将自己添加到staff组中来完成。更好的是,找到或创建一个二进制软件包,然后安装它。这样,您可以轻松跟踪已安装的软件包并获得软件包管理的其他好处。
请注意,相反/usr/local,根据FHS,软件包管理系统未安装到该软件包中。有关概述,请参见Debian策略手册-文件系统层次结构的9.1节。
如上所述,sudo make install您可以将文件安装在目录中,否则该目录对于用户是只读的。
我可以预见的问题是,以后您可能要卸载或升级该程序。如果您仍然具有源代码目录树,则a make uninstall将为您卸载程序,但是,如果像许多其他典型用户一样,您已删除了源代码目录树,那么您很不走运。并且由于您尚未使用程序包管理系统安装该程序,因此您可能也无法以这种方式卸载该程序。
安装此类程序的最佳方法可能是将其安装在主目录中。将选项传递--prefix=/home/<user>/<some>/<directory>给./configure。这将使您可以使用,make install而不是sudo make install因为它/home/<user>/<some>/<directory>是可写的。卸载也很容易-rm -rf /home/<user>/<some>/<directory>