I installed Opera 12.16 from a .deb for reasons. Just assume that I need this specific browser of this specific version and that there’s no alternative.
However, that deb depends on packages (such as the gstreamer0.10 series) which are not in my distribution anymore (Debian testing). This makes apt fail on every operation except apt remove opera with dependency errors:
# apt install cli-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
opera : Depends: gstreamer0.10-plugins-good but it is not installable
Recommends: flashplugin-nonfree but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
apt --fix-broken install will just propose to remove opera:
# apt --fix-broken install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following packages will be REMOVED: opera 0 upgraded, 0 newly installed, 1 to remove and 92 not upgraded. 1 not fully installed or removed. After this operation, 46.6 MB disk space will be freed. Do you want to continue? [Y/n]
Currently, my workaround is to install Opera when I need it, and remove it as soon as anything else needs to be done with apt. This is annoying.
Any suggestions? Ideally, I’d like to make apt ignore the dependencies of opera forever, since it works well-enough for my purposes.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You can’t make apt ignore dependencies, but you can create a fake gstreamer0.10-plugins-good package which will satisfy the missing dependency. The simplest way to do this is using equivs:
-
install
equivssudo apt install equivs
-
generate a template control file
equivs-control gstreamer0.10-plugins-good.control
-
fix the package name
sed -i 's/<package name; defaults to equivs-dummy>/gstreamer0.10-plugins-good/g' gstreamer0.10-plugins-good.control
-
build the package
equivs-build gstreamer0.10-plugins-good.control
-
install it
sudo dpkg -i gstreamer0.10-plugins-good_1.0_all.deb
That should satisfy the opera package’s dependency.
Method 2
You can also remove the gstreamer0.10-plugins-good dependency of the opera package by editing /var/lib/dpkg/status.
Just open it with a text editor, search for the line Package: opera and under it in the Depends: line remove the offending gstreamer0.10-plugins-goodpackage.
After that apt works again.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0