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

Re: dpkg, ELF, upgrade order, broken systems

Bruce Perens writes ("Re: dpkg, ELF, upgrade order, broken systems"):
> I think an elf-update package is the way to go. Having it be a .deb package
> is OK, if not strictly necessary, but the upgrade should _NOT_ happen in the
> postinst. The postinst should direct the user to the file of instructions,
> and the user will have to run at least two scripts with a reboot between them
> to complete the upgrade.

Is there no easier way to do this ?

> 1. Run the kernel-update script, which performs these actions:
>    A. Installs the latest a.out dpkg.
>    B. Installs the "image" package. The user may also install their own kernel.
>    C. Installs the "mbr" package.
>    D. Installs an a.out version of the LILO package.
>    E. Offers to re-write the user's LILO configuration using our new MBR and
>       a partition boot record (this actually happens in the LILO postinst)
>       and runs LILO to install the new kernel.
>    F. Removes binfmt_elf from /etc/modules.

I suppose this is all very complicated.  Can we do this as a .deb
file somehow ?

> 3. Run the user-update script, which performs the following actions:
>     A. Test that a small static-linked ELF program does run. Have the user
>        fix their kernel if it doesn't.
>     B. Install latest a.out dpkg if it wasn't installed by kernel-update.
>     C. Install ld.so, ELF run-time libraries, and ncurses-base.
>     D. Test that a small shared-library ELF program does run. The program
>        is linked against all of the important libraries. Bomb if it does
>        not run.
>     E. Install the ELF init package.
>     F. Install the ELF dpkg.
>     G. Run "dpkg" to pre-select packages for later installation, using the
>        names of currently-installed packages as a guide?
>     H. Start "dselect" to complete the upgrade.

With a bit of work on my part (to do with installation order and
Pre-Depends) it should be possible to do all of this from dselect and
have it happen automatically.  Hah!  I've just found a use for
`lorder' :-).

If all the packages required for installation of other packages
(essential ones) have proper Pre-Depends stuff it'll be very hard for
people to break their installation so that it can't be fixed.

They'll be able to break all the nonessential packages, but not dpkg,
gzip, &c.


Reply to: