网易首页 > 网易号 > 正文 申请入驻

如何在 Ubuntu 中安装具体指定的软件包版本 | Linux 中国

0
分享至

导读:听起来像一个简单的任务,对吧?但是事情并非看起来那么简单。这里有一些不确定是否会出现,但是可能会涉及的东西。

本文字数:3482,阅读时长大约: 5分钟

在 Ubuntu 中想安装一个软件包的一个特别指定的版本?你可以通过下面的方式来轻松地完成:

  1. sudo apt install package_name=package_version

你如何知道某个软件包有哪些可用的版本?可以使用这个命令:

  1. apt list --all-versions package_name

在下面的屏幕截屏中,你可以看到,我有两个可用的 VLC 版本,我使用命令来安装较旧的版本:

install specific versions apt ubuntu

听起来像一个简单的任务,对吧?但是事情并非看起来那么简单。这里有一些不确定是否会出现,但是可能会涉及的东西。

这篇教程将涵盖使用 或 命令来安装一个具体指定的程序的版本的所有的重要的方面。

安装一个具体指定版本的程序需要知道的事

在基于 Ubuntu 和 Debian 发行版中,你需要知道一些关于 APT 和存储库是如何工作的知识。

同一个软件包源没有较旧的版本

Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况下,你可以暂时性地看到多个版本。例如,你运行 APT 更新(但不升级)时,可能会有一个可用的新版本。在 APT 缓存中,你可以看到同一个软件包的两个版本。但是,一旦软件包被升级到了新的版本,较旧版本的软件包将从APT 缓存和存储库中移除。

使用多个软件包源来使用不同的版本

为获取同一个的软件包的多个版本,你必须得添加多个软件包源。例如,VLC 是版本 3.x 系列。添加 launchpad.net 将会提供(不稳定的)版本 4.x 系列。

同样,你可以下载不同版本的 DEB 文件,并安装它

较高版本编号的版本通常有优先权

如果你有来自多个软件包源的相同名称的软件,默认情况下,Ubuntu 将安装可用的最高版本编号的版本。

在前面的示例中,如果我安装 VLC ,那么它将会安装 4.x 系列的版本,而不是 3.x 系列的版本。

较旧版本将升级到可用的较新版本

这是另外一个可能存在的问题。即使你安装较旧版本的软件包,它也会升级到较新的版本(如果存在可用的较新版本)。你必须 itsfoss.com 。

依赖关系也需要安装

如果软件包有依赖关系,你也需要安装必要的依赖关系软件包。

现在,你已经知道一些可能存在的问题,让我们看看如何解决它们。

安装一个软件包的具体指定版本

在这篇教程中,我将以 VLC 为例。在 Ubuntu 的存储库中可获得 VLC 版本。我添加了每日构建 PPA ,它将向我提供 VLC 的 4.0 版本的候选版本。

如你所见,在现在的系统中,我有两个可用的 VLC 版本:

install specific versions apt ubuntu

  1. ~$ apt list -a vlc

  2. Listing... Done

  3. vlc/jammy 4.0.0~rc1~~git20220516+r92284+296~ubuntu22.04.1 amd64

  4. vlc/jammy 3.0.16-1build7 amd64

  5. vlc/jammy 3.0.16-1build7 i386

因为较高版本编号版本有优先权,使用 命令将会导致安装 VLC 的 4.0 版本。但是,因为这篇教程的缘由,我想安装较旧的版本 3.0.16 。

  1. sudo apt install vlc=3.0.16-1build7

但是,这里会有这样的事。VLC 软件包有一些依赖关系,并且这些依赖关系也需要具体指定的版本。因此,在 Ubuntu 为其尝试安装最新的版本时,你将会遇到经典的 itsfoss.com(you have held broken packages) 错误。

problem installing specific version apt ubuntu

为修复这个错误,你需要为其提供它所投诉的所有依赖关系的软件包的具体指定版本。因此,该命令会变成这样:

  1. sudo apt install vlc=3.0.16-1build7 \

  2. vlc-bin=3.0.16-1build7 \

  3. vlc-plugin-base=3.0.16-1build7 \

  4. vlc-plugin-qt=3.0.16-1build7 \

  5. vlc-plugin-video-output=3.0.16-1build7 \

  6. vlc-l10n=3.0.16-1build7 \

  7. vlc-plugin-access-extra=3.0.16-1build7 \

  8. vlc-plugin-notify=3.0.16-1build7 \

  9. vlc-plugin-samba=3.0.16-1build7 \

  10. vlc-plugin-skins2=3.0.16-1build7 \

  11. vlc-plugin-video-splitter=3.0.16-1build7 \

  12. vlc-plugin-visualization=3.0.16-1build7

说明一下,每行结尾处的\只是用来将多行命令来写入同一个命令的一种方式。

它有作用吗?在很多情况下,它是有作用的。但是,我选择了一个复杂的 VLC 示例,它有很多依赖关系。甚至这些所涉及的依赖关系也依赖于其它的软件包。所以,它就变得令人难以处理。

一种替代的方法是在安装时指定软件包源。

替代方式,指定存储库

你已经添加多个软件包源,因此,你应该对这些软件包的来源有一些了解。

使用下面的命令来搜索存储库:

  1. apt-cache policy | less

注意存储库名称后面的行:

  1. 500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages

  2. release v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=i386

  3. origin security.ubuntu.com

你可以具体指定ola等参数。

在我原来的示例中,我想安装来自 Ubuntu 存储库的 VLC(获取版本 3.16),而不是安装来 PPA 的版本(它将向我提供版本 4)。

因此,下面的命令将安装 VLC 版本 3.16 及其所有的依赖关系:

  1. sudo apt install -t "o=ubuntu" vlc

install from repository source

看起来令人满意?但是,当你必须更新系统时,问题就来了。它接下来会控诉找不到指定的软件包版本。

还能做什么?

为安装较旧的软件包版本,从你的系统中移除较新版本的软件包源(如果可能的话)。它将有助于逃脱这些依赖关系地狱。

如果不能这么做,检查你是否可以从其它一些软件包的打包格式来获取,像 Snap、Flatpak、AppImage 等等。事实上,Snap 和 Flatpak 也允许你从可用的版本中选择和安装。因为这些应用程序是沙盒模式的,所以它很容易管理不同版本的依赖关系。

保留软件包,防止升级

如果你完成安装一个指定的程序版本,你可能想避免意外地升级到较新的版本。实现这一点并不太复杂。

  1. sudo apt-mark hold package_name

你可以免除保留软件包,以便它能稍后升级:

  1. sudo apt-mark unhold package_name

注意,软件包的依赖关系不会自动地保留。它们需要单独地指明。

结论

如你所见,安装选定软件包版本有一定之规。只有当软件包有依赖关系时,那么事情就会变得复杂,然后,你就会进入依赖关系地狱。

我希望你在这篇教程中学到一些新的东西。如果你有问题或建议来改善它,请在评论区告诉我。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

LCTT 译者 :郑

翻译: 103.0 篇

贡献: 1293 天

2018-12-03

2022-06-17

https://linux.cn/lctt/robsean

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
卡梅隆安东尼:尼克斯晋级NBA总决赛,我才去麦迪逊广场花园庆祝

卡梅隆安东尼:尼克斯晋级NBA总决赛,我才去麦迪逊广场花园庆祝

好火子
2026-05-12 06:34:20
小勒布伦哭成鸭子嘴,直到亲眼目睹张本智和同款扑街,才原谅哥哥

小勒布伦哭成鸭子嘴,直到亲眼目睹张本智和同款扑街,才原谅哥哥

冥王星与一只碗
2026-05-12 09:48:04
美股正重演2000年泡沫破灭剧本?“大空头”再发警告:纳指100将迎重大逆转!

美股正重演2000年泡沫破灭剧本?“大空头”再发警告:纳指100将迎重大逆转!

财联社
2026-05-12 08:26:12
小玥儿社交账号曝光不到24小时,难堪的一幕出现,难怪马筱梅心寒

小玥儿社交账号曝光不到24小时,难堪的一幕出现,难怪马筱梅心寒

观察鉴娱
2026-05-12 10:41:54
肝脏脂肪近乎清零!美国研究:这种百年老药,正改写脂肪肝治疗史

肝脏脂肪近乎清零!美国研究:这种百年老药,正改写脂肪肝治疗史

爱医斯坦
2026-05-11 13:00:10
Model Y 高速上被撞成这样,特斯拉车主说没事!

Model Y 高速上被撞成这样,特斯拉车主说没事!

新浪财经
2026-05-11 10:52:24
中方一锤定音,特朗普访华3天!抢在最后时刻,美突然做出新安排

中方一锤定音,特朗普访华3天!抢在最后时刻,美突然做出新安排

共工之锚
2026-05-11 22:20:54
刘国梁到底有多狠?弃用郝帅和陈玘,用天才前途换国乒的万无一失

刘国梁到底有多狠?弃用郝帅和陈玘,用天才前途换国乒的万无一失

老玮是个手艺人
2026-03-27 14:46:10
高薪却无缘东决!恩比德3年1.88亿天价合同,成76人无情枷锁!

高薪却无缘东决!恩比德3年1.88亿天价合同,成76人无情枷锁!

田先生篮球
2026-05-11 10:30:28
普京向中国交底:中东开战,不能结盟了,俄罗斯首个危机浮现

普京向中国交底:中东开战,不能结盟了,俄罗斯首个危机浮现

浪子阿邴聊体育
2026-05-11 07:02:36
伊朗官员:伊美就浓缩铀处置方式存在严重分歧

伊朗官员:伊美就浓缩铀处置方式存在严重分歧

新京报
2026-05-12 07:27:05
OPPO广告翻车,公共舆论场强力狙击饭圈文化

OPPO广告翻车,公共舆论场强力狙击饭圈文化

冰川思想库
2026-05-12 11:10:03
拉锯战!骑士领先11分被反超:哈登15分6助,米切尔8中1低迷

拉锯战!骑士领先11分被反超:哈登15分6助,米切尔8中1低迷

体坛小李
2026-05-12 09:19:00
随着韩国0-1惜败,女足亚洲杯四强已经诞生2席

随着韩国0-1惜败,女足亚洲杯四强已经诞生2席

俯身冲顶
2026-05-11 17:00:08
不是西汉姆不努力,只怪保级对手实在太卷,定下如此高分门槛

不是西汉姆不努力,只怪保级对手实在太卷,定下如此高分门槛

体坛关键帧
2026-05-12 11:16:06
CBA又闹出笑话,主教练当众怒喷,脸都不要了

CBA又闹出笑话,主教练当众怒喷,脸都不要了

宗介说体育
2026-05-11 10:11:02
如果你的房子挂了一年还没卖掉,听我一句劝,先下架。

如果你的房子挂了一年还没卖掉,听我一句劝,先下架。

流苏晚晴
2026-05-11 19:46:39
表妹订婚没喊我却用我名订99桌,经理来电,我说:我不认识她

表妹订婚没喊我却用我名订99桌,经理来电,我说:我不认识她

麦子情感故事
2026-05-11 23:39:19
随着吉达国民2-1,沙特联最新积分榜出炉:争冠和争亚皆白热化

随着吉达国民2-1,沙特联最新积分榜出炉:争冠和争亚皆白热化

凌空倒钩
2026-05-12 06:17:52
康熙口误叫错一水果名字,一错就错了300多年,至今仍然叫错

康熙口误叫错一水果名字,一错就错了300多年,至今仍然叫错

二胡的岁月如歌
2026-05-10 19:13:32
2026-05-12 11:51:00
Linux
Linux
Linux 中国开源社区
8018文章数 73112关注度
往期回顾 全部

科技要闻

纳德拉法庭爆料:拒当“AI时代的IBM”

头条要闻

李连杰公开回应病情:因患甲亢改变面容 眼球突出来了

头条要闻

李连杰公开回应病情:因患甲亢改变面容 眼球突出来了

体育要闻

梁靖崑:可能是最后一届了,想让大家记住这个我

娱乐要闻

刘涛晒妈祖诞辰活动照 评论区变许愿池

财经要闻

特朗普要来了,我们且淡定

汽车要闻

吉利银河“TT”申报图曝光 电动尾翼+激光雷达

态度原创

亲子
房产
数码
手机
健康

亲子要闻

实验曝光:居然有无数孩子毁在了这句"你真聪明"

房产要闻

50亿资本布局!宁德时代,突然重仓三亚!

数码要闻

国产内存新里程碑:神可自主研发DDR5 RDIMM实现大规模量产

手机要闻

索尼Xperia 1 VIII手机渲染图再曝:保留实体快门键

干细胞能让人“返老还童”吗

无障碍浏览 进入关怀版