当前位置:首页 > 实用技巧 >

linux系统装软件版本(linux系统正版安装)

来源:原点资讯(www.yd166.com)时间:2023-04-24 06:50:55作者:YD166手机阅读>>

linux系统装软件版本,linux系统正版安装(1)

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

sudo apt install package_name=package_version

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

apt list --all-versions package_name

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

linux系统装软件版本,linux系统正版安装(2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

依赖关系也需要安装

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

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

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

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

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

~$ apt list -a vlc Listing... Done vlc/jammy 4.0.0~rc1~~git20220516 r92284 296~ubuntu22.04.1 amd64 vlc/jammy 3.0.16-1build7 amd64 vlc/jammy 3.0.16-1build7 i386

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

sudo apt install vlc=3.0.16-1build7

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

linux系统装软件版本,linux系统正版安装(3)

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

sudo apt install vlc=3.0.16-1build7 \ vlc-bin=3.0.16-1build7 \ vlc-plugin-base=3.0.16-1build7 \ vlc-plugin-qt=3.0.16-1build7 \ vlc-plugin-video-output=3.0.16-1build7 \ vlc-l10n=3.0.16-1build7 \ vlc-plugin-access-extra=3.0.16-1build7 \ vlc-plugin-notify=3.0.16-1build7 \ vlc-plugin-samba=3.0.16-1build7 \ vlc-plugin-skins2=3.0.16-1build7 \ vlc-plugin-video-splitter=3.0.16-1build7 \ vlc-plugin-visualization=3.0.16-1build7

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

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

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

替代方式,指定存储库

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

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

apt-cache policy | less

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

500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages release v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=i386 origin security.ubuntu.com

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

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

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

sudo apt install -t "o=ubuntu" vlc

linux系统装软件版本,linux系统正版安装(4)

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

还能做什么?

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

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

保留软件包,防止升级

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

sudo apt-mark hold package_name

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

sudo apt-mark unhold package_name

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

结论

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

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

via: https://itsfoss.com/apt-install-specific-version-2/

作者:Abhishek Prakash选题:lkxed译者:robsean校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

栏目热文

linux系统怎样安装软件(linux系统最方便安装软件方式)

linux系统怎样安装软件(linux系统最方便安装软件方式)

一、rpm包安装方式步骤:1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;2、打开一个终...

2023-04-24 06:13:38查看全文 >>

win10怎么用vb6(vb6在win10运行无反应)

win10怎么用vb6(vb6在win10运行无反应)

Visual Basic 6 是VB3后最成功的 Basic开发环境,中间的都腰折了没能活下去。适合Windows平台上...

2023-04-24 06:54:59查看全文 >>

win10vbs打不开(windows10打不开vbs文件)

win10vbs打不开(windows10打不开vbs文件)

昨天蓝点网才提到微软本月份推送的累积更新。这次微软倒是速度很快今天立即推出测试版更新尝试进行修复 , 如果没问题的话预计...

2023-04-24 06:42:00查看全文 >>

win10可以用vb6.0吗(win10 不能运行vb6.0程序)

win10可以用vb6.0吗(win10 不能运行vb6.0程序)

前言别整的这么荡气回肠好吧!VB6不是在2008年就停止更新了么?那时候Windows还是32位主导吧,十多年后的现在,...

2023-04-24 06:56:07查看全文 >>

win10系统没有插件吗(win10系统未加载插件)

win10系统没有插件吗(win10系统未加载插件)

大家好,我是晓东,今天我们来说一下电脑系统的安装教程。在平时我们使用电脑时,多多少少会出现一些问题(比如,蓝屏,死机,速...

2023-04-24 06:54:28查看全文 >>

linux怎么安装linux软件(安装linux不需要什么软件)

linux怎么安装linux软件(安装linux不需要什么软件)

Linux下常用的3种软件安装方式一:Linux源码安装1、解压源码包文件源码包通常会使用tar工具归档然后使用gunz...

2023-04-24 06:26:32查看全文 >>

linux系统安装软件命令(linux系统最方便安装软件方式)

linux系统安装软件命令(linux系统最方便安装软件方式)

编译自: https://opensource.com/article/18/8/how-install-softwar...

2023-04-24 06:16:37查看全文 >>

为什么linux系统装软件那么麻烦(linux系统安装软件怎么这么麻烦)

为什么linux系统装软件那么麻烦(linux系统安装软件怎么这么麻烦)

自从用了苹果macbook,和windows基本上就再见了,苹果系统的稳定性太出色了,使用完合上盖子放十天半个月的没一点...

2023-04-24 06:28:34查看全文 >>

linux系统需要安装哪些软件(linux系统安装软件怎么这么麻烦)

linux系统需要安装哪些软件(linux系统安装软件怎么这么麻烦)

编译自: https://www.fossmint.com/most-used-linux-applications/ ...

2023-04-24 06:51:34查看全文 >>

linux系统怎么重新安装(linux重新安装windows)

linux系统怎么重新安装(linux重新安装windows)

我们需要修复故障的Ubuntu Linux系统时,选择重装系统会比一一找出故障问题再进行修复更轻松,那么怎么重装Ubun...

2023-04-24 06:58:54查看全文 >>

文档排行