2015-11-01 191 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

而不是保持相同的包名稱,您可以考慮使用虛擬包中的「取決於您的實際包裝上的」更高版本號的同名「 –