如何在 Arch Linux 中列出软件包的 [可用] 版本?

8 arch-linux package-management

我想知道如何在 Arch Linux 中列出给定软件包的所有可用版本(已安装和未安装),而不仅仅是最新版本。我知道 Gentoo ( eix <package>)、CentOS/Suse/Redhat/... ( yum list <package>) 和 Debian ( apt-cache policy <package>)。我知道我曾经在 Arch 中这样做过,但不记得是怎么做的。假设我想要的包不在pacman 缓存中。

使用 Arch 我有这个:

$ pacman -Ss gcc
core/gcc 6.2.1-1 (base-devel)
    The GNU Compiler Collection - C and C++ frontends
core/gcc-ada 6.2.1-1
    Ada front-end for GCC (GNAT)
core/gcc-fortran 6.2.1-1
...
Run Code Online (Sandbox Code Playgroud)

这是您使用 Gentoo 的示例:

eix gcc
...
[I] sys-devel/gcc
     Available versions:  
     (2.95.3) ~*2.95.3-r10^s
     (3.3.6) ~3.3.6-r1^s
     (3.4.6) 3.4.6-r2^s
     (4.0.4) **4.0.4^s
     (4.1.2) 4.1.2^s
     (4.2.4) ~4.2.4-r1^s
     (4.3.6) 4.3.6-r1^s
     (4.4.7) 4.4.7^s
     (4.5.4) 4.5.4^s
     (4.6.4) 4.6.4^s
     (4.7)  4.7.4^s
     (4.8)  ~4.8.0^s ~4.8.1-r1^s ~4.8.2^s 4.8.3^s 4.8.4^s 4.8.5^s
     (4.9)  ~*4.9.0^s ~*4.9.1^s ~4.9.2^s ~4.9.3^s
     (5.1)  **5.1.0^s
     (5.2)  **5.2.0^s
       {altivec awt boundschecking cilk +cxx d debug doc fixed-point +fortran gcj go graphite hardened libssp mudflap multilib multislot +nls nopie nossp +nptl objc objc++ objc-gc +openmp regression-test +sanitize vanilla}
     Installed versions:  4.8.5(4.8)^s(10:57:39 02/09/15)(cxx fortran multilib nls nptl openmp sanitize -altivec -awt -debug -doc -fixed-point -gcj -go -graphite -hardened -libssp -mudflap -multislot -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla)
     Homepage:            http://gcc.gnu.org/
     Description:         The GNU Compiler Collection
...
Run Code Online (Sandbox Code Playgroud)

在这里,您拥有 GCC 的所有可用版本,已安装的版本以反向视频突出显示(在此处无法看到)。在我运行的系统上,安装的 GCC 是 4.8.5 版。

那么在 Arch Linux 下又是如何做到的呢?


编辑:虽然我的机器上不再有 Arch,但我想我必须添加一些细节以提高精度。当时我想要的不是[如何]降级软件包。我需要的是知道我想要升级的软件包的可用版本列表,而不仅仅是最新版本。例如,当我知道软件包的最新版本(在升级时)有问题并且我想尝试前一个版本时,这很有用,如果它也恰好是我系统上当前安装版本的升级。

Wie*_*and 7

一个简单的pacman -Ss <package>将向您显示该信息:

? LC_ALL=en_US.utf8 pacman -Ss evince
testing/evince 3.22.0+1+gc1dd9eb-1 (gnome) [installed: 3.20.1-2]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))
extra/evince 3.20.1-2 (gnome) [installed]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))
Run Code Online (Sandbox Code Playgroud)

在您的问题中的示例之后更新:

在 Arch Linux 中,您只能拥有(除非您使用非官方存储库)一个软件包的两个版本:一个在 core/extra/community/multilib 存储库中的稳定版本和一个在测试中。

如果您真的真的很想安装较旧的软件包,您有多种选择可以找到它们:

  1. 使用Arch Linux Archive查找旧版本的软件包。

  2. 使用降级wiki 文章中的工具之一来查找它们,例如agetpkg -l gccdowngrader gcc

请注意 Arch Linux 中的软件包通常不会为其依赖项指定版本界限,因为不支持部分升级,因此安装某些软件包的旧版本不是一个好主意。


mau*_*wns 1

来自Arch Linux wiki(我的重点):

\n\n
\n

要查看可用软件包的旧版本和新版本,请取消注释\n "VerbosePkgLists"/etc/pacman.conf.

\n
\n\n

有关安装特定版本的更多信息,请参见此处

\n\n

编辑:

\n\n

这是它在我的 Arch 系统上的样子(VerbosePkgLists未注释):

\n\n
sudo pacman -Sy firefox\n:: Synkroniserar paketdatabasen...\n core \xc3\xa4r senaste versionen\n extra \xc3\xa4r senaste versionen\n community \xc3\xa4r senaste versionen\nl\xc3\xb6ser beroenden...\nS\xc3\xb6ker efter paket med konflikter...\n\nPaket (1)      Gammal Version  Ny Version  Nettoskillnad  H\xc3\xa4mtningsstorlek\n\nextra/firefox  48.0.2-1        49.0.1-1        -0,35 MiB         39,82 MiB\n\nTotal h\xc3\xa4mtningsstorlek:     39,82 MiB\nTotal installationsstorlek:  89,81 MiB\nNettouppgraderingsstorlek:   -0,35 MiB\n\n:: Forts\xc3\xa4tt med installation? [Y/n] \n
Run Code Online (Sandbox Code Playgroud)\n\n

我的系统(显然)是瑞典语的,但“ Gammal Version”表示Old version,“ Ny Version”表示New version。正如您在上面看到的,[Y/n]在安装任何东西之前都会提示我。

\n