我犯了一个错误。我必须将 mariadb 从 10.0 更新到 10.2。因此我做了:
$ sudo apt-get install mariadb-server
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:
mariadb-client : Depends: mariadb-client-10.0 (=10.0.33+maria-1~trusty) but 10.0.31-0ubuntu0.16.04.2 is to be installed
mariadb-server : Depends: mariadb-server-10.2 (>= 10.2.7+maria~xenial) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
然后尝试删除,但出现错误:
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:
mariadb-client : Depends: mariadb-client-10.0 (=10.0.33+maria-1~trusty) but 10.0.31-0ubuntu0.16.04.2 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
sudo apt-get -f install
给我:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
mariadb-client-10.0 mariadb-client-core-10.0 mariadb-server-10.0 mariadb-server-core-10.0
Suggested packages: mailx mariadb-test tinyca
Recommended packages: libhtml-template-perl
The following packages will be upgraded:
mariadb-client-10.0 mariadb-client-core-10.0 mariadb-server-10.0 mariadb-server-core-10.0
4 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.
4 not fully installed or removed.
Need to get 0 B/11,7 MB of archives.
After this operation, 9709 kB disk space will be freed.
Do you want to continue? [Y/n] y
Preconfiguring packages ... (Reading database ... 304724 files and directories currently installed.)
Preparing to unpack .../mariadb-server-10.0_10.0.33+maria-1~trusty_amd64.deb ...
Unpacking mariadb-server-10.0 (10.0.33+maria-1~trusty) over (10.0.31-0ubuntu0.16.04.2) ...
dpkg: error processing archive /var/cache/apt/archives/mariadb-server-10.0_10.0.33+maria-1~trusty_amd64.deb
(--unpack): trying to overwrite '/usr/share/man/man1/mysql_upgrade.1.gz', which is also in package mariadb-server-core-10.0 10.0.31-0ubuntu0.16.04.2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
dpkg: regarding .../mariadb-server-core-10.0_10.0.33+maria-1~trusty_amd64.deb containing mariadb-server-core-10.0:
mariadb-server-10.0 conflicts with mysql-server-core-5.5 mariadb-server-core-10.0
provides mysql-server-core-5.5 and is to be installed.
dpkg: error processing archive /var/cache/apt/archives/mariadb-server-core-10.0_10.0.33+maria-1~trusty_amd64.deb
(--unpack):
conflicting packages - not installing mariadb-server-core-10.0
dpkg: regarding .../mariadb-client-core-10.0_10.0.33+maria-1~trusty_amd64.deb containing mariadb-client-core-10.0:
mariadb-client-10.0 conflicts with mysql-client-core-5.5
mariadb-client-core-10.0 provides mysql-client-core-5.5 and is to be installed.
dpkg: error processing archive /var/cache/apt/archives/mariadb-client-core-10.0_10.0.33+maria-1~trusty_amd64.deb (--unpack):
conflicting packages - not installing mariadb-client-core-10.0 dpkg: regarding .../mariadb-client-10.0_10.0.33+maria-1~trusty_amd64.deb containing mariadb-client-10.0:
mariadb-client-core-10.0 conflicts with mysql-client-5.5
mariadb-client-10.0 provides mysql-client-5.5 and is to be installed.
dpkg: error processing archive /var/cache/apt/archives/mariadb-client-10.0_10.0.33+maria-1~trusty_amd64.deb (--unpack):
conflicting packages - not installing mariadb-client-10.0
Processing triggers for man-db (2.7.5-1) ...
Errors were encountered while processing: /var/cache/apt/archives/mariadb-server-10.0_10.0.33+maria-1~trusty_amd64.deb
/var/cache/apt/archives/mariadb-server-core-10.0_10.0.33+maria-1~trusty_amd64.deb
/var/cache/apt/archives/mariadb-client-core-10.0_10.0.33+maria-1~trusty_amd64.deb
/var/cache/apt/archives/mariadb-client-10.0_10.0.33+maria-1~trusty_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我被卡住了,无法安装,无法删除,无法更新。
我应该怎么办?
这给了我以下信息:
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies: libmysqlclient20 :
Depends: mysql-common (>= 5.5) but it is not going to be installed mariadb-client :
Depends: mariadb-client-10.0 (= 10.0.33+maria-1~trusty) but 10.0.31-0ubuntu0.16.04.2 is to be installed mariadb-common :
Depends: mysql-common (>= 10.0.33+maria-1~trusty) but it is not going to be installed mariadb-server :
Depends: mariadb-server-10.0 (= 10.0.33+maria-1~trusty) but 10.0.31-0ubuntu0.16.04.2 is to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
答案1
看起来您要安装的软件包有较新版本可用,这些软件包依赖于已安装的软件包的较新版本。除非您告诉 Apt 升级所有这些软件包,否则它不知道如何修复此问题:
sudo apt-get update
sudo apt-get dist-upgrade -f
答案2
你试过了吗
sudo service mysql stop
做之前:
sudo apt-get --purge remove "mysql*"
我已经在笔记本电脑上尝试过并且成功了。
请注意,安装后添加的任何自定义配置仍会存在。