Wednesday, May 1, 2024
 Popular · Latest · Hot · Upcoming
14
rated 0 times [  14] [ 0]  / answers: 1 / hits: 38590  / 2 Years ago, sat, april 16, 2022, 9:47:15

I have a number of mesa packages that I had upgraded to a PPA version, before purging the PPA so I could upgrade my system. The differences in the versions are minor (they are technically the same, just one set of libraries were from git and the others are the final versions).



If I try to downgrade via Synaptic, apt-get, or aptitude, I get thrown into dependency hell.



Is there a way to downgrade the packages manually (perhaps one by one) and mark their dependant packages as immovable (if that makes sense) until I am done?



P.S. this question: How to Downgrade a Package via apt-get? is a bit different and doesn't help this situation.


More From » apt

 Answers
4

I never played with this before, but I would suggest that you hold (or lock) the version of the dependencies that cause you trouble. This way apt has a more limited number of possible solutions, and perhaps doesn't get confused when you attempt to downgrade the other packages.






If nothing else works, you could take the manual approach suggested in this answer: How to Downgrade a Package via apt-get?. Basically, download the necessary .deb packages manually, then install them one by one using the lower-level dpkg and one of its forceful arguments: --ignore-depends, --force-depends, --force-depends-version, or even --force-all.



In the same spirit as the above, you have the --force-downgrade argument:



          downgrade(*): Install a package, even if newer version of
it is already installed.

Warning: At present dpkg does not do any dependency
checking on downgrades and therefore will not warn you if
the downgrade breaks the dependency of some other pack‐
age. This can have serious side effects, downgrading
essential system components can even make your whole sys‐
tem unusable. Use with care.


But this assumes that you've read man dpkg, and that you understand what you do:



          Warning: These options are mostly intended to be used  by
experts only. Using them without fully understanding
their effects may break your whole system.


See Error: version number does not start with digit and How to install an older version of Java and How to install a older version of package like liquid 2.2.2? for examples of:



sudo dpkg --force-downgrade -i your_mesa_package.deb


And see How can I install a package without installing some dependencies? for an example (along with the appropriate warning) of:



sudo dpkg --force-all -i your_mesa_package.deb





Yet another approach would be to create a dummy .deb package using the equivs package (and perhaps a slightly different name). Then installing the dummy package should allow you to remove the "true" package while keeping the relevant deps, and then install the older version. I'm not sure how exactly this would work, but check this relevant thread for details: How to remove a deb without removing its dependencies.


[#27165] Sunday, April 17, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
gliroopy

Total Points: 290
Total Questions: 115
Total Answers: 114

Location: Egypt
Member since Tue, May 3, 2022
2 Years ago
;