/usr 是系统级程序存放目录,由包管理器维护,用于安装操作系统自带软件;/usr/local 是本地编译安装的路径,适合手动安装的第三方或自定义版本软件。1. /usr 用于通过 apt、yum 等包管理器安装的程序,如 nginx、curl 等,不建议手动修改。2. /usr/local 用于源码编译安装的软件,如 redis、特定版本的 python 或 node.js,更加灵活且避免与系统软件冲突。选择时应根据安装方式和需求判断:系统管理的软件放 /usr,自行安装或需要多版本共存的软件放 /usr/local。

在 Linux 系统中,/usr 和 /usr/local 是两个常见的目录,很多人在安装软件时会纠结该选哪个路径。其实这两个目录各有用途,搞清楚它们的区别,能帮助你更合理地管理系统的软件安装。

/usr 是系统级的程序和库存放地
/usr 目录通常用于存放操作系统自带的、通过包管理器(如 apt、yum、dnf)安装的程序和库文件。这些内容是由系统维护的,普通用户一般不需要手动改动。

举个例子,当你用 apt install nginx 安装 Nginx 时,它就会被放到 /usr/sbin/nginx 这样的路径下。
建议:

- 如果你是通过系统包管理器安装软件,就让软件自动安装到
/usr下。 - 不要轻易手动修改
/usr中的内容,以免影响系统稳定性。 - 某些发行版会对
/usr做只读处理,尤其是在服务器或容器环境中。
/usr/local 是本地编译安装的“自留地”
而 /usr/local 则更像是一个“额外空间”,适合你自己从源码编译安装的软件,或者不想与系统自带软件混在一起的第三方程序。
比如你从官网下载了 Redis 的源码,运行 make && make install,默认就会安装到 /usr/local/bin/redis-server。
特点:
- 通常由管理员手动操作
- 不受包管理器控制
- 更加灵活,但需要自己维护
使用建议:
- 自己编译安装的软件优先放在这里
- 避免与
/usr中的同名软件冲突 - 可以建立子目录结构(如
/usr/local/nginx)来分类管理不同项目
如何选择?看你的安装方式和需求
如果你只是想安装一个常用工具,比如 Git、curl、vim,推荐使用系统包管理器安装到 /usr,省事又安全。
如果你是从源码安装,或者需要特定版本的软件(比如开发环境中的 Node.js 或 Python),那就应该用 /usr/local。
判断标准可以是:
- 是否由系统管理?
- 是否需要多个版本共存?
- 是否希望便于清理或升级?
如果是自己折腾的,就往 /usr/local 放;如果希望保持整洁统一,就交给系统。
基本上就这些。理解这两个目录的分工,不仅能让你在安装软件时更有条理,也能避免一些潜在的冲突问题。










