As someone may notice my previous meta question asking to stopping to use the How do I resolve unmet dependencies after adding a PPA? question as duplicated target. I wrote some basic guidance about it, but people wants pointed solutions, anyone has any idea?
Sadly, creating a single or even a dozen of resources is not feasible, we would fall very short, here's why:
Each of the dependencies issues have easy solutions, if you have all the information and how to interpret them correctly. But you ask, then why not writing a canonical question that solve them? Well, mainly because you are trying to solve 30 to 40 possible scenarios (of the top of my head, there are more), multiplied by (and make sure you are had sat down) +60,000 package, and then multiplied by 3 depending of what the user wants to do (remove, install or upgrade), which gives us a great total of 5,400,000 of problems to solve. Nice isn't it?
The scenarios include from, (missing|inconsistent|buggy) repositories, to (bad|buggy) packaging, to inconsistent state of the user system, to badly crafted PPA's, to impossible situations that the user wants to achieve. A myriad of them. There are other scenarios in this answer too.
So, the Stack Exchange model asks us when closing as duplicated "If you’re going to close a user’s question as a duplicate, it has to be a real duplicate. [...] But it’s not OK to close it as a duplicate of a twenty-seven page guide to
netmasks dependencies issues solutions". This doesn't mean that there aren't duplicates, because there are, and very similar between them but can't apply the same solutions. I remember that I answered a question about the Sublime PPA where I found 6 duplicates and closed them pointing to my answer, included instructions about how to solve the problem from the user and maintainer point of view, and even sent a mail to such maintainer (I can't find the answer, neither the screen-shot to the email, for some reason). So, there could be duplicates and canonical questions, just not a few of them, but many, and it's fine. As long as they are specific and to the point each of them would be little troves of solutions to the people with such problems.
So, realistic solutions:
- Ask the asker for more information. As I said above, every dependency issue is easy to fix once you have the information.
- If it doesn't have enough information, lets close them. This I've repeated on occasions, and I do repeat it again because it's important. A question without enough information isn't answerable in the apt world. Information is the key to solve each and every apt problem, without it, we are blind in the dark.
- Reading carefully the messages/questions. I've seen several questions which only point in common is the generic message
Unable to correct problems, you have held broken packages.Neither packages, nor other error messages are common. This line can be safely ignored, as it's a generic message whenever apt can't fulfill all the dependencies. As diagnostic information is, as good as
Sub-process /usr/bin/dpkg returned an error code (1), useless. Make sure to find the relevant information, which causes the underlying issue.
- Try to answer them. Solving dependencies can be fun. Once you get the nag of it you will discover many nifty things that you took for granted and would help you to solve your own problems in the future.
- Make them searchable. One of the things I do, is retitling many of these questions writing the most relevant error message in the title. This way, when I'm searching for a duplicated I'm sure I would find them. Also, removing scruff from the post that can confuse search engines and distract from the main issue. Try to make them razor sharp. This will help in the long run.
I don't know what else we can do. If you have any other suggestion, or correction feel free to post it.
Is there a utility to show the depsolving tree? That would be my answer. Run tool XYZ and add the output to your question. Then close it. If they edit it in, re-open. It trims chaff and helps people that actually want help.