Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For example:

$ sudo apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
bsh : Depends: libjline-java but it is not going to be installed
groovy : Depends: libjline-java but it is not going to be installed
rhino : Depends: libjline-java but it is not going to be installed
E: Unmet dependencies. 

Try 'apt-get -f install' with no packages (or specify a solution).

I get the same or similar errors when I attempt to install clojure1.3, leiningen, and several other packages.

When I try the suggestion made in the error message, this is what happens:

$ sudo apt-get -f install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  diffstat linux-headers-3.2.0-26-generic linux-headers-3.2.0-26 dh-apparmor dkms html2text libmail-sendmail-perl libsys-hostname-long-perl
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libjline-java
Suggested packages:
  libjline-java-doc
The following NEW packages will be installed:
  libjline-java
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
23 not fully installed or removed.
Need to get 0 B/72.0 kB of archives.
After this operation, 129 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 226243 files and directories currently installed.)
Unpacking libjline-java (from .../libjline-java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-java_1.0-1_all.deb (--unpack):
 trying to overwrite '/usr/share/java/jline.jar', which is also in package scala 2.9.2-400
Errors were encountered while processing:
 /var/cache/apt/archives/libjline-java_1.0-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 bsh : Depends: libjline-java but it is not installed
 groovy : Depends: libjline-java but it is not installed
 rhino : Depends: libjline-java but it is not installed
E: Unmet dependencies. Try using -f.
share|improve this question
    
Did you install a ppa for the programs ? If so you must run sudo apt-get update first to activate the ppa you installed. – Mark Kirby Aug 15 '12 at 12:45
    
Also looks live you need to install java, search for it in software center – Mark Kirby Aug 15 '12 at 12:46
    
Probably a duplicate of this Q&A or at least the solution should help – danjjl Aug 15 '12 at 12:51
    
@markkirby, what's a ppa? Sorry, novice here. – missingfaktor Aug 15 '12 at 16:58
    
@markkirby, I have run sudo apt-get update if that is what you are asking. – missingfaktor Aug 15 '12 at 16:59
up vote 48 down vote accepted

To fix your problem run

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libjline-java_1.0-1_all.deb

check everything is fixed by running : sudo apt-get -f install

If you still have problems rerun the first step with any dpkg: error processing (...) remaining

Solution found on webupd8

share|improve this answer
2  
This will effectively install the package but the problem remains when both package tries to use the same library/file/binary. – Braiam May 11 '14 at 23:11
1  
Goodness, no, that's a recipe for a broken system... – fkraiem Jul 14 at 1:41

Please don't go for the danjjl answer directly, if you face this kind of "trying to overwrite" error, is likely that you have conflicting packages that need to be solved first.

The immediate fix for the issue is to remove the conflicting package that is undesirable, in this case scala,

sudo dpkg -P scala

Next it would be recommended to submit a bug report with the respective package maintainers. This normally imply adding a Conflict: package line in the control file.

Also see this answer for more detailed explanation about this error.

share|improve this answer
    
Not so sure about this advice. I think it depends on the situation. In the link to your earlier posting, there is a conflict from two versions of the same software. I agree there that one should remove the older software first. However, if there is a problem with how two different programs were packaged and the file that is being overwritten is identical or otherwise harmless, then I don't see a problem with the advice. No, not ideal...but it's probably a bit extreme to ask someone to not go for the a particular answer if the alternative is to wait until the problem is bug fixed... – Ray Dec 2 '15 at 13:11
    
@Ray in that case a bug report may be in order... but I doubt software from Ubuntu repositories has that problem, since they pull from Debian and Debian tests for these kind of problems exhaustively. – Braiam Jul 14 at 1:35
    
@Braiam It's been a long time since I used Debian. Perhaps it's better now, but I saw similar problems with Debian. It isn't because of lack of exhaustive testing, but sometimes it is hard to test every possible scenario. No matter how much testing is performed, something can slip through. I'm not against writing a bug report, but "easier said that done". After all, it may be hard to summarize all of the conflicting packages. And, if bugs are not "hot" (i.e., they don't affect a lot of people), you'll just end up waiting. – Ray Jul 14 at 1:48
    
Perhaps it would be better if the original answer was modified so that it said, "Please don't do because of (some reason)." So that someone can choose to ignore it once they know the pros and cons. As it stand, the answer above just says don't do it. – Ray Jul 14 at 1:52
    
@Ray umm... when building a package dpkg stores a list of files (dpkg -L package) and simply looking for collisions should be enough for first measure. And by exhaustive testing I meant real world testing, unstable and testing are there precisely for this kind of stuff – Braiam Jul 14 at 2:16

@danjjl's command works for .deb files. I found this command works with aptitude:

sudo apt-get -o Dpkg::Options::="--force-overwrite" install <package-name>
share|improve this answer
    
Thank you!! Would never have figured this out. – mpen Dec 14 '15 at 4:34

Just for completenes' sake, here's the option not-for-the-faint-of-heart (or if your really know what you are doing):

dpkg -i --force-all whatever.deb

;)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.