When comparing YUM vs GNU Guix, the Slant community recommends GNU Guix for most people. In the question“What are the best Linux package managers?” GNU Guix is ranked 12th while YUM is ranked 15th. The most important reason people chose GNU Guix is:
A method which works across languages and provides a reproducible programming environment.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Avoids dependency hell
All the metadata for installed software is stored into a XML file. This is used to avoid conflicting dependencies among packages. What's more, YUM also automatically syncs remote metadata to the local client in order to avoid failures if a command is not run at the correct interval.
Pro Simple syntax
Pro Binary delta for faster transfer times
Yum supports Delta RPMs which allow transmitting only the parts of the package that have changed.
Pro Is/was the industry standard
YUM is still widely used in corporate environments.
Pro Provides pre and post install sanity checks
What might be thought of a standard feature, isn't. Thankfully RPM provides both a transaction test and a post install verification to make sure everything installs neatly.
Pro Supports multiple verification methods
Supports verification with GPG and MD5.
Pro Clean and easy to understand
Pro Supports multiple compression methods
Supports gzip, bzip2, lzma, or xz compression.
Pro Allows for complex dependency definitions
Alongside allowing dependency on a certain package, it allows depending on a library, versioned symbol, or a GAC'd Mono assembly.
Pro Can setup a shell which has exactly the defined libraries available
A method which works across languages and provides a reproducible programming environment.
Pro Can always roll back to a safe state
Guix creates new profile generations for each operation. If anything goes wrong, a simple --roll-back gets you immediately back to the previous, working, generation. Because it is a purely functional package management system, generations don't affect each other, so you're back to the exact same state as before : still working.
Pro Can create independent packages
Guix pack creates packages which do not need Guix to be run.
Pro No side effects when building packages
Guix is a purely functional package management system. This means that the act of building a package does not have side effects, such as destructively updating or deleting files that may be used by other packages.
Pro Can build containers right-away, from docker to tarballs
See guix pack --help and here.
Pro Easy to add your own packages
The clean and declarative syntax makes it easy to define new packages by using an existing one as an example.
Pro Doesn't require root privileges
Normal users can install packages on a Guix-enabled system, or even run their own Guix instance if the system isn't Guix-enabled.
Cons
Con Can be very slow to download headers if not on broadband
Yum can be much slower than other package managers if the internet speed is not at least average to high.
Con Slow (and might be fragile) dependency resolution
YUM dependency resolution is very slow. In addition to it, the people often experiencing very hard dependencies (it might be not a YUM problem).
Con Does fsync often
Like its successor, DNF, YUM does fsync too often. The result is poor YUM and system performance while YUM does its work.
Con Very slow overall
YUM is very slow - beginning with relatively slow startup, extremely slow default plugins, slow dependency resolution, and ending with slow installation of packages.
Con Poor design
YUM is written in Python 2 and people often blaming the quality of YUM's code.
Con Updates take a long time
It's gotten better over time but both updating Guix itself and updating the installed packages can take a long time.
Con Cannot handle filetypes that have different semantics across different versions
While the functional approach that Guix takes is great for sandboxing binary artifacts of packages, it seriously lacks any power in handling configuration files or user data. It's difficult to upgrade and downgrade files where semantics and syntax can change between versions.