我正在运行 ubuntu 14.04。我无法使用软件中心安装任何东西,甚至是本地 deb 包,所以我必须依赖终端。
最近我尝试安装时mysql-server
出现了错误,我可以确定是 libstdc++6 所需的版本。我的系统有 4.8.x,而 mysql 5.6 需要 >=4.9。尝试常规升级过程但没有成功,我咨询了系统管理员,他尝试手动安装 4.9 包(使用本地 .deb 包),但也失败了,原因是依赖项未满足。
目前,我的系统出现错误,提示无法安装新软件。
给出sudo apt-get install -f
以下输出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
libstdc++6 : Depends: gcc-4.9-base (= 4.9.2-10) but 4.9.1-0ubuntu1 is installed
libstdc++6:i386 : Depends: gcc-4.9-base:i386 (= 4.9.2-10) but 4.9.1-0ubuntu1 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
我使用以下方式检查了持有的包裹
dpkg -l | grep ^h
dpkg -l | grep hold
结果:没有结果。
还尝试查找损坏的包(如果有),但文件
/var/log/dist-upgrade/apt.log
不存在。
那么,我现在应该/可以做什么?
答案1
未满足的依赖关系问题是由 MySQL APT Repository 存储库引起的。MySQL APT Repository 中的 MySQL Server 5.6 需要 libstdc++6 >=4.9,但是 MySQL Server 5.6 (mysql-服务器-5.6) 需要 libstdc++6 >=4.6。当您安装 MySQL Server 5.6 版本时 (mysql-服务器-5.6) 从默认的 Ubuntu 存储库中,它会自动为您解析所有软件包依赖关系。
要解决该问题,您需要删除 MySQL APT 存储库,然后卸载从 MySQL APT 存储库安装的所有软件包。
要删除 MySQL APT 存储库,请使用以下命令:
sudo dpkg --remove package-name
你替换的地方包裹名字使用您之前安装的 MySQL APT 存储库的包名称。或者您也可以在 Ubuntu 软件中心搜索您安装的 MySQL APT 存储库 .deb 包,然后从那里将其删除。
然后使用以下命令安装 MySQL Server 5.6:
sudo apt install mysql-server-5.6
答案2
使用“aptitude”来解决问题。
sudo apt-get install aptitude
sudo aptitude remove mysql-apt-config
现在遵循所提出的解决方案。
答案3
出现此错误的原因是您尝试下载并安装的软件包需要 libstdc++6 >=4.9。Ubuntu 14.04 LTS 存储库中提供的 libstdc++6 的最新版本是 4.8.2-19ubuntu1,比 4.9 旧。
我假设您正在运行 Ubuntu 14.04,因为计算机上的 libstdc++6 软件包停留在 4.8.2-19ubuntu1。MySQL APT 存储库目前有三个版本的 Ubuntu 软件包:12.04、14.04 和 14.10。12.04 和 14.04 的软件包都只需要 libstdc++6 >=4.6,而 14.10 需要版本 libstdc++6 >=4.9。
请检查您是否已为您的 Ubuntu 版本安装了正确的 mysql-apt-config 包。