Re: how can I merge and deprecate packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/2/05, Fulko.Hew@xxxxxxxxx <Fulko.Hew@xxxxxxxxx> wrote:
>
> On 11/1/05, Rob Riggs <rob@xxxxxxxxxxxxxxx> asked:
>
> > Hi Fulko,
> >
> > The rule requiring a reboot after each package install/remove sounds
> > absurd.
>
>
> The simple answer is...
>
> This system is an embedded system, with no CLI access.
> All upgrades are done via an SNMP transaction that defines the
> file to 'install', followed by a 'doit' command.
>
> Since one of the packages might be the kernel, As part of the 'install'
> the system must successfully be running the new kernel.  Well this
> is Linux so the only way to run the new kernel is to reboot.
> (Don't even suggest virtualization.  :-)  )
>
> Therefore since the system doesn't know what packages require a
> reboot, the SNMP based installer reboots after any and every package.
>
> PS. The SNMP based system also does not currently support a 'list of'
> packages to be installed at a single time.
>
>
> > Perhaps you can enlighten us as to why that rule and the "no
> > rpm -e" restriction exist.
>
>
> Because 'installation is a captured process', not a CLI, there is no
> access to the rpm command directly.  I just looked at the code that
> was written, and the person does an 'rpm -e' on the old version of
> the package before an 'rpm -i' is done on the new version of the package.
>
Eeek.  Don't try that with glibc, you won't like the results.  Or bash
or any other number of packages critical to the systems functioning.  
If you do glibc will be gone, and good luck installing the new one
(unless you have statically linked rpm, which as I understand has
problems of its own).

> We also perform the same sequence of erase/install when an 'old' package
> needs to be installed.  ie.  Fallback to the previous version
> Actually, in all cases, if the system doesn't come back after the
> reboot mentioned above there is a mechanism to revert the 'cluster'
> back to the previous, working version.
>
> Perhaps I should re-visit how that part actually works.
> If thats truly the case, then an 'rpm -u' doesn't actually buy me anything
> as long as the "%obsoletes" clause removes the 'other' packages.
>
Yes, rpm -U (its caps) buys the proper sequencing of install and
erase, and removal of only files that were not placed on the system by
the current transaction.
Your basically doing the same thing we used to do on Solaris. 
Fortunately we did not have update libc except via Solaris patching
mechanism.  If we did our erase before install would have broken big
time.

You do realize that by not being able to run the complete set of rpms
as one transaction, then its up to you to sort the packages by
dependencies, and to do the check to see that all dependencies will be
satisified by the end of the upgrade?
If you can change this embedded snmp interface to take multiple
packages as arguments in your interest.

>
> > Why are you even using RPM?  With these restrictions it's bloody useless.
>
>
> Even with restrictions (pre-defined sequences), RPM is still very useful
> because its an enabling technology that:
>
>  - is already written
>  - has a standard package format
>  - maintains its own database
>  - supports versioning
>  - is a known (mostly-documented) entity
>   ...
>
Yes, but your not using its most powerful feature which is its
dependency checking of a given transaction against the current
database state.   And this is the feature that will, I am sure, unless
your just ignoring the issues allow you to delete much of your own
code (code deletion is a good thing) in favor of code that has been
tested across many many machines and platforms.

But at the end the day the choice poisen is yours.

Good Luck...james

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux