Обсуждение: Three versions of Pg.pm on my machine
Hi all,
This might be better posted to a perl newsgroup, if so,
please point me in the right direction.
I am running debian|testing and postgres 7.4.2, and I find
the following versions of Pg.pm on my machine.
# $Id:Pg.pm, v 1.1.1.1 2004.01.16 - 18166 bytes in
/usr/share/perl5/Pg.pm
package Class::DBI::Pg;
# $Id: Pg.pm v 1.15 2003.09.10 - 3419 bytes in
/usr/share/perl5/Class/DBI/Pg.pm
# $Id:Pg.pm v 1.92 2004.02.25 - 66285 bytes in
/usr/lib/Perl5/Pg.pm
I have sorted issues with Perl actually finding a script by
placing the "right" script early in Perl's search path.
When I run a perl script which includes '=connectdb('
sometimes I get a message telling me that the call to
connectdb has failed. This alerted me to the several
versions of Pg.pm on my machine. Version 1.92 has no
sub called connectdb. connectdb is found only in
version 1.1.1.1
I was hoping this problem would just go away. I find I
now have to do something about it. Probably a Perl
newsgroup would be the best place to ask, but I thought
I should ask here first in case I missed something.
Is it sensible to convert my scripts to use ver 1.92?
TIA
Richard A Lough
[CC sent to richard@sheugh.com]
"Richard A Lough" <richard@sheugh.com> says:
>
> I am running debian|testing and postgres 7.4.2, and I find
> the following versions of Pg.pm on my machine.
>
> # $Id:Pg.pm, v 1.1.1.1 2004.01.16 - 18166 bytes in
> /usr/share/perl5/Pg.pm
this is probably supplied by the debian package
libpg-perl
>
> package Class::DBI::Pg;
> # $Id: Pg.pm v 1.15 2003.09.10 - 3419 bytes in
> /usr/share/perl5/Class/DBI/Pg.pm
this is another module alltogether (Class::DBI::Pg),
and you need not worry about this
>
> # $Id:Pg.pm v 1.92 2004.02.25 - 66285 bytes in
> /usr/lib/Perl5/Pg.pm
this does not seem to be supplied by a (current)
debian package according to packages.debian.org
what is the output of:
# dpkg -S /usr/lib/Perl5/Pg.pm
?
> ... Probably a Perl
> newsgroup would be the best place to ask, but I thought
> I should ask here first in case I missed something.
I think the answer you are likely to get on a perl newsgroup
is to use DBI
# apt-get install libdbd-pg-perl
gnari
"Richard A Lough" <richard@sheugh.com> said on pgsql-general:
>
[discussion aboud different perl Pg.pm modules]
> > > /usr/lib/Perl5/Pg.pm
> Oops ... should be /usr/lib/Perl5/DBD/Pg.pm
> packages installed are
> libdbi-perl 1.41-1
> libdbd-pg-perl 1.32-1
just to clarify:
you can either use DBI together with DBD::Pg
in that case the connection is made by something like
use DBI;
my $bdh = DBI->connect('bdi:Pg:dbname=foo','user','passwd');
or, you can use the Pg module. in that case:
use Pg;
my $conn=Pg::connectdb("dbname=foo");
this is supplied by the package libpg-perl
>
> On my current machine I installed a symlink some time ago and
> this points to the old version of Pg.pm. The symlink is found
> early in any search by a perl script, hence the new version
> of Pg.pm is not found. However, I am moving my stuff onto a
> new machine. This does not have the symlink, but the new Pg.pm
> is found and will not work with my scripts.
it can be tricky to use symlinks unless you know exactly
what you are doing. for example, libpg-perl also installs
/usr/lib/perl5/auto/Pg/Pg.so
I am still not exactly clear on what you are doing, but i
hope this helps
gnari
> > # $Id:Pg.pm, v 1.1.1.1 2004.01.16 - 18166 bytes in > > /usr/share/perl5/Pg.pm > > this is probably supplied by the debian package > libpg-perl > > > # $Id:Pg.pm v 1.92 2004.02.25 - 66285 bytes in > > /usr/lib/Perl5/Pg.pm Oops ... should be /usr/lib/Perl5/DBD/Pg.pm > this does not seem to be supplied by a (current) > debian package according to packages.debian.org > > what is the output of: > # dpkg -S /usr/lib/Perl5/Pg.pm > ? dpkg: -S /usr/lib/Perl5/DBD/Pg.pm > > > ... Probably a Perl > > newsgroup would be the best place to ask, but I thought > > I should ask here first in case I missed something. > > I think the answer you are likely to get on a perl newsgroup > is to use DBI > # apt-get install libdbd-pg-perl > > gnari > packages installed are libdbi-perl 1.41-1 libdbd-pg-perl 1.32-1 On my current machine I installed a symlink some time ago and this points to the old version of Pg.pm. The symlink is found early in any search by a perl script, hence the new version of Pg.pm is not found. However, I am moving my stuff onto a new machine. This does not have the symlink, but the new Pg.pm is found and will not work with my scripts. The solution seems to be to convert the scripts on the new machine and to run my current setup until ready to change over. Thanks for your reply. Richard A Lough