zypper is magic

A number of experiments suggest that it may be feasible to run zypper from an openSUSE 'live' media against a 'foreign' RPM based OS installation (eg. CentOS) and then 'zypper dup' to openSUSE

Thanks to satsolver, openSUSE's heavy use of pkgconfig(), and our sometimes 'excessive' recommends, zypper always seems able to suggest a viable upgrade solution, replacing the foreign CentOS/RHEL packages with appropriate openSUSE ones

Rough edges

Of course, this wouldn't be a hackweek project if it 'just worked' - There are a number of rough edges that need serious effort before this idea is 'usable'

  • dracut - making sure mkinitd gets rebuilt to replace the 'foreign' dracut with our own
  • config files in different locations - a potential use case for Machinery?
  • different package names - is satsolver really smart enough to figure out how to upgrade packages with different names?
  • testing testing testing - this may work in the lab with very basic installations, does it really work in practice?
  • not just RPM's? - could we get zypper/libzypp/satsolver to understand .debs enough to know how to replace them?

Looking for hackers with the skills:

packaging zypper dracut machinery

This project is part of:

Hack Week 11

Activity

  • over 7 years ago: im_unbob liked this project.
  • over 7 years ago: a_faerber liked this project.
  • over 7 years ago: mvidner liked this project.
  • over 7 years ago: xgonzo liked this project.
  • over 7 years ago: jjolly liked this project.
  • over 7 years ago: gsanso liked this project.
  • over 7 years ago: lslezak liked this project.
  • over 7 years ago: whdu liked this project.
  • over 7 years ago: abonilla liked this project.
  • over 7 years ago: abonilla liked this project.
  • over 7 years ago: abonilla liked this project.
  • over 7 years ago: abonilla liked this project.
  • over 7 years ago: extropian liked this project.
  • over 7 years ago: dmacvicar liked this project.
  • over 7 years ago: jafr liked this project.
  • over 7 years ago: thutterer liked this project.
  • over 7 years ago: FunkyPenguin joined this project.
  • over 7 years ago: deneb_alpha liked this project.
  • over 7 years ago: RBrownCCB liked this project.
  • over 7 years ago: gsanso joined this project.
  • over 7 years ago: michal-m liked this project.
  • over 7 years ago: e_bischoff liked this project.
  • over 7 years ago: KGronlund liked this project.
  • over 7 years ago: dmdiss liked this project.
  • almost 8 years ago: RBrownSUSE liked this project.
  • All Activity

    Comments

    • bmwiedemann
      over 7 years ago by bmwiedemann | Reply

      at some point we also had zypper binaries for Fedora in https://build.opensuse.org/package/show/zypp:Head/zypper but those seem to have bitrotten

      • RBrownSUSE
        over 7 years ago by RBrownSUSE | Reply

        The way I was thinking of tackling this was by using an openSUSE liveCD. That way I have a known zypper/libzypp stack and point it to the 'foreign' OS using zypper -R (chroot). Also opens a few doors such as maybe converting to btrfs and snapshotting in a sane and safe way to rollback if the 'upgrade' goes horribly wrong.

    • ZeDestructor
      over 7 years ago by ZeDestructor | Reply

      Why openSUSE instead of moving to a newer CentOS/RHEL? I'm genbuinely curious, and have been considering doing the opposite myself...

      • RBrownSUSE
        over 7 years ago by RBrownSUSE | Reply

        Because openSUSE/SLE has a lot to offer which CentOS/RHEL do not. Quick examples - YaST, btrfs as a recommended filesystem for root, a huge library of packages in OBS and the platform to build your own, and a package manager that does RPM's 'right'. But right now, the only options for someone wanting to try jumping from one to the other is painful and probably involving reinstallation and lots of reconfiguration.. I want to see if we can make that easier - With zypper we can seamlessly jump not only from one version of our distribution to another (eg 12.3 to 13.1) but also from one 'type' of distribution to another (eg. regular openSUSE to rolling openSUSE Factory).. why shouldn't we also be able to jump from an entirely different distribution to openSUSE?

    Similar Projects

    openSUSE build supported by SUSE IT by vgrinco

    Project Description

    SUSE IT needs help fr...


    Generic retry command in openSUSE by okurz

    Motivation

    When automating tasks often the r...


    Build Modern Unix Collection by hennevogel

    Get [modern-unix tools](https://github.com/ibra...


    openSUSE on ZoL from OpenZFS project by jkohoutek

    Idea is to have SUSE system with OpenZFS as roo...


    Add GObject based introspectable API to libzypp by zbenjamin

    [comment]: # (Please use the project descriptio...


    Make DNF5 package manager ready for openSUSE by dmach

    Project Description

    DNF 5 is a package ma...


    Modular kernel packaging by mwilck

    Project Description

    Create a PoC for a mo...


    openSUSE on ZoL from OpenZFS project by jkohoutek

    Idea is to have SUSE system with OpenZFS as roo...