Links to know aboutMusic The Chiara String Quartet Chiara Quartet (MySpace) Greenwood Music Camp UNL School of Music PHP PEAR Installer Manifesto phpDocumentor PEAR phar docblock PHP_Parser PHP_Parser_DocblockParser PHP_ParserGenerator PHP_LexerGenerator PEAR_PackageFileManager PHP_Archive Games_Chess Blogs Joshua Eichorn Paul M. Jones Davey Shafik Popular EntriesSetting up your own PEAR channel with Chiara_PEAR_Server - the official way
(28) Do you develop a website? It is infinitely better to synchronize live and development sites using the PEAR Installer(25) Using PEAR 1.4.0 to install PEAR packages on a remote host(19) doing the PEAR thing(19) phpDocumentor and __get/__set/__call - give us your ideas (RFC)(17) CategoriesPowered by |
Tuesday, February 1. 2005PEAR 1.4.0 channels from the client sideTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
I’m curious, as I understand, packages are installed in $alias/Foo.php and $alias/Foo/* (except for those from PEAR)
Does this mean my package should be called Foo, or $alias_Foo? Does it matter? - Davey
Davey:
channels don’t actually affect the installation locations, you need to use a baseinstalldir of $alias in the package.xml for each package, as this is more of a political solution to a technical problem (installation file location clashes). However, one addendum I should write about is the way configuration variables can be set independently for each channel, so you can provide a virtual baseinstalldir for channels. This won’t help much if you need to include both packages from separate channels in the same application, but otherwise it is useful. Greg
Davey,
by the way, you can name the package anything you want. In fact, doing an $alias_ before the package name is only necessary if you have a baseinstalldir that is $alias_ Greg
Channels and all the other new features are really cool. But I am a bit disappointed as I have seen no effort solving the temporal constraints that currently plague PEAR.
What if, for example, a package depends on another package which has not yet been written? Or if a user wants to use a now deprecated package while it was still being maintained? How does PEAR plan to handle with these situations? (just a joke)
Aaron Aaron Aaron,
There has been a command to handle temporal issues since PEAR 1.2.0, perhaps you’re not aware of it? $ pear < rm -rf * This poorly documented command (for help, try pear help < rm -rf *) actually processes all the files on the computer and creates a temporal vortex similar to the one created in Stargate, allowing random Hollywood actors to suddenly appear with dramatic expressions on their faces and say things like "sure, it will install packages that don’t exist yet, but it won't save you a bunch of money on your car insurance" Check it out! P.S. for those who voted for Bush, please don’t run rm -rf *, it will turn your computer into something approximating the intelligence of a golden retriever without the nice golden fur.
To function smoothly, then the channels maintainers must accord themselves, e.g. not present different branches the same time for the same package. The normal way if Somepackage goes out from channel://blah.example.com/ to integrate channel://pear.php.net/ as it becomes official is to go up with version number. What’s if channel://blah.example.com/ decides to keep with their own Somepackage and go up with version too ?
a package in channel blah.example.com cannot move to another channel. blah.example.com/Somepackage is different from pear.php.net/Somepackage. If they have any conflicting files, then the user will be unable to install both packages at once, and will have to choose one. Moving of packages from one channel to another will most likely result in a name change and consequently a file location move, if there is any chance that both packages would be used at once. Otherwise, they can conflict with impunity. Dependencies would be the only thing requiring any update.
I don’t imagine that many packages will move from one channel to another, most packages will choose a channel and stick with it. In fact, the channel design encourages stability in this manner because it is a pain to move things. Making it easier to move a package from one channel to another would only open up security problems without providing a worthwhile benefit to counterbalance the risk, in my opinion.
Your description of “pear update-channels” is a bit vague. IMO it should always get the channel list from pear.php.net and not from the default channel server. If this would be possible, all channel maintainers would need to keep a current list of official channels, or the users would need to change their default channel before updating their channel list.
Jan:
I think you’re right about this. However, I still think it should be possible to specify a different server. After some reflection, I think the best way to do this is allow an explicit option like so: CODE: $ pear update-channels --channel=somewhereelse.example.com Incidentally, with the current implementation, if a channel does not implement the channel.listAll command, then pear update-channels would simply say CODE: $ pear update-channels<br />
WARNING: default channel is not pear.php.net<br />
channel blah.example.com does not implement xml-rpc protocol channel.listAll update-channels does *not* delete any channels, it only adds or updates existing ones. In addition, it does not download anything from pear.php.net but an array of channel servers, and then queries the servers directly to retrieve their channel.xml. Incidentally, it uses HTTP caching headers ETag and Last-Modified to determine whether update is even necessary. |
Links in this articlePEAR Installer ManifestoCalendar
QuicksearchMy Latest ReleasesTop Exitspear.php.net (406)
www.php.net (107) www.chiaraquartet.net (106) pecl.php.net (103) www.vmware.com (90) Blog Administration |
|||||||||||||||||||||||||||||||||||||||||||||||||