我在用着pacman
Arch 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))"
此处预览的内容将使用传递给您的编辑器流程替代。