首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >equivs虚拟包版本号语法

equivs虚拟包版本号语法
EN

Stack Overflow用户
提问于 2016-04-22 22:33:51
回答 1查看 387关注 0票数 2

我尝试用equivs创建一个虚拟包,为apt提供python-oauthlib包。问题是,除了一个具有版本要求的包之外,大多数依赖项问题都得到了解决。我的问题是:如何在Provides字段中指定版本号?

我做了以下工作:

使用创建控制文件

代码语言:javascript
复制
equivs-control python-oauthlib

编辑控制文件,如下所示:

代码语言:javascript
复制
Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: python-oauthlib-dummy
Version: 0.6.1
Provides: python-oauthlib
Architecture: all
Description: Dummy Python OAuthlib package

构建包:

代码语言:javascript
复制
equivs-build python-oauthlib

安装程序包:

代码语言:javascript
复制
sudo dpkg -i python-oauthlib-dummy_0.6.1_all.deb

在安装软件包之前,apt-get会导致以下错误:

代码语言:javascript
复制
The following packages have unmet dependencies:
 oneconf-common : Depends: python-oauthlib but it is not installed
 python-oneconf : Depends: python-oauthlib but it is not installed
 python-piston-mini-client : Depends: python-oauthlib but it is not installed
 python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5) but it is not installed

安装程序包后,除最后一个错误外,所有依赖项错误都会消失:

代码语言:javascript
复制
The following packages have unmet dependencies:
 python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5)

这是有意义的,因为我没有在控制文件中指定Provides的版本号。这样做的正确语法是什么?我尝试了各种方法,比如Provides: python-oauthlib-0.6.1Provides: python-oauthlib-0.6-1Provides: python-oauthlib-0.6Provides: python-oauthlib (= 0.6.1),但都不起作用。取而代之的是,返回所有原始的未满足的依赖项,以及来自apt的附加W: Ignoring Provides line with DepCompareOp for package python-oauthlib

我知道虚拟包的版本号本身并不相关,我只是选择了相同的版本号来澄清它是一个提供此版本的虚拟包。

背景:apt在某个时候安装了python-oauthlib-0.6.1。我想使用pip安装python-twitter。这需要OAuthlib 1.0.3。Pip无法升级oauthlib,因为它为操作系统所有。因此,我想在apt中使用apt-get remove python-oauthlib卸载oauthlib。这不起作用,因为许多包通过一系列其他依赖项依赖于oauthlib,包括software-center和其他我不想卸载的包。因此,我使用dpkg -r --force-depends删除了这个包。这确实允许我在pip中成功安装oauthlibpython-twitter,但由于缺少依赖项,导致apt无法使用。为了解决这个问题,我现在正在尝试安装虚拟包。

EN

回答 1

Stack Overflow用户

发布于 2016-12-30 17:05:46

Provides字段现在可以携带版本号:

代码语言:javascript
复制
 Provides: gnome-shell-extensions (= 3.14.2-1)

这是从dpkg 1.17.11开始支持的,所以从Debian 8 (Jessie)开始。

这里的答案是:https://unix.stackexchange.com/questions/333603/debian-control-file-provides-does-not-satisfy-dependency

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36796614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档