Description of problem: Anaconda should ignore packages with conflicting files and continue the automatic installation but must not crash! Anaconda should print a warning to the logs, but should continue without these packages, and should not produce a traceback. The following is an extract of /tmp/anaconda.log of a kickstart installation of Fedora 25 x86_64 booted netinst image from Everything by pxe. I have provided the server dvd extracted to a directory by nfs and defined "repo --name=fedora" and "repo --name=updates". The package list include package groups which contain vim-minimal and vim-common as mandatory packages. 02:40:40,070 DEBUG anaconda: running handleException 02:40:40,072 CRIT anaconda: Traceback (most recent call last): File "/usr/lib64/python3.5/site-packages/pyanaconda/threads.py", line 251, in run threading.Thread.run(self, *args, **kwargs) File "/usr/lib64/python3.5/threading.py", line 862, in run self._target(*self._args, **self._kwargs) File "/usr/lib64/python3.5/site-packages/pyanaconda/install.py", line 245, in doInstall payload.install() File "/usr/lib64/python3.5/site-packages/pyanaconda/packaging/dnfpayload.py", line 856, in install raise packaging.PayloadError(msg) pyanaconda.packaging.PayloadError: Payload error - 'quit' was received before 'post': Transaction check error: file /usr/share/man/man1/vim.1.gz conflicts between attempted installs of vim-common-2:7.4.1989-2.fc25.x86_64 and vim-minimal-2:8.0.206-1.fc25.x86_64 Error Summary ------------- Traceback (most recent call last): File "/usr/lib64/python3.5/site-packages/pyanaconda/packaging/dnfpayload.py", line 236, in do_transaction base.do_transaction(display=display) File "/usr/lib/python3.5/site-packages/dnf/base.py", line 591, in do_transaction self._trans_error_summary(errstring)) dnf.exceptions.Error: Transaction check error: file /usr/share/man/man1/vim.1.gz conflicts between attempted installs of vim-common-2:7.4.1989-2.fc25.x86_64 and vim-minimal-2:8.0.206-1.fc25.x86_64 I currently don't know which of the packages in my kickstart list require the older version vim-common-2:7.4.1989-2.fc25 instead of vim-common-8.0.206-1.fc25. Version-Release number of selected component (if applicable): Fedora 25 x86_64 anaconda 25.20.8-1 How reproducible: Theoretical sometimes - depending of packages released to updates repository Actual in the last days - always...
Created attachment 1244318 [details] kickstart file (without sensitive data)
I found by try and error that package polymake causes the error described above. See bug #1415548 . I think, in this case anaconda should either exclude both packages, or try to find the packages with causes the dependency error and excludes these, or try to determine which packages are mandatory, default and optional and exclude first the optional packages, then the default and at last the mandatory packages from the installation list. Anaconda should try to install the system with the best (greatest?) set of packages from the kickstart file - ignored packages can be installed later. It is much simpler for an admin to install packages on a running system and to search for dependency errors than trying to find the error in a crashed kickstarted system! Moreover the error message of anaconda doesn't show the package that really causes the dependency error!
Note: Excluding polymake in kickstart file ks.cfg with the line -polymake was not sufficient to resolve the dependencies. Anaconda has still included polymake in the package installation list (I didn't find out why) and ignores my exclude direction! I have replaced @engineering-and-scientific --optional with @engineering-and-scientific now kickstart installs without this error. I guess that other optional packages of group engineering-and-scientific require polymake... In this case anaconda should also exclude packages that require polymake (the package causing the conflicting package versions of vim-minimal and vim-common). I know this is not a trivial algorithm...
FYI: After installation was done as in comment #3 I did the following: # dnf group mark remove engineering-and-scientific # dnf group install with-optional engineering-and-scientific This told me which packages will be skipped because of conflicts. Now I had build a new kickstart file with the following exclusions. Kickstart installation has run successful with this configuration. @engineering-and-scientific --optional -Singular -libqhull_r -ocaml-tplib-tools -polymake -qepcad-B -qhull -saclib -surf-geometry -sympol-libs
I want to mention that I see a similar problem in dnf. For example, if you want to install all python packages, and want to use dnf -y install 'python*' this will not work. dnf terminates with file conflict errors similar to the description of this bug. In both cases the error occurs in the transaction check, after dnf or anaconda has selected the list of packages to install. But crashing is still not a good solution. Maybe that dnf and anaconda has to go back a step and do package selection again, excluding conflicting packages (as described in comment #2)?
Fedora 25 changed to end-of-life (EOL) status on 2017-12-12. Fedora 25 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.