PEAR: Search packages in all channels using Pyrus

Our old and trusted PEAR Installer supports multiple package sources, called "channels", since version 1.4.0 - which was released in 2005. You can host a channel yourself using one of the channel server applications. The most popular one is probably Pirum.

One of the problems with such a distributed network is finding the channel that provides the package you are looking for.

Pyrus, the PHP 5.3+ PEAR installer, has a solution for that:

$ pyrus search mockery
Pyrus version 2.0.0a4 SHA-1: 72271D92C3AA1FA96DF9606CD538868544609A52
Using PEAR installation found at /opt/phpfarm/inst/php-5.3.16/pear
Searching for mockery
1 packages found:
pear.survivethedeepend.com/Mockery

$ pyrus install pear.survivethedeepend.com/Mockery
Pyrus version 2.0.0a4 SHA-1: 72271D92C3AA1FA96DF9606CD538868544609A52
Using PEAR installation found at /opt/phpfarm/inst/php-5.3.16/pear
Sorry, the channel "pear.survivethedeepend.com" is unknown.
Do you want to add this channel and continue?

Please choose: 
  yes
  no
[yes] : 
Discovery of channel pear.survivethedeepend.com successful
Downloading pear.survivethedeepend.com/Mockery
...

Pyrus is able to search all existing channel servers and automatically discover then when they are not known yet.

Technical background

When running pyrus search, it asks the online service pyr.us. This service checks for package releases on the channel servers every night and indexes them.

The list of channel servers that pyr.us uses is fetched from pear.php.net/channels/xbel.php , which is an export of our PEAR channel server list.

So if you want Pyrus to find the packages of your PEAR channel, register your channel on this list.

Written by Christian Weiske.

Comments? Please send an e-mail.