PEAR (PHP Extension and Application Repository) 是 PHP 早期的一个官方包管理工具,它允许你轻松地安装、升级和管理 PHP 的库(称为 "packages")和扩展(称为 "extensions")。

什么是 PEAR?
PEAR 就像是 PHP 世界的 "apt-get" (Debian/Ubuntu) 或 "yum" (CentOS),它提供了一个中心化的仓库,包含了大量由社区贡献的 PHP 代码包。
主要特点:
- 官方工具:由 PHP 官方团队维护。
- 历史悠久:自 PHP 4.3.0 版本开始就包含在内。
- 功能全面:不仅可以安装应用库,还能安装 PHP 扩展(如
memcached,imagick等)。 - 依赖管理:能够自动处理和安装包之间的依赖关系。
- 通道系统:除了默认的
pear.php.net,还可以添加其他 "通道" 来获取更多包。
安装 PEAR
大多数现代的 PHP 环境在安装时就已经包含了 PEAR,你可以通过以下命令检查是否已安装以及其位置:
pear version
如果已经安装,它会显示类似以下的输出:

PEAR Version: 1.10.13
PHP Version: 8.1.12
Zend Engine Version: 4.1.12
PEAR 没有安装或损坏,你可以手动安装它。
在 Linux (Debian/Ubuntu) 上
# 安 pear 包 sudo apt-get install php-pear # 如果需要,安装 PHP 开发文件,以便编译扩展 sudo apt-get install php-dev
在 Linux (CentOS/RHEL) 上
# 安装 PEAR sudo yum install php-pear # 如果需要,安装 PHP 开发文件 sudo yum install php-devel
在 macOS 上 (使用 Homebrew)
# Homebrew 通常会自动管理 pear # 如果出现问题,可以尝试重新安装 php brew reinstall php
在 Windows 上
Windows 上的安装比较复杂,通常建议使用集成环境如 XAMPP、WAMP 或 Laragon,它们通常会预配置好 PEAR。
核心命令详解
以下是 pear 命令最常用的一些子命令。
pear install - 安装包
这是最常用的命令,用于从 PEAR 仓库安装一个包。

语法:
pear install [options] package_name
示例:
# 安装一个通用的 HTTP 客户端库 pear install HTTP_Request2 # 安装一个用于处理日期的库 pear install Date_HumanDiff # 安装一个 PHP 扩展,memcached # (这需要你的系统已安装 libmemcached 开发库) pear install pecl/memcached
pear upgrade - 升级包
将已安装的包升级到最新版本。
语法:
pear upgrade [options] package_name
示例:
# 升级已安装的 HTTP_Request2 包 pear upgrade HTTP_Request2 # 升级 PEAR 自身 pear upgrade PEAR
pear uninstall - 卸载包
从你的系统中移除一个已安装的包。
语法:
pear uninstall package_name
示例:
# 卸载 Date_HumanDiff 包 pear uninstall Date_HumanDiff
pear list - 列出已安装的包
显示所有已安装的包及其版本。
语法:
pear list [options]
常用选项:
-a: 显示所有包,包括依赖的包。-c: 显示通道信息。
示例:
# 列出用户手动安装的包 pear list # 列出所有已安装的包(包括依赖) pear list -a
pear search - 搜索包
在 PEAR 仓库中搜索包。
语法:
pear search keyword
示例:
# 搜索包含 "auth" 关键字的包 pear search auth
pear channel - 管理通道
通道是 PEAR 包的来源,默认通道是 pear.php.net,你可以添加其他通道来获取更多包(pear.symfony.com)。
添加通道:
pear channel-discover pear.example.com
列出已注册的通道:
pear channel-list
配置文件
PEAR 的行为由配置文件控制,这个文件通常位于:
- Linux/macOS:
/etc/pear.conf或~/.pearrc - Windows:
C:\pear\pear.conf
你可以使用 pear config-get 和 pear config-set 来查看和修改配置项。
示例:
# 查看 PEAR 的安装目录 pear config-get php_dir # 设置 PEAR 的安装目录到 /usr/local/my_libs # (需要管理员权限) sudo pear config-set php_dir /usr/local/my_libs
现代替代品:Composer
虽然 PEAR 很重要,但如今在 PHP 开发社区中,Composer 已经成为事实上的标准包管理器。
为什么 Composer 更受欢迎?
| 特性 | PEAR | Composer |
|---|---|---|
| 依赖管理 | 相对简单,依赖版本控制较弱。 | 非常强大,支持语义化版本控制(^1.0, ~2.3),能精确控制依赖版本。 |
| 项目结构 | 通常将库安装到全局或系统级目录。 | 项目级管理,将依赖安装到项目内的 vendor/ 目录,不会污染全局环境。 |
| JSON vs XML | 使用 package.xml 定义包。 |
使用更简洁、更通用的 composer.json 文件。 |
| 生态系统 | 主要集中在 PEAR 官方仓库。 | 拥有 Packagist.org 这个巨大而活跃的中央仓库,几乎所有现代 PHP 库都在上面。 |
| 自动加载 | 需要手动 include 或 require。 |
自动生成 PSR-4 标准的自动加载文件,极大地简化了类加载。 |
| 与现代框架集成 | 较差。 | 深度集成,是 Laravel, Symfony, Drupal 等所有现代 PHP 框架的基石。 |
- 对于维护旧项目,你可能会遇到 PEAR。
- 对于任何新的 PHP 项目,你应该毫不犹豫地使用 Composer。
| 方面 | 描述 |
|---|---|
| 是什么 | PHP 官方的、历史悠久的包和扩展管理器。 |
| 优点 | 功能全面,能安装应用和扩展,官方支持。 |
| 缺点 | 依赖管理较弱,项目级隔离差,配置略显陈旧。 |
| 核心命令 | install, upgrade, uninstall, list, search, channel。 |
| 现状 | 已过时,对于新项目,请使用 Composer。 |
| 何时使用 | 维护旧的、基于 PEAR 的 PHP 项目时。 |
希望这份详细的介绍能帮助你全面了解 pear 命令!
