blog/source/_posts/linux-binary-placement.md
2021-05-28 11:27:37 +08:00

52 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Linux下二进制文件的放置
tags:
- DevOps
- Linux
- Directory
- Manaagement
categories:
- - DevOps
- 系统管理
keywords: '系统管理,Linux,bin,usr,sbin,二进制,放置'
date: 2021-05-28 11:27:11
---
在Linux系统的使用过程中如何放置二进制文件一直是困扰很多人的难题。其实Linux对于二进制文件的放置始终都是有其独特的规定的。<!-- more -->
## 常见目录的功能与区别
在Linux中常用来放置二进制文件的目录就那么几个不算手动增加到`PATH`环境变量中的目录)。这些目录之间的区别可以参考下表,在向其中放置文件的时候可以避免放入错误的文件。
| 二进制文件目录 | 面向用户 | 更新频率 | 放置内容 |
|---|---|---|---|
| `/bin` | 所有用户 | 系统更新 | 系统命令。 |
| `/sbin` | 超级用户 | 系统更新 | 系统命令。 |
| `/usr/bin` | 所有用户 | 应用安装 | 一般都是安装到系统供处理日常操作的应用。 |
| `/usr/sbin` | 超级用户 | 应用安装 | 一般都是安装到系统的用于对外提供服务的应用例如Nginx。 |
| `/usr/local/bin` | 所有用户 | 手工更新 | 本机无关的第三方应用。 |
| `/usr/local/sbin` | 超级用户 | 手工更新 | 本机无关的第三方应用。 |
## 推荐应用的手工安装过程
由于上面这些目录中的内容可能会随着系统的使用变得越来越臃肿,所以在手工安装应用的时候并不推荐直接将应用放置在这些目录中。
这里比较推荐的一种软件的安装方式是使用符号链接来安装。不少应用的安装说明上都会要求用户在安装应用以后修改`PATH`环境变量把应用的安装目录添加进去。但是这样做的后果就是,随着应用的安装,`PATH`环境变量中的内容会越来越多,每次执行一个命令的时候,系统都会沿着`PATH`中的所有路径去搜索一遍。
然而使用符号链接的安装方法就比较方便了,可以使用以下步骤来操作。
1. 创建一个所有用户都拥有访问权限的目录不要选择当前用户或者某个用户的Home目录。
1. 将需要安装的应用解压缩到这个目录中。
1. 记录下其中二进制可执行文件的位置,例如`./bin`。
1. 用下面的命令把所有的可执行文件都链接到`/usr/local/bin`目录里。
```bash
find ./bin -type f -and -perm +100 | xargs -I @ sh -c 'ln -s @ /usr/local/bin/`basename "@"`'
```
删除就比较费事了,需要做好几个判断。
```bash
find /usr/local/bin -type l | xargs readlink | grep /app | xargs -I @ sh -c 'rm `basename "@"`'
```