2015-11-01 98 views
0

我有以下2包(定制):Debian软件包不提供?

**apt-cache show libmysqlclient18** 


Package: libmysqlclient18 
Section: libs 
Installed-Size: 4194 
Architecture: amd64 
Version: 5.6.27 
Depends: mysql-common (>= 5.6.27) 
Filename: ./libmysqlclient18.deb 
Size: 1167158 
MD5sum: cf4a5d292456375c4099b11f5ee6270d 
SHA1: e9c4f185bed358e5dda908555686b2884d341772 
SHA256: 3092f2af61493bd8e75503568ff622ce1dd81a9ce04aa072d28c336092835e8f 
SHA512: e0ffcf7cd48f230225fb48bf5fee8968f1e4006c581529b196a27bff06257fe1da55e80434af0e2e58d2805156da37c44d7994a5af233e8942ecc6d99d680117 
Description-en: MySQL database client library 
MySQL is a fast, stable and true multi-user, multi-threaded SQL database 
server. SQL (Structured Query Language) is the most popular database query 
language in the world. The main goals of MySQL are speed, robustness and 
ease of use. 
. 
This package includes the client library. 

及以下:尝试安装libmysqlclient20时

**dpkg --info libmysqlclient20.deb** 


new debian package, version 2.0. 
size 1429220 bytes: control archive=909 bytes. 
    768 bytes, 18 lines  control 
     72 bytes,  1 lines  md5sums 
    268 bytes, 15 lines * postinst    #!/bin/bash 
    139 bytes,  7 lines * postrm    #!/bin/sh 
     45 bytes,  0 lines  shlibs 
Package: libmysqlclient20 
Architecture: amd64 
Version: 5.7.9 
Section: libs 
Depends: mysql-common (>= 5.7.9) 
Provides: libmysqlclient15, libmysqlclient18 
Conflicts: libmysqlclient15, libmysqlclient18 
Replaces: libmysqlclient15, libmysqlclient18 
Installed-Size: 4565 
Description: MySQL shared client libraries 
    The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, 
    and robust SQL (Structured Query Language) database server. MySQL Server 
    is intended for mission-critical, heavy-load production systems as well 
    as for embedding into mass-deployed software. MySQL is a trademark of 
    Oracle. This package contains the shared libraries for MySQL client 
    applications. 

现在,我得到不是有关相关警告的LOT满足:

Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
dovecot-mysql is already the newest version. 
libdbd-mysql-perl is already the newest version. 
libdbd-mysql-perl set to manually installed. 
libmailutils4 is already the newest version. 
mailutils is already the newest version. 
mailutils set to manually installed. 
libqt4-sql-mysql is already the newest version. 
libqt4-sql-mysql set to manually installed. 
php5-mysql is already the newest version. 
php5-mysql set to manually installed. 
zabbix-server-mysql is already the newest version. 
You might want to run 'apt-get -f install' to correct these: 
The following packages have unmet dependencies: 
dovecot-mysql : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
libdbd-mysql-perl : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
libmailutils4 : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
libqt4-sql-mysql : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
mailutils : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
php5-mysql : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
zabbix-server-mysql : Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) 
         Recommends: snmptt but it is not going to be installed 
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). 

我无法理解的是,我没有提供在控制文件中的“提供”头,以及一个“替换” heade河 当我说新软件包提供了libmysqlclient18时,它怎么可能会选择忽略它呢?

(并且当我想要执行apt-get -f install时,它想要删除libmysqlclient20并重新安装libmysqlclient18)。

有人会知道我在这里失踪了吗?

谢谢!

回答

1

引述Debian Policy Manual

A提供字段可以不包含版本号,和混凝土包,它提供了一个特定的虚拟包的版本号将不被视为考虑的依赖关系或冲突的时虚拟包名称。

如果取决于未版本化,则提供将会得到满足,但是总是未版本化的提供永远不能满足版本化的取消。

所以:保持相同的包名称和更高的版本号。

+0

而不是保持相同的包名称,您可以考虑使用虚拟包中的“取决于您的实际包装上的”更高版本号的同名“ –