使用 pacman 获取有关已安装和远程软件包的信息

使用 pacman 获取有关已安装和远程软件包的信息

我在用着pacmanArch Linux 上的 5.0.1,我想获取有关我的计算机上安装的软件包以及远程存储库中的软件包的信息。

信息应包括包的描述、其大小和构建日期。

答案1

使用--info

服用vi例如,获取有关其的信息本地安装包使用

pacman -Q --info vi

这会产生

Name            : vi
Version         : 1:070224-2
Description     : The original ex/vi text editor
Architecture    : x86_64
URL             : http://ex-vi.sourceforge.net/
Licenses        : custom:ex
Groups          : base
Provides        : None
Depends On      : ncurses
Optional Deps   : s-nail: used by the preserve command for notification [installed]
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 290.00 KiB
Packager        : Evangelos Foutras <[email protected]>
Build Date      : Sun 06 Sep 2015 09:34:15 PM CEST
Install Date    : Mon 03 Oct 2016 07:18:13 PM CEST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

或者使用较短的-i选项:

pacman -Qi vi

只获取 a 的值具体的包属性,就说描述吧,有好老的grep过滤输出:

pacman -Qi vi | grep -Po '^Description\s*: \K.+'

哪个打印

最初的 ex/vi 文本编辑器

grep上面命令的简短解释:

  • -P激活 Perl 兼容的正则表达式
  • -o仅打印匹配行的匹配部分,而不打印整行
  • ^Description\s*: \K.+是正则表达式:该行必须以“Description”开头,后跟任意数量的空白字符,最后是“:”。然后:
    • \K重置比赛的起点。以“Description”开头的匹配字符不包含在最终匹配中
    • 最后,.+匹配后面的所有内容,即包描述

这里有一个通用的回答关于如何从行中删除已知前缀。


从获取信息偏僻的存储库的工作原理类似:

pacman -Si vi

当您只知道包名称的一部分时,请使用以下-s选项:

pacman -Ss jdk

要找出哪些包依赖于某个包 - 例如,如果您想知道为什么系统上存在某个包 - 您可以使用帕克特里

pactree -r intel-media-driver

这会产生一个很好的依赖树:

intel-media-driver
└─intel-media-sdk
  └─ffmpeg
    ├─electron6
    │ └─code
    ├─firefox
    ├─freerdp
    │ └─wlroots
    │   └─sway
    ├─qt5-webengine
    │ └─python2-pyqtwebengine
    │   └─calibre
    ├─unpaper
    │ └─ocrmypdf
    ├─vlc
    └─wf-recorder-git

最小包浏览器

将前面的命令与弗兹夫允许最小的文本包浏览器。

对于本地包:

cmd='(pacman -Qi {}; pactree -r {})'; pacman -Q --quiet | fzf --preview "$cmd"

对于远程包:

cmd='pacman -Si {2}'; pacman -S --list | fzf --preview "$cmd"

Shift您可以使用+Shift+滚动预览

要使用 在编辑器中打开预览Enter,请将命令更改为:

fzf --preview "$cmd" --bind "enter:execute($EDITOR <($cmd))"

此处预览的内容将使用传递给您的编辑器流程替代

相关内容