[CentOS] PHP 5.3: IUS vs CentOS repos
Always Learning
centos at u61.u22.net
Sat Aug 20 13:12:27 UTC 2011
On Sat, 2011-08-20 at 09:02 -0400, Stephen Harris wrote:
> On Sat, Aug 20, 2011 at 01:49:12PM +0100, Always Learning wrote:
> >
> > On Sat, 2011-08-20 at 07:43 -0400, Robert Heller wrote:
> >
> > > (I did some magic with rpm -qa php\* & sed to get the proper list of
> > > stuff to remove and then install.)
> >
> > One does not require the '\'
>
> Yes you do. Especially if there are any files in the directory that would
> match php*. Basically the shell will attempt to do glob expansion on php*
> (so if you have php.ini and php.conf in the directory then it'll expand
> to those). Only if no files match will it leave the php* as php*.
>
> So general good practice is to _always_ quote * (and ?) characters on
> command lines. You can either \ the character or put the whole thing
> inside '
>
> eg
> rpm -qa 'php*'
> or
> rpm -qa php\*
>
> But
> rpm -qa php*
> is considered bad and _may_ break and should not be used. It's just bad
> practice.
>
> Watch:
> $ ls
> $
>
> So an empty directory. We'd expect the command to work...
> $ rpm -qa php*
> php-mbstring-5.1.6-27.el5_5.3
> php-common-5.1.6-27.el5_5.3
> php-cli-5.1.6-27.el5_5.3
> php-5.1.6-27.el5_5.3
>
> Yup! So far so good. Now let's create some random files...
> $ touch php.foobar php.ini php.baz
> $ rpm -qa php*
> $
>
> Huh, no results. Let's debug...
> $ set -x
> $ rpm -qa php*
> + rpm -qa php.baz php.foobar php.ini
> $
>
> You can see the shell has done what I described; php* has been expanded
> (since it's a file glob) to the files in the directory that matched
>
> Quoting solves the problem:
> $ rpm -qa php\*
> + rpm -qa 'php*'
> php-mbstring-5.1.6-27.el5_5.3
> php-common-5.1.6-27.el5_5.3
> php-cli-5.1.6-27.el5_5.3
> php-5.1.6-27.el5_5.3
>
> (Debug mode was still on, so you can see how the shell handled it).
>
> Conclusion: when using * (or ?) on the command line, ALWAYS quote it to
> avoid unexpected side effects.
Thank you. I see the strange unexpected effect:
Server 6 : mkdir /example
Server 6 : ls /example
Server 6 : cd /example
Server 6 : .l
total 12
drwxr-xr-x 2 root root 4096 Aug 20 14:06 .
drwxr-xr-x 24 root root 4096 Aug 20 14:06 ..
Server 6 :
Server 6 :
Server 6 : touch php.foobar php.ini php.baz
Server 6 : .l
total 12
drwxr-xr-x 2 root root 4096 Aug 20 14:07 .
drwxr-xr-x 24 root root 4096 Aug 20 14:06 ..
-rw-r--r-- 1 root root 0 Aug 20 14:07 php.baz
-rw-r--r-- 1 root root 0 Aug 20 14:07 php.foobar
-rw-r--r-- 1 root root 0 Aug 20 14:07 php.ini
Server 6 : ls
php.baz php.foobar php.ini
Server 6 : rpm -qa php*
Server 6 :
Server 6 : cd /
Server 6 : rpm -qa php*
php-pdo-5.1.6-27.el5_5.3
php-mbstring-5.1.6-27.el5_5.3
php-cli-5.1.6-27.el5_5.3
php-mcrypt-5.1.6-15.el5.centos.1
php-common-5.1.6-27.el5_5.3
php-mysql-5.1.6-27.el5_5.3
php-5.1.6-27.el5_5.3
phpmyadmin-2.11.11.3-2.el5.rf
Server 6 :
Yes. Very unexpected results !
Thanks again.
Paul
Always Learning.
More information about the CentOS
mailing list