Linux下二进制文件的放置

发布时间:2021-05-28 11:27
最后更新:2021-05-28 11:27
所属分类:
DevOps 系统管理

在Linux系统的使用过程中,如何放置二进制文件一直是困扰很多人的难题。其实Linux对于二进制文件的放置始终都是有其独特的规定的。

常见目录的功能与区别

在Linux中,常用来放置二进制文件的目录就那么几个(不算手动增加到PATH环境变量中的目录)。这些目录之间的区别可以参考下表,在向其中放置文件的时候可以避免放入错误的文件。

二进制文件目录 面向用户 更新频率 放置内容
/bin 所有用户 系统更新 系统命令。
/sbin 超级用户 系统更新 系统命令。
/usr/bin 所有用户 应用安装 一般都是安装到系统供处理日常操作的应用。
/usr/sbin 超级用户 应用安装 一般都是安装到系统的用于对外提供服务的应用,例如Nginx。
/usr/local/bin 所有用户 手工更新 本机无关的第三方应用。
/usr/local/sbin 超级用户 手工更新 本机无关的第三方应用。

推荐应用的手工安装过程

由于上面这些目录中的内容可能会随着系统的使用变得越来越臃肿,所以在手工安装应用的时候并不推荐直接将应用放置在这些目录中。

这里比较推荐的一种软件的安装方式是使用符号链接来安装。不少应用的安装说明上都会要求用户在安装应用以后修改PATH环境变量把应用的安装目录添加进去。但是这样做的后果就是,随着应用的安装,PATH环境变量中的内容会越来越多,每次执行一个命令的时候,系统都会沿着PATH中的所有路径去搜索一遍。

然而使用符号链接的安装方法就比较方便了,可以使用以下步骤来操作。

  1. 创建一个所有用户都拥有访问权限的目录,不要选择当前用户或者某个用户的Home目录。
  2. 将需要安装的应用解压缩到这个目录中。
  3. 记录下其中二进制可执行文件的位置,例如./bin
  4. 用下面的命令把所有的可执行文件都链接到/usr/local/bin目录里。
1
find ./bin -type f -and -perm +100 | xargs -I @ sh -c 'ln -s @ /usr/local/bin/`basename "@"`'

删除就比较费事了,需要做好几个判断。

1
find /usr/local/bin -type l | xargs readlink | grep /app | xargs -I @ sh -c 'rm `basename "@"`'

索引标签
DevOps
Linux
Directory
Management