[Bioperl-l] Re: RPMs for Bioperl and GMOD
Allen Day
allenday at ucla.edu
Fri Jan 28 14:50:08 EST 2005
> Do you mean your RPM or bioperl-db on Oracle? I'm running the latter
> all the time.
i mean the RPM. it is the same as bioperl-db cvs head as of last night.
> > I'd also like someone with Oracle to help me make a DBD::Oracle rpm.
> > Having a DBD::Oracle RPM will allow me to leave the Oracle code in
> > Bioperl-DB.
>
> If installing the supposed DBD::Oracle is then a prerequisite for being
> able to install the rest, then you are taking the wrong path.
> DBD::Oracle itself will depend on the Oracle client libraries being
> installed which aren't even available on all platforms, aside from the
> fact that installing those is beyond your control and involves
> downloading about 350MB from OTN.
>
> Frankly, I can't believe that there is no way to specify dependencies
> that are optional. Why would you require all of DBD::mysql, DBD::Pg, and
> DBD::Oracle if all a persons wants is mysql?? All of these will link to
> compiled runtime libraries and why should a failure to install DBD::Pg
> be of any concern to someone who wants to use mysql?
the problem is something internal to the rpm installer -- it determines
perl library dependencies at install-time rather than requiring you to
explicitly specify perl packages in the rpm metafiles (aka specfile).
so, for instance, if i i tried to install perl-Generic-Genome-Browser, i
might get an error like:
requires perl(Bio::Root::Root)
which could be removed by one of:
(1) installing the perl-bioperl package
(2) installing bioperl from cvs
(3) installing bioperl from cpan
there may be a way to code into the metafile to ignore missing perl
dependencies detected in the installation process -- i need to look into
this.
> BTW DBD::Oracle is on CPAN. I thought that would make it easy to
> construct an RPM? (There's few if any binaries though - for a reason.
> Compiling DBD::Oracle may be a charm on some but involve some major
> tweaking on other platforms. I've been there multiple times, I know
> what I'm talking about.)
given what i've said above, if i had a DBD::Oracle perl module installed,
it would prevent rpm from throwing errors about missing dependency
"perl(DBD::Oracle)". however, i can't build DBD::Oracle into an rpm
because the make process links to the oracle headers and .so files. the
DBD::Oracle can be made w/o having explicit dependencies on the oracle
binary install, so it would install on a machine that didn't have oracle
installed (but wouldn't work). so as far as a bioperl-db rpm goes, here
are the options i'm looking into:
(1) get a binary perl-DBD-Oracle rpm built by someone with Oracle,
leaving out the binary Oracle file dependency. distribute
bioperl-db from cvs as-is
(2) patch Oracle classes out of bioperl-db as part of the rpm build
process. distribute modified bioperl-db.
(3) modify rpm "detection of installed perl modules" functionality
to have rpm explicitly ignore missing DBD::Oracle dependency.
(1) and (2) will definitely work. i don't yet know the feasibility of
(3).
-allen
More information about the Bioperl-l
mailing list