Ubuntu 18.04 broken dependencies:

8,460

I managed to fix the issue by manually downloading the perl-base deb package on packages.ubuntu.com and executing the following command sudo dpkg -i perl-base_5.26.1-6ubuntu0.3_amd64.deb, this seemed to be succesfully downgrading perl-base but reported some dependencies errors. After that, aptitude was able to resolve the other conflicts by downgrading the other libc6 packages. As a final step I will be checking all packages that are not from the official repositories as listed in update 3 and remove the ones that I do no longer need.

Share:
8,460

Related videos on Youtube

Thomas
Author by

Thomas

Updated on September 18, 2022

Comments

  • Thomas
    Thomas over 1 year

    I recently performed a dist-upgrade on Ubuntu bionic. The dist-upgrade proceeded to remove some software that I intended to keep, like shutter and pidgin. Whenever I tried to install these and gcc-multilib, I got an unmet dependencies error. In order to fix this, I followed this link. When I tried aptitude, it crashed halfway the installation of gcc-multilib with a dpkg error:

    dpkg: error processing package libc6:amd64 (--configure):
     installed libc6:amd64 package post-installation script subprocess returned error exit status 1
    dpkg: dependency problems prevent processing triggers for libc-bin:
     libc-bin depends on libc6 (>> 2.28); however:
      Version of libc6:amd64 on system is 2.27-3ubuntu1.
     libc-bin depends on libc6 (<< 2.29); however:
      Package libc6:amd64 is not configured yet.
    
    dpkg: error processing package libc-bin (--configure):
     dependency problems - leaving triggers unprocessed
    dpkg: dependency problems prevent processing triggers for man-db:
     man-db depends on libc6 (>= 2.17); however:
      Package libc6:amd64 is not configured yet.
    

    Currently I am stuck trying to install anything, even an apt-get upgrade fails. Any help is appreciated.

    $ sudo apt-get upgrade
    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:
     libc-bin : Depends: libc6 (> 2.28) but 2.27-3ubuntu1 is installed
     libc6-dbg : Depends: libc6 (= 2.28-8) but 2.27-3ubuntu1 is installed
     libev-perl : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
     libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
     perl-base : PreDepends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
    E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
    
    $ sudo apt -f install
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Correcting dependencies... failed.
    The following packages have unmet dependencies:
     libc-bin : Depends: libc6 (> 2.28) but 2.27-3ubuntu1 is installed
     libc6-dbg : Depends: libc6 (= 2.28-8) but 2.27-3ubuntu1 is installed
     libev-perl : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
     libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
     perl-base : PreDepends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
    E: Unable to correct dependencies
    
    $ apt-mark showhold   
    $ dpkg -l | grep "^hi"
    

    Apparently there are no held packages.

    Some information: main, restricted, universe, multiverse, bionic-updates and bionic-security are enabled. All other ppa's have been disabled or purged except for y-ppa-manager. If more information is required, please let me know.

    Update 1: I tried executing the following command to downgrade the versions, but am unsure how to proceed.

    $ sudo apt install libc-bin=2.27-3ubuntu1 libc6-dbg=2.27-3ubuntu1 libev-
    perl=4.22-1build2 perl-base=5.26.1-6ubuntu0.3                          
    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:
     libalgorithm-diff-xs-perl : Depends: perlapi-5.28.0
     libanyevent-perl : Depends: perlapi-5.28.1
                        Recommends: libguard-perl but it is not going to be installed
     libapt-pkg-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
                       Depends: perlapi-5.28.0
     libasync-interrupt-perl : Depends: perlapi-5.28.0
     libbit-vector-perl : Depends: perlapi-5.28.0
     libcairo-gobject-perl : Depends: perlapi-5.28.0
     libcairo-perl : Depends: perlapi-5.28.0
     libclone-perl : Depends: perlapi-5.28.0
     libcommon-sense-perl : Depends: perlapi-5.28.1
     libdate-calc-xs-perl : Depends: perlapi-5.28.0
     libfcgi-perl : Depends: perlapi-5.28.0
     libfile-fcntllock-perl : Depends: perlapi-5.28.0
     libglib-object-introspection-perl : Depends: perlapi-5.28.1
     libglib-perl : Depends: perlapi-5.28.1
     libhtml-parser-perl : Depends: perlapi-5.28.0
     libio-pty-perl : Depends: perlapi-5.28.0
     libjson-xs-perl : Depends: perlapi-5.28.0
     liblist-moreutils-perl : Depends: perlapi-5.28.0
     liblocale-gettext-perl : PreDepends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
                              PreDepends: perlapi-5.28.0
     libnet-dbus-perl : Depends: perlapi-5.28.0
     libnet-libidn-perl : Depends: perlapi-5.28.0
     libnet-ssleay-perl : Depends: perlapi-5.28.0
     libpango-perl : Depends: perlapi-5.28.0
     libpcsc-perl : Depends: perlapi-5.28.0
     libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is to be installed
     libperlio-gzip-perl : Depends: perlapi-5.28.0
     libsocket6-perl : Depends: perlapi-5.28.0
     libsub-name-perl : Depends: perlapi-5.28.0
     libtext-charwidth-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
                              Depends: perlapi-5.28.0
     libtext-iconv-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
                          Depends: perlapi-5.28.0
     libunicode-linebreak-perl : Depends: perlapi-5.28.1
     libunicode-map-perl : Depends: perlapi-5.28.0
     libxml-libxml-perl : Depends: perlapi-5.28.1
     libxml-parser-perl : Depends: perlapi-5.28.1
     libyaml-libyaml-perl : Depends: perlapi-5.28.1
     locales : Depends: libc-bin (> 2.28)
     perl : Depends: perl-base (= 5.28.1-6) but 5.26.1-6ubuntu0.3 is to be installed
     perl-modules-5.28 : Depends: perl-base (>= 5.28.1-1) but 5.26.1-6ubuntu0.3 is to be installed
    E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
    

    Update 2: I have managed to fix a lot of dependencies with a long command specifying the exact version of every package as found on packages.ubuntu.com and running it on both aptitude and apt-get. Currently I am left trying to resolve the last few packages but ran into the following issue:

    $ sudo apt-get install perl-base=5.26.1-6ubuntu0.3 locales=2.27-3ubuntu1 libanyevent-perl=7.140-2 libc-bin=2.27-3ubuntu1 libev-perl=4.22-1build2 liblocale-gettext-perl=1.07-3build2 libxml-libxml-perl=2.0128+dfsg-5
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Suggested packages:
      libevent-perl libio-async-perl libpoe-perl libtask-weaken-perl
    Recommended packages:
      libguard-perl
    The following NEW packages will be installed:
      locales
    The following packages will be DOWNGRADED:
      libanyevent-perl libc-bin libev-perl liblocale-gettext-perl libxml-libxml-perl perl-base
    0 upgraded, 1 newly installed, 6 downgraded, 0 to remove and 8 not upgraded.
    37 not fully installed or removed.
    Need to get 0 B/6570 kB of archives.
    After this operation, 12.1 MB of additional disk space will be used.
    Do you want to continue? [Y/n] Y
    /usr/bin/perl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/bin/perl)
    Setting up libc6:amd64 (2.27-3ubuntu1) ...
    /usr/bin/perl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/bin/perl)
    dpkg: error processing package libc6:amd64 (--configure):
     installed libc6:amd64 package post-installation script subprocess returned error exit status 1
    Errors were encountered while processing:
     libc6:amd64
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    

    Apparently, I need to install GLIBC_2.28 to use perl which is required to install packages, however it is the version I want to move away from, i.e. I want to go back to 2.27.

    Update 3:

    $ apt list --installed | grep -v bionic
    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    Listing...
    containerd.io/now 1.2.5-1 amd64 [installed,local]
    distro-info-data/now 0.37ubuntu0.4 all [installed,upgradable to: 0.37ubuntu0.5]
    gemalto-smartcard0/now 161-2 amd64 [installed,local]
    google-chrome-stable/now 74.0.3729.131-1 amd64 [installed,local]
    icaclient/now 13.10.0.20 amd64 [installed,local]
    ipsec-tools/now 1:0.8.2+20140711-12 amd64 [installed,local]
    libanyevent-perl/now 7.140-3 amd64 [installed,local]
    libboost-date-time1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
    libboost-filesystem1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
    libboost-serialization1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
    libboost-system1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
    libboost-thread1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
    libc-bin/now 2.28-8 amd64 [installed,local]
    libc-l10n/now 2.28-8 all [installed,local]
    libev-perl/now 4.25-1 amd64 [installed,local]
    libfl2/now 2.6.4-6.2 amd64 [installed,local]
    libgdbm-compat4/now 1.18.1-4 amd64 [installed,local]
    libgdbm6/now 1.18.1-4 amd64 [installed,local]
    libidn2-0/now 2.0.5-1 amd64 [installed,local]
    liblocale-gettext-perl/now 1.07-3+b4 amd64 [installed,local]
    libssl1.1/now 1.1.1b-1 amd64 [installed,local]
    libxml-libxml-perl/now 2.0134+dfsg-1 amd64 [installed,local]
    nessus/now 6.9.1 amd64 [installed,local]
    pcsc-tools/now 1.5.4-1 amd64 [installed,local]
    pdftk/now 3.0.0~malteworld1 all [installed,local]
    pdftk-java/now 3.0.0~malteworld1 all [installed,local]
    perl-base/now 5.28.1-6 amd64 [installed,local]
    realpath/now 8.26-3ubuntu4 all [installed,local]
    rocketchat/now 2.14.7-1215 amd64 [installed,local]
    sublime-text/now 3207 amd64 [installed,local]
    unattended-upgrades/now 1.1ubuntu1.18.04.10 all [installed,upgradable to: 1.1ubuntu1.18.04.11]
    
    • user535733
      user535733 about 5 years
      You won't be able to install or remove anything until you resolve the many version conflicts that apt is telling you about. Specifically, you have the right version of libc6 installed, but you have told the apt to install the wrong versions of libc-bin, libc6-dbg, libev-perl, and perl-base. Either downgrade those packages to a version compatible with 18.04 or uninstall them.
    • Thomas
      Thomas about 5 years
      Thank you for your answer. I have checked the most recent versions for these libraries and tried to downgrade to this, but am unsure on how to proceed. I have updated the initial question with the output.
    • user535733
      user535733 about 5 years
      Yes, indeed - it's a rabbit-hole that can be quite deep. This is the down side of using non-Ubuntu sources: You get nifty newer software on top of the older LTS base...but sometimes it all falls apart. You have basically two choices: Fix it (longer, but a great learning experience) or reinstall the OS (fast, but learn nothing). If you want newer software, I recommend the 6-month releases of Ubuntu instead of LTS.
    • Thomas
      Thomas about 5 years
      I have tried to go down the rabbit-hole and currently run into the issue that I need GLIBC_2.28 for perl which is required to install new packages, see edit 2. Would you perhaps have any ideas to move on from here? Perhaps it is possible to downgrade perl manually.
    • fkraiem
      fkraiem about 5 years
      Can you run apt list --installed | grep -v bionic? This will show all installed non-Bionic packages so we can see how much of a mess you are in
    • Thomas
      Thomas about 5 years
      I have executed the command and attached the output to the question.
    • fkraiem
      fkraiem about 5 years
      There's not that many, the big problem is libc-bin since it's so essential. What I'd do if I were you is to simultaneously (i.e., in one command) downgrade all those packages back to the Bionic version, which you can get with apt-cache policy PACKAGENAME. So sudo apt install package1=version1 package2=version2 [...]. Tedious, but not absurdly so.
    • fkraiem
      fkraiem about 5 years
      And about /usr/bin/perl, if it still complains about the mismatched libc version, you can extract the Bionic version from the package and just copy it over.
    • Thomas
      Thomas about 5 years
      Thanks for your help, I have managed to resolve the issue. I would upvote your comments if I had the rights to do so.
    • fkraiem
      fkraiem about 5 years
      You can post your solution as an answer, as well.
  • Timo
    Timo almost 3 years
    here the perl base package link.