PEAR
PEAR es un sistema para la redistribución e instalación de librerías y frameworks para PHP que inicio en 1999, de la mano de Stig Bajkke, para promover la reutilización de código. PEAR es una biblioteca estructurada que promueve un estándar de codificación y mantiene un sistema para redistribuir y administrar paquetes.
El administrador de paquetes (PEAR package manager), que corre bajo linea de comandos, pear, permite instalar, desinstalar y actualizar paquetes de una forma fácil. Existen paquetes para tareas básicas, por ejemplo: autenticación, bases de datos, cifrado, XML.
Un paquete PEAR es distribuido como un archivo comprimido, tar.gz. Cada archivo consiste en un componente para PHP. De esta forma pear lo instala de manera global en el sistema.
Instalando PEAR
Versiones recientes de PHP, mayores a PHP 4.3.0, ya traen todo lo necesario para trabajar con PEAR. A menos que por extrañas razones no tengas instalado PEAR puedes pasar a la siguiente sección.
Windows
-
Una vez instalado PHP, ejecutar
c:\{PATH-TO-PHP}\go-pear.bat - Agregar la ruta al
path.
Linux/Unix
- Distribuciones basadas en Debian.
apt-get install php-pear
- Forma genérica.
# curl http://pear.php.net/go-pear | php
Servidor
Si deseas instalar PEAR en un servidor al que no tienes acceso por ssh.
- Descarga
http://pear.php.net/go-pear - Coloca el archivo
go-pear.phpen tu servidor. p.e.http://ihtoa.org/pear/go-pear.php - Úsalo desde la interfaz web.
Instalando paquetes
Como ya se menciono PEAR funciona a base de paquetes. Un paquete es una colección de archivos organizados y definidos por meta-información contenida en el paquete. Un paquete es una librería.
PEAR tiene en su canal por default varios paquetes bastante interesantes.
Un canal es un sitio web que distribuye paquetes para la instalación manual o mediante el PEAR package manager. Ademas provee meta-información de los paquetes que sirve para identificarlos y decidir cual de ellos instalar.
Por default, PEAR solo tiene registrado su propio canal: pear.php.net. Sin embargo, diversos proyectos basados en PHP pueden ofrecer su propio canal de PEAR para proporcionar una forma fácil de instalación para su aplicación. En la pagina Channels de PEAR se encuentra una lista con algunos otros canales, aunque no son los únicos.
Para instalar un paquete y/o agregar un canal se usa la linea de comandos. El comando pear nos permite administrar todo lo necesario para trabajar con PEAR.
Para ver una lista detallada de lo que podemos hacer basta teclear pear.
Canales
- channel-add <channel.xml> :: Agrega un canal.
- channel-delete <channel name> :: Elimina un canal, solo si no hay paquetes instalados de este canal.
- channel-discover [<channel.xml>|<channel name>] :: Agrega un canal.
- channel-info <channel name> :: Muestra información sobre al canal especificado.
- channel-update [<channel.xml>|<channel name>]:: Actualiza el canal especificado.
- update-channels :: Actualiza todos los canales.
Paquetes
- info [channel/]<package> :: Muestra información acerca del paquete especificado.
- install [channel/]<package> :: Instala el paquete especificado.
- uninstall [channel/]<package> :: Desinstala el paquete especificado.
- upgrade [[channel/]<package>] :: Actualiza el paquete especificado. Si no se especifica un paquete actualiza todos los paquetes de todos los canales.
Información
- list [-a] [-c <channel>] [-i] [[channel/]<package>] :: Si se especifica un paquete muestra todos los archivos que pertenecen a dicho paquete. Sin parametros muestra los paquetes instalados en el canal por default. -c channel muestra los paquetes instalados del canal especificado. -a muestra todos los paquetes instalados de todos los canales disponibles.
- list-all [-c channel] :: Muestra todos los paquetes del canal especificado, sino se incluye el parametro muestra todos los paquetes del canal por default.
- list-channels :: Muestra información de todos los canales disponibles.
- list-files <package> :: Muestra los archivo del paquete especificado.
- list-upgrades :: Muesta las actualizaciones de todos los canales disponible.
Ejemplos
- Symfony
# pear channel-discover pear.symfony-project.com Adding Channel "pear.symfony-project.com" succeeded Discovery of channel "pear.symfony-project.com" succeeded # pear list-all -c symfony All packages [Channel symfony]: =============================== Package Latest Local symfony/pake 1.1.4 Build system with capabilities similar to make. symfony/symfony 1.4.1 Symfony is a complete framework designed to optimize the development of web applications. symfony/YAML 1.0.2 The Symfony YAML Component. symfony/EventDispatcher 1.0.0 The Symfony Event Dispatcher Component. # pear install -o symfony/symfony downloading symfony-1.4.1.tgz ... Starting to download symfony-1.4.1.tgz (3,150,576 bytes) .............................................................................................................................................................................................................................................................................................................................................................................................................................done: 3,150,576 bytes install ok: channel://pear.symfony-project.com/symfony-1.4.1 # symfony --version symfony version 1.4.1 (/usr/share/php/symfony)
- FirePHP
# pear channel-discover pear.firephp.org Adding Channel "pear.firephp.org" succeeded Discovery of channel "pear.firephp.org" succeeded # pear list-all -c pear.firephp.org All packages [Channel pear.firephp.org]: ======================================== Package Latest Local firephp/FirePHPCore 0.3.1 Core feature and communication library firephp/ZendServer 0.1.3 FirePHP for Zend Server # pear install -o pear.firephp.org/FirePHPCore downloading FirePHPCore-0.3.1.tgz ... Starting to download FirePHPCore-0.3.1.tgz (22,630 bytes) ........done: 22,630 bytes install ok: channel://pear.firephp.org/FirePHPCore-0.3.1
# pear list-channels Registered Channels: ==================== Channel Alias Summary doc.php.net phpdocs PHP Documentation team pear.firephp.org firephp Server code for FirePHP Firefox Extension (http://www.firephp.org/) pear.php.net pear PHP Extension and Application Repository pear.symfony-project.com symfony The symfony project PEAR channel pecl.php.net pecl PHP Extension Community Library __uri __uri Pseudo-channel for static packages # pear list -a Installed packages, channel __uri: ================================== (no packages installed) Installed packages, channel doc.php.net: ======================================== (no packages installed) Installed packages, channel pear.firephp.org: ============================================= Package Version State FirePHPCore 0.3.1 stable Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.5 stable Console_Getopt 1.2.3 stable PEAR 1.9.0 stable Structures_Graph 1.0.3 stable XML_Util 1.2.1 stable Installed packages, channel pear.symfony-project.com: ===================================================== Package Version State symfony 1.4.1 stable Installed packages, channel pecl.php.net: ========================================= (no packages installed)
Para saber más
Adding Channel “pear.symfony-project.com” succeeded
Discovery of channel “pear.symfony-project.com” succeeded
# pear list-all -c symfony
All packages [Channel symfony]:
===============================
Package Latest Local
symfony/pake 1.1.4 Build system with capabilities similar to make.
symfony/symfony 1.4.1 Symfony is a complete framework designed to optimize the development of web applications.
symfony/YAML 1.0.2 The Symfony YAML Component.
symfony/EventDispatcher 1.0.0 The Symfony Event Dispatcher Component.
# pear install -o symfony/symfony
downloading symfony-1.4.1.tgz …
Starting to download symfony-1.4.1.tgz (3,150,576 bytes)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..done: 3,150,576 bytes
install ok: channel://pear.symfony-project.com/symfony-1.4.1
# symfony –version
symfony version 1.4.1 (/usr/share/php/symfony)


Recent Comments