From: sledguy on
I have a general question about RPMs. I have a RH3 system that
originall was configured with Perl as an RPM. It has maybe 18 other
packages installed as well that are dependant on Perl. I have
recently gone to the Perl site, downloaded the source and built and
installed the latest perl5.8.8. It is up and running an all seems
well.

But now I have an older version, 5.8.0 that is still installed which
was installed by RPM. I thought I would just remove it but when I
execute rpm -e without the -nodep qualifier it tells me of all the
packages that are dependant upon it.

Question is, how do I proceed? Can I simply nuke with rpm -e -nodep
the main perl rpm and leave the others and they will keep working? Or
do I need to uninstall them all and install them through cpan or
something similar?

I have changed all my symlinks to point to 5.8.8 and the programs I
know that use perl (webalizer, spamassassin, openwebmail) are all
running with it just fine.

Any help is appreciated.

Thanks,
Dan
From: Nico Kadel-Garcia on
On 4 Apr, 03:58, sled...(a)gmail.com wrote:
> I have a general question about RPMs.  I have a RH3 system that
> originall was configured with Perl as an RPM.  It has maybe 18 other
> packages installed as well that are dependant on Perl.  I have
> recently gone to the Perl site, downloaded the source and built and
> installed the latest perl5.8.8.  It is up and running an all seems
> well.
>
> But now I have an older version, 5.8.0 that is still installed which
> was installed by RPM.  I thought I would just remove it but when I
> execute rpm -e without the -nodep qualifier it tells me of all the
> packages that are dependant upon it.
>
> Question is, how do I proceed?  Can I simply nuke with rpm -e -nodep
> the main perl rpm and leave the others and they will keep working?  Or
> do I need to uninstall them all and install them through cpan or
> something similar?
>
> I have changed all my symlinks to point to 5.8.8 and the programs I
> know that use perl (webalizer, spamassassin, openwebmail) are all
> running with it just fine.
>
> Any help is appreciated.
>
> Thanks,
> Dan

You build a new Perl RPM using RedHAt's base SRPM and the new source
code, in order to install it and resolve all the dependencies.
Installing Perl modules and components on top of RPM's is begging for
things to break if you don't do this.
From: Moe Trin on
NOTE: Posting from groups.google.com (or some web-forums) dramatically
reduces the chance of your post being seen. Find a real news server.

On Thu, 3 Apr 2008, in the Usenet newsgroup comp.os.linux.setup, in article
<4896971b-9880-4353-9020-aa18644f6529(a)e6g2000prf.googlegroups.com>,
sledguy(a)gmail.com wrote:

>But now I have an older version, 5.8.0 that is still installed which
>was installed by RPM. I thought I would just remove it but when I
>execute rpm -e without the -nodep qualifier it tells me of all the
>packages that are dependant upon it.

You are discovering the problem with package managers. Most of them do
not tolerate someone bypassing them by installing tarballs.

>Question is, how do I proceed? Can I simply nuke with rpm -e -nodep
>the main perl rpm and leave the others and they will keep working?

No - at the least this will break rpm - never mind other applications
that may want perl.

>Or do I need to uninstall them all and install them through cpan or
>something similar?

This won't work either.

>I have changed all my symlinks to point to 5.8.8 and the programs I
>know that use perl (webalizer, spamassassin, openwebmail) are all
>running with it just fine.

rpm doesn't look at the binaries, simlinks or anything else. It has
a database of what is installed, and knows all about dependencies.
Try 'man rpm' and look under the 'QUERY OPTIONS'.

If you really have to have version 5.8.8 because it does something
that version 5.8.0 does not (meaning, you are not chasing version
numbers), then your only solution is to build a new rpm on your own.
The easiest way to do this is to locate the existing source rpm for
perl-5.8.0, (probably named something like perl-5.8.0-109.src.rpm)
and install that (stuff gets put into /usr/src/redhat/*/* or similar)
and replace the tarball it contains with your new one. REVIEW the
spec file (probably /usr/src/redhat/SPECS/perl.spec) for needed
changes. Then use rpmbuild to create a new binary package. See the
man pages for each command for more details. You may also wish to
read the RELEASE-NOTES file on the first CD of your original install.

Old guy
From: Doug Laidlaw on
Moe Trin wrote:

> NOTE: Posting from groups.google.com (or some web-forums) dramatically
> reduces the chance of your post being seen. Find a real news server.
>
> On Thu, 3 Apr 2008, in the Usenet newsgroup comp.os.linux.setup, in
> article
> <4896971b-9880-4353-9020-aa18644f6529(a)e6g2000prf.googlegroups.com>,
> sledguy(a)gmail.com wrote:
>
>>But now I have an older version, 5.8.0 that is still installed which
>>was installed by RPM. I thought I would just remove it but when I
>>execute rpm -e without the -nodep qualifier it tells me of all the
>>packages that are dependant upon it.
>
> You are discovering the problem with package managers. Most of them do
> not tolerate someone bypassing them by installing tarballs.
>
>>Question is, how do I proceed? Can I simply nuke with rpm -e -nodep
>>the main perl rpm and leave the others and they will keep working?
>
> No - at the least this will break rpm - never mind other applications
> that may want perl.
>
>>Or do I need to uninstall them all and install them through cpan or
>>something similar?
>
> This won't work either.
>
>>I have changed all my symlinks to point to 5.8.8 and the programs I
>>know that use perl (webalizer, spamassassin, openwebmail) are all
>>running with it just fine.
>
> rpm doesn't look at the binaries, simlinks or anything else. It has
> a database of what is installed, and knows all about dependencies.
> Try 'man rpm' and look under the 'QUERY OPTIONS'.
>
> If you really have to have version 5.8.8 because it does something
> that version 5.8.0 does not (meaning, you are not chasing version
> numbers), then your only solution is to build a new rpm on your own.
> The easiest way to do this is to locate the existing source rpm for
> perl-5.8.0, (probably named something like perl-5.8.0-109.src.rpm)
> and install that (stuff gets put into /usr/src/redhat/*/* or similar)
> and replace the tarball it contains with your new one. REVIEW the
> spec file (probably /usr/src/redhat/SPECS/perl.spec) for needed
> changes. Then use rpmbuild to create a new binary package. See the
> man pages for each command for more details. You may also wish to
> read the RELEASE-NOTES file on the first CD of your original install.
>
> Old guy

I missed the beginning of this, but if there is a version of perl on there
that needs to be removed, "make uninstall" or its equivalent will (or
should) get rid of it for a fresh start.

The O.P. could try installing his present 5.8.8. package with checkinstall:
www.asic-linux.com.mx/~izto/checkinstall/ It is available for most
distros, and will take care of the problems he has faced. I am monitoring
the mailing list, which is very low volume. I have had occasional failures
with it, but it would be better (and far easier) than building one's own
RPM. Try looking for it with your package manager. To use it,
run ./configure and "make" as usual, then instead of "make install"
run "checkinstall" as root.

HTH,

Doug.
From: Nico Kadel-Garcia on
Doug Laidlaw wrote:
> Moe Trin wrote:
>
>> NOTE: Posting from groups.google.com (or some web-forums) dramatically
>> reduces the chance of your post being seen. Find a real news server.
>>
>> On Thu, 3 Apr 2008, in the Usenet newsgroup comp.os.linux.setup, in
>> article
>> <4896971b-9880-4353-9020-aa18644f6529(a)e6g2000prf.googlegroups.com>,
>> sledguy(a)gmail.com wrote:
>>
>>> But now I have an older version, 5.8.0 that is still installed which
>>> was installed by RPM. I thought I would just remove it but when I
>>> execute rpm -e without the -nodep qualifier it tells me of all the
>>> packages that are dependant upon it.
>> You are discovering the problem with package managers. Most of them do
>> not tolerate someone bypassing them by installing tarballs.
>>
>>> Question is, how do I proceed? Can I simply nuke with rpm -e -nodep
>>> the main perl rpm and leave the others and they will keep working?
>> No - at the least this will break rpm - never mind other applications
>> that may want perl.
>>
>>> Or do I need to uninstall them all and install them through cpan or
>>> something similar?
>> This won't work either.
>>
>>> I have changed all my symlinks to point to 5.8.8 and the programs I
>>> know that use perl (webalizer, spamassassin, openwebmail) are all
>>> running with it just fine.
>> rpm doesn't look at the binaries, simlinks or anything else. It has
>> a database of what is installed, and knows all about dependencies.
>> Try 'man rpm' and look under the 'QUERY OPTIONS'.
>>
>> If you really have to have version 5.8.8 because it does something
>> that version 5.8.0 does not (meaning, you are not chasing version
>> numbers), then your only solution is to build a new rpm on your own.
>> The easiest way to do this is to locate the existing source rpm for
>> perl-5.8.0, (probably named something like perl-5.8.0-109.src.rpm)
>> and install that (stuff gets put into /usr/src/redhat/*/* or similar)
>> and replace the tarball it contains with your new one. REVIEW the
>> spec file (probably /usr/src/redhat/SPECS/perl.spec) for needed
>> changes. Then use rpmbuild to create a new binary package. See the
>> man pages for each command for more details. You may also wish to
>> read the RELEASE-NOTES file on the first CD of your original install.
>>
>> Old guy
>
> I missed the beginning of this, but if there is a version of perl on there
> that needs to be removed, "make uninstall" or its equivalent will (or
> should) get rid of it for a fresh start.

That will also randomly flush components of *OTHER* RPM installed packages,
which the installation overwrote. Ideally, you'd run 'rpm -V' after that to
see which RPM's need to be re-installed.


> The O.P. could try installing his present 5.8.8. package with checkinstall:
> www.asic-linux.com.mx/~izto/checkinstall/ It is available for most
> distros, and will take care of the problems he has faced. I am monitoring
> the mailing list, which is very low volume. I have had occasional failures
> with it, but it would be better (and far easier) than building one's own
> RPM. Try looking for it with your package manager. To use it,
> run ./configure and "make" as usual, then instead of "make install"
> run "checkinstall" as root.
>
> HTH,
>
> Doug.