Historical bug tracker for the Pacman package manager.
The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues
This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues
This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
FS#41031 - pacman -Rs misses some unneeded dependencies in case of dependency cycle
Attached to Project:
Pacman
Opened by Nagy Gabor (combo) - Sunday, 29 June 2014, 11:34 GMT
Last edited by Andrew Gregory (andrewgregory) - Wednesday, 30 November 2016, 20:26 GMT
Opened by Nagy Gabor (combo) - Sunday, 29 June 2014, 11:34 GMT
Last edited by Andrew Gregory (andrewgregory) - Wednesday, 30 November 2016, 20:26 GMT
|
DetailsVersion:
Pacman v4.1.2 - libalpm v8.0.2 Steps to Reproduce: On a pure 64 bit system do $ pacman -S skype then $ pacman -Rs skype This installs 64 packages, but removes only 51. The details are in the attached log files. |
This task depends upon
Closed by Andrew Gregory (andrewgregory)
Wednesday, 30 November 2016, 20:26 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in git 6ac2ee21b30f3c5f331d19349f96bb8e5b020b47
Wednesday, 30 November 2016, 20:26 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in git 6ac2ee21b30f3c5f331d19349f96bb8e5b020b47
pacmanS.log
Theoretically, what we need is to compute the strongly connected components of the ("recursive") dependencies of the to-be-removed packages in the dependency graph of installed packages, and treat such a strongly connected component as one package (when there is no dependency cycle, these components are indeed consist of one package). This needs a notable amount of code added, as well as additional running time with -Rs. (Moreover, provisions make our lives more difficult, as usual.)
The fix of the "A depend on B, B depend on A" case would be simpler, but only a half solution.
I don't really see why we have dependency cycles in our repos at all. For example, in the above case, the packages A and B should be merged, and the "bigger" one should provide the "smaller" one.
1) `pacman -S deluge` pulls in 21 python2-* dependencies
2) `pacman -Rs deluge` only removes 16 of them. The remaining 5 need to be removed by removing python2-twisted.
After these two transactions, python2-twisted and its dependencies are left behind and they were not present before installing deluge:
# pacman -Rs python2[TAB]
python2 python2-constantly python2-twisted
python2-click python2-incremental python2-zope-interface