Ludwig Nussel, comment 16: 3) - do not package compat symlinks. Run something post install of each package that installs such links if /bin is a directory and the package /bin/$something in it's provides tags. - Make the initrd move away /bin and install the /bin -> /usr/bin symlink (same for sbin and lib). If would work only if /bin will not be a symlink. But if /bin will not be a symlink, we do not need any hacks. Such upgrade works out of the box. Replacement of file by symlink is supported by RPM. Replacement of directory by symlink is not supported by RPM.