# Portage 基本概念

URL: https://caijiao.org/gentoo/portage-basics
Source: docs/gentoo/portage-basics.md
Description: 本章介绍 Gentoo Portage 的基本概念，包括 ebuild、软件库、依赖管理及 USE 标志，帮助理解 Gentoo 包管理系统。

在掌握软件安装与管理之后，下一步是 **理解 Portage 的基本概念**，这是 Gentoo 系统的软件包管理核心。

## 一、什么是 Portage

Portage 是 Gentoo 的源码包管理系统，类似于其他发行版的 apt 或 yum，但它以 **源码编译安装** 为特点：

- 支持高度定制化的编译选项  
- 可以根据 USE 标志启用或禁用特定功能  
- 管理依赖关系和系统更新

## 二、关键组件

1. **ebuild**  
   - 描述软件包信息、依赖关系和编译方法的脚本文件  
   - 存放在 Portage 树的 `*/category/package/package-version.ebuild`

2. **Portage 树**  
   - 软件包集合的目录结构  
   - 同步命令：

    ```bash
    emerge --sync
    ````

3. **USE 标志**

   - 控制软件包功能和依赖
   - 可全局配置（`/etc/portage/make.conf`）或单包配置（`/etc/portage/package.use`）

## 三、依赖管理

Portage 自动管理软件包依赖：

- **直接依赖**：软件包安装所必须的其他包
- **间接依赖**：间接引入的依赖
- Portage 在安装时会递归解决依赖，确保系统完整性

示例安装软件包时自动处理依赖：

```bash
emerge --ask app-editors/vim
```

## 四、更新策略

- **同步 Portage 树**：

```bash
emerge --sync
```

- **更新系统**：

```bash
emerge --update --deep --newuse @world
```

> 💡 Portage 会根据 USE 标志和依赖重新编译软件包，实现系统优化。

## 五、建议操作

- 定期同步 Portage 树，保持软件包最新
- 根据硬件和需求配置 USE 标志
- 学习 `equery` 和 `emerge` 命令，便于查询软件包信息
