My apt got messed up installing boost

2019-04-20 06:35发布

问题:

On ubuntu

#> sudo apt-get install libboost-all-dev

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.
 libboost-all-dev : Depends: libboost-dev but it is not going to be installed
                    Depends: libboost-atomic-dev but it is not going to be installed
                    Depends: libboost-chrono-dev but it is not going to be installed
                    Depends: libboost-context-dev but it is not going to be installed
                    Depends: libboost-date-time-dev but it is not going to be installed
                    Depends: libboost-exception-dev but it is not going to be installed
                    Depends: libboost-filesystem-dev but it is not going to be installed
                    Depends: libboost-graph-dev but it is not going to be installed
                    Depends: libboost-graph-parallel-dev but it is not going to be installed
                    Depends: libboost-iostreams-dev but it is not going to be installed
                    Depends: libboost-locale-dev but it is not going to be installed
                    Depends: libboost-math-dev but it is not going to be installed
                    Depends: libboost-mpi-dev but it is not going to be installed
                    Depends: libboost-mpi-python-dev but it is not going to be installed
                    Depends: libboost-program-options-dev but it is not going to be installed
                    Depends: libboost-python-dev but it is not going to be installed
                    Depends: libboost-random-dev but it is not going to be installed
                    Depends: libboost-regex-dev but it is not going to be installed
                    Depends: libboost-serialization-dev but it is not going to be installed
                    Depends: libboost-signals-dev but it is not going to be installed
                    Depends: libboost-system-dev but it is not going to be installed
                    Depends: libboost-test-dev but it is not going to be installed
                    Depends: libboost-thread-dev but it is not going to be installed
                    Depends: libboost-timer-dev but it is not going to be installed
                    Depends: libboost-wave-dev but it is not going to be installed
 libboost-chrono1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-date-time1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-exception1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-filesystem1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-graph-parallel1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-graph1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-iostreams1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-locale1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-log1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-math1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-mpi1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-program-options1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-python1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-random1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-regex1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-serialization1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-signals1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-system1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-test1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-thread1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-timer1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost-wave1.54-dev : Depends: libboost1.54-dev (= 1.54.0-2ubuntu3) but it is not going to be installed
 libboost1.54-all-dev : Depends: libboost1.54-dev but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

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

Okay.

#> 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:
  libboost-atomic1.53.0 libboost-chrono1.53.0 libboost-context1.53.0 libboost-graph-parallel1.53.0 libboost-graph1.53.0 libboost-iostreams1.53.0 libboost-math1.53.0 libboost-mpi1.53.0 libboost-python1.53.0 libboost-random1.53.0
  libboost-serialization1.53.0 libboost-signals1.53.0 libboost-test1.53.0 libboost-timer1.53.0 libboost-tools-dev libboost-wave1.53.0 libboost1.53-tools-dev openjdk-7-jre-lib
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libboost1.54-dev
Suggested packages:
  libboost1.54-doc libboost-coroutine.54-dev libboost-log.54-dev doxygen default-jdk fop
The following NEW packages will be installed
  libboost1.54-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
51 not fully installed or removed.
Need to get 0 B/10.3 MB of archives.
After this operation, 101 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 253168 files and directories currently installed.)
Unpacking libboost1.54-dev (from .../libboost1.54-dev_1.54.0-2ubuntu3_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/libboost1.54-dev_1.54.0-2ubuntu3_i386.deb (--unpack):
 trying to overwrite '/usr/share/boostbook/xsl/docbook-layout.xsl', which is also in package libboost1.53-tools-dev 1.53.0-6+exp3ubuntu8
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/libboost1.54-dev_1.54.0-2ubuntu3_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

How do I get out of this mess? Thanks.

回答1:

Some commands are redundant, but for a good measure:

sudo apt-get --purge remove libboost-all-dev libboost-dev libboost-doc
sudo apt-get install -f
sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get update
sudo apt-get install libboost1.54-dev

Be slightly careful about apt-get clean - it clears the local repo of retrieved packages in /var/cache/apt/archives. You shouldn’t have stored anything there, nor any application, but just be aware that the cache will be gone.



回答2:

I had the same issue just now. To solve it

  1. Download the libboost1.54-dev deb package from Ubuntu packages site
  2. Force overwrite conflicts by

    sudo dpkg -i --force-overwrite libboost1.54-dev_1.54.0-2ubuntu3_amd64.deb

  3. Then install packages which failed

    sudo apt-get install -f

  4. Remove boost 1.53 with

    sudo apt-get autoremove



回答3:

this repo https://launchpad.net/~boost-latest/+archive/ubuntu/ppa contains all the versions of libboost and fixed it for me!

sudo add-apt-repository ppa:boost-latest/ppa sudo apt-get update

now you can install the version you desire, the latest at the time of writing is 1.55:

sudo apt-get install libboost1X.55-all-dev



回答4:

I initially tried mockinterface's suggestion above and persevered through but still got the problem.

Eventually I checked the error was on the package: libboost1.54-dev_1.54.0-2ubuntu3_amd64.deb

So I ran: sudo dpkg -i --force-overwrite /var/cache/apt/archives/libboost1.54-dev_1.54.0-2ubuntu3_amd64.deb

I then ran apt-get update and apt-get upgrade and all was happy with the system again.

The apt-get upgrade is important as it sets up the various libraries again properly.



回答5:

For me, it worked installing manually the packages that "are not going to be installed" (in this order):

sudo apt-get install libboost1.46-dev sudo apt-get install libboost-dev sudo apt-get install libboost-all-dev

The installation works fine, but I didn't test out if the package works yet.



回答6:

I tried what @mockinterface was going for but with synaptic. Did complete removal wherever possible of anything mentioning boost and notated what was being killed (strangely enough, aptitude, among several) to reinstall later.

Then as @Igor R. suggested in a comment, built boost from source.

At that point /usr/local/lib/liboost*.so* was full of stuff, of I believe later vintage than the Debian/Ubuntu repository.

However it appears to be a massive undertaking to remove all of boost because libreoffice, compiz, and unity depend on libboost-date-time1.54.0, libboost-program-options1.46.1, and libboost-serialization1.46..



回答7:

sudo aptitude install libboost1.55-all-dev

This finally worked for me.



标签: ubuntu boost apt