1

Using Debian 9.5, fresh install. I want to install mysql-server, but I run into dependency problems.

sudo apt-get install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mysql-server : Depends: default-mysql-server but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

apt-get install mysql-server default-mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 default-mysql-server : Depends: mariadb-server-10.1 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

sudo apt-get install mysql-server default-mysql-server mariadb-server-10.1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mariadb-server-10.1 : Depends: libdbi-perl but it is not going to be installed
                       Recommends: libhtml-template-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

sudo apt-get install mysql-server default-mysql-server mariadb-server-10.1 libhtml-template-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libhtml-template-perl : Depends: libcgi-pm-perl but it is not going to be installed or
                                  perl (< 5.19) but 5.26.2-7 is to be installed
 mariadb-server-10.1 : Depends: libdbi-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

sudo apt-get install mysql-server default-mysql-server mariadb-server-10.1 libdbi-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libdbi-perl : Depends: perlapi-5.24.1
E: Unable to correct problems, you have held broken packages.

EDIT1: apt-cache policy:

apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://security.debian.org/debian-security stretch/updates/contrib amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=contrib,b=amd64
     origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=main,b=amd64
     origin security.debian.org
 500 http://deb.debian.org/debian stretch-updates/main amd64 Packages
     release o=Debian,a=stable-updates,n=stretch-updates,l=Debian,c=main,b=amd64
     origin deb.debian.org
 500 http://deb.debian.org/debian stretch/main amd64 Packages
     release v=9.5,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64
     origin deb.debian.org
Pinned packages:

EDIT2: apt policy perl perl-base:

apt policy perl perl-base
perl:
  Installed: 5.26.2-7
  Candidate: 5.26.2-7
  Version table:
 *** 5.26.2-7 100
        100 /var/lib/dpkg/status
     5.24.1-3+deb9u4 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
        500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
perl-base:
  Installed: 5.26.2-7
  Candidate: 5.26.2-7
  Version table:
 *** 5.26.2-7 100
        100 /var/lib/dpkg/status
     5.24.1-3+deb9u4 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
        500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages

How can I fix these dependency problems?

  • Did you add additional repositories? Can you add the output of apt-cache policy to your post? – jordanm Sep 23 '18 at 17:46
  • Ok, added apt-cache policy output. – klor Sep 23 '18 at 17:53
  • Have you done apt-get update before trying to install? – sebasth Sep 23 '18 at 17:55
  • 1
    That apt-cache policy output doesn't match your results at all. perl (< 5.19) but 5.26.2-7 is to be installed. 5.26.2-7 is from testing (buster), not 9.5, indicating that you have added repos for buster. – jordanm Sep 23 '18 at 18:51
  • 1
    Actually, since the testing version of perl is already installed, it looks you have added testing repos, upgraded stuff, and then removed the repos. Half-upgrades to testing are really difficult to rollback, and it's usually best to just reinstall. – jordanm Sep 23 '18 at 18:54
6

As indicated by your apt policy perl perl-base output, and pointed out by jordanm, your system has the Buster version of Perl, not the Debian 9 version. So your system isn’t really a “fresh install” of Debian 9.5; and since Perl is such an important component of a Debian setup, it’s likely there are many other packages which have been upgraded to the Buster version.

This Perl mismatch is the reason you can’t install the MySQL packages.

I’ll assume this is a recent installation and therefore you don’t have too much invested in it; so jordanm’s recommendation to re-install is probably the best solution in this case. Debian 9 and Buster have diverged quite a bit, so rolling back could become rather complicated, especially since you’ve upgraded Perl. Removing mc certainly won’t be sufficient.

In future, don’t mix stable and testing. If you run into a bug which prevents you from using a package, file a bug (reportbug mc); if it’s severe enough it could qualify for a stable update. You could also ask for a backport; that would get you the current Buster version of mc, rebuilt for Debian 9.

2

I executed the following commands successfully based on accepted solution:

wget http://ftp.debian.org/debian/pool/main/p/perl/perl-base_5.24.1-3+deb9u4_amd64.deb
sudo dpkg -i perl-base*deb
    dpkg: warning: downgrading perl-base from 5.26.2-7 to 5.24.1-3+deb9u4
    (Reading database ... 38749 files and directories currently installed.)
    Preparing to unpack perl-base_5.24.1-3+deb9u4_amd64.deb ...
    Unpacking perl-base (5.24.1-3+deb9u4) over (5.26.2-7) ...
    Setting up perl-base (5.24.1-3+deb9u4) ...
    Processing triggers for man-db (2.7.6.1-2) ...
sudo apt-get install mysql-server
sudo apt --fix-broken install
sudo apt autoremove
sudo apt-get install mysql-server
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    mysql-server is already the newest version (5.5.9999+default).
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Result:

dpkg -l perl-base
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-===============================================================================================================
ii  perl-base                                             5.24.1-3+deb9u4                 amd64                           minimal Perl system


dpkg -l mysql-server
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-===============================================================================================================
ii  mysql-server                                          5.5.9999+default                amd64                           MySQL database server binaries and system database setup [transitional]
  • 1
    Thanks klor, I encountered this issue as well. Your solution worked perfectly. For some reason had used testing temporarily, probably related to nginx-extras. Got into trouble where I constantly could not install libjavascript-minifier-xs-perl, which resulted in a forced downgrade of perl requirements. – Julius Oct 28 '18 at 21:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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