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>