# USE 标志管理实践

URL: https://caijiao.org/gentoo/use-practice
Source: docs/gentoo/use-practice.md
Description: 本章介绍 Gentoo 系统中 USE 标志的实际管理方法，包括全局与包级设置、查询和重新编译软件包。

在掌握软件包安装与卸载后，下一步是 **实际管理 Gentoo 的 USE 标志**，实现系统功能裁剪和定制化。

## 一、全局 USE 标志设置

全局 USE 标志影响系统中所有软件包，配置文件为 `/etc/portage/make.conf`：

```bash
USE="X gtk qt5 wifi bindist"
````

* `X`：启用图形界面
* `gtk`、`qt5`：选择界面库
* `wifi`：启用无线支持
* `bindist`：适合二进制发布

修改后可使用以下命令重新编译受影响的软件包：

```bash
emerge --update --deep --newuse @world
```

## 二、包级 USE 标志设置

针对单个软件包设置 USE 标志，配置文件 `/etc/portage/package.use`：

```bash
echo "app-editors/vim python gui" >> /etc/portage/package.use
```

* `python`：启用 Python 支持
* `gui`：启用图形界面功能

> ⚡ 包级 USE 标志会覆盖全局 USE 标志，灵活调整单个软件包功能。

## 三、查询 USE 标志

1. 查看某包支持的 USE 标志：

```bash
equery uses app-editors/vim
```

2. 查看当前系统 USE 标志：

```bash
emerge --info | grep USE
```

3. 查询受 USE 标志影响的软件包：

```bash
emerge -pvuDN @world
```

* `-p`：显示操作计划
* `-v`：显示详细信息
* `-u`：更新
* `-D`：递归依赖
* `-N`：考虑 USE 标志变化

## 四、重新编译受 USE 标志影响的软件包

修改 USE 标志后，需要重新编译受影响的软件包：

```bash
emerge --ask --changed-use --deep @world
```

* `--changed-use`：根据 USE 标志变化重新编译软件包
* `--deep`：递归处理依赖

## 五、建议操作

* 使用全局 USE 标志统一系统功能
* 对特殊软件包使用包级 USE 标志，避免影响其他软件
* 定期检查 USE 标志和软件包状态，保持系统一致性
