Debian = aptitude 如何在安装软件时取消选择/禁用自动软件包?

Debian = aptitude 如何在安装软件时取消选择/禁用自动软件包?

我想安装 subversion。但我已经(手动)安装了 mysql。而且似乎 aptitude 会再次尝试安装 mysql mysql-common{a}。如何在安装 subversion 时取消选择 mysql 安装?我需要使用哪些命令/参数?我使用了 -P,但似乎这不是正确的选项?

aptitude -P install  subversion

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein... Fertig
Lese erweiterte Statusinformationen
Initialisiere Paketstatus... Fertig
Lese Task-Beschreibungen... Fertig
Die folgenden NEUEN Pakete werden zusätzlich installiert:
  libapr1{a} libaprutil1{a} libmysqlclient15off{a} libneon27-gnutls{a} libpq5{a} libserf-0-0{a} mysql-common{a}
  libsvn1{a}  subversion

非常感谢!!Jens

答案1

由于您没有使用包管理器安装 mysql,因此它不知道您已经安装了它。正确的做法是使用包管理器安装所有内容,或者不要使用包管理器。在这种情况下,您可以做的“最佳”事情是创建并安装“虚拟”包让系统知道您已安装相应的库。为此,请使用 安装equivsapt-get install equivs然后,对于每个虚拟包,您需要创建一个描述该包的文件。为此,请先运行equivs-control packagename。这将为您创建一个名为 packagename 的控制文件,您必须对其进行编辑。在此文件中,您需要设置虚拟包以提供其他程序所需的依赖项。根据 Arrowmaster 提供的信息,它需要读取类似

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: my-mysql
Provides: mysql-common, libmysqlclient15off

但是正如 thelsdj 所说,如果你的 mysql 没有安装该版本的 libmysqlclient,程序可能无法运行。

答案2

首先,当在线发布命令输出时,尤其是在以英语为主的网站上,如果命令输出也是英文的,会很有帮助。这可以通过LC_ALL=C在环境中设置轻松完成,例如只需将命令更改为LC_ALL=C aptitude -P install subversion

从 Debian Lenny 中 subversion 包的依赖关系来看,它依赖于 libsvn1,而 libaprutil1 又依赖于 libmysqlclient15off,而 libmysqlclient15off 又依赖于 mysql-common。因此,如果不安装 mysql-common,则无法在 Debian Lenny 中安装 subversion 1.5.1 包。不过,您也可以使用lenny-backports安装 subversion 1.6.12,它最终不依赖于 mysql-common。

答案3

根据您手动安装 mysql 的位置,允许 aptitude 再次安装它应该是安全的。问题是 subversion 可能与特定版本的 mysqlclient 库相关联,如果您不安装 aptitude 提供的库,它可能无法运行。

答案4

“apt-get --no-upgrade” 可能会奏效。我会先尝试“apt-get --no-upgrade --dry-run” 看看。

相关内容