使用 pacman 查询可用的软件包版本

使用 pacman 查询可用的软件包版本

我想知道是否可以选择使用 pacman 来查询可用的软件包版本。

如果我想安装特定版本的软件包,我可以通过以下方式执行此操作

pacman -S "bash>=3.2"

但是,这要求我已经知道可用的软件包版本。我想要这样的东西:

pacman -Q(?) bash

返回如下内容:

> bash=3.2
> bash=3.1
> bash=3.0
> bash=2.0

如果没有通过 pacman 的选项,此信息是否可以在其他地方获得?

答案1

Arch Linux 是滚动释放,表示仅提供最新版本,因此您无法指定要下载的版本。但是,您可以从以下位置手动搜索并下载软件包Arch Linux 档案https://archive.archlinux.org/然后手动安装

pacman -U package-name-0.0.0.tar.xz

注意,该方法不会处理版本冲突,需要自行更改依赖的版本。

降级是一种用于降级(或选择您所说的版本)一个或多个软件包的工具。您还可以在您的网站上查询可用的软件包版本缓存Arch Linux 档案

答案2

Yudaka的回答是针对有关包裹的详细信息的问题的最佳答案版本控制,但它没有回答问题标题所提出的主要问题搜索包版本。我为那些因标题而来到这里的人提供这个答案,我认为这对OP也有一些用处。

搜索软件包版本

首先我要指出的是man pacman 说在搜索包时可以使用版本说明符:

您还可以指定版本要求:pacman -S "bash>=3.2".需要引号,否则 shell 会将 ">" 解释为重定向到文件。

据推测,有时可能存在多个版本,例如在包的不同版本共存的情况下,因为它们具有显着不同的功能;例如 Python 2 和 Python 3。如果数据库中只有该包的一个版本可用,那么如果版本说明符排除了该包,该命令可能不会安装它。

在网站上搜索包

以说教为代价,请考虑先在网站上搜索。我知道其他包管理器搜索功能已被贬值并删除,因为命令行搜索的流量太大。特别考虑不是将在线搜索批量化为自动化可能无助于增加使用量。

记住网址当然很容易。

从命令行在线搜索包

它没有被显着记录,但是pacman 搜索可用的软件包:尚未下载和安装的软件包,它可以使用正则表达式来执行此操作:

pacman -Ss <regex>

例如:

pacman -Ss bash

页面中还有一个正则表达式示例man

pacman -Ss ne.hack
Search for regexp "ne.hack" in package database.

-Ss选项助记符

Pacman 确实有一个“Q”表示“查询”命令,但我相信这仅限于查询已安装仅包,并且有很大的灵活性和强大的功能来管理您的安装基础、查找孤立包以及剔除和修剪您的包和剩余文件。

此搜索不是“查询”,因为它针对的是在线数据库。因此,这是一个“同步”命令:“S”代表“同步”。如果您在安装时已经接受了“同步”,希望您有足够灵活的头脑,可以在您的命令需要在线访问时将其记入您的记忆中,然后只需记住它是“s” “搜索”选项::-Ss“同步搜索”。

有多好pacman

嗯,我不知道,但pacman似乎拥有一切。整个范围内没有“不,不能”的答案。吃豆人交付。拱门的力量。

相关内容