¶ 命令行选项
¶ -S, --sync
:源里的包
# 安装或升级某包
pacman -S 包名
# 当未安装或者版本较旧时才安装
# https://superuser.com/questions/568967/prevent-pacman-from-reinstalling-packages-that-were-already-installed
pacman -S --needed 包名
# 源中某包的详细信息
pacman -Si 包名
¶ -R
: 移除某包
-s
: recursive,同时移除该包的依赖。例如A依赖B依赖C,那么pacman -Rs A
会同时移除A B C。
-c
: cascade,同时移除依赖该包的其他包。例如A依赖B依赖C,那么pacman -Rc C
会同时移除A B C。
参考:pacman: cascade vs. recursive
¶ -Q
: 查看已安装的包
# 所有包
pacman -Q
# 某包
pacman -Q 包名
# 详细信息
pacman -Qi 包名
# 包内的所有文件
pacman -Ql 包名
# 查看文件由哪个包提供
# https://bbs.archlinux.org/viewtopic.php?id=90635
pacman -Qo 相对路径或绝对路径
这里面也包括用yay安装的包。
参考:
How to find which package holds a file?
¶ 查看某包被哪些包依赖
pacman -Qi 包名
里面的Required By
后面的就是依赖这个包的包。
或者用pkgtools
包里的whoneeds
:
# archlinuxcn源里也有pkgtools
sudo yay -S pkgtools
whoneeds 包名
¶ 无效或已损坏的软件包
可能是archlinux-keyring
过时了,需要更新一下:
sudo pacman -Sy archlinux-keyring && sudo pacman -Su
来源:
https://wiki.archlinux.org/title/Pacman/Package_signing#Upgrade_system_regularly
¶ 不再使用的依赖
pacman -Qdt
其中有一些可能是yay自动下载用于构建包的,所以最好肉眼挑选出不需要的包,手动卸载。如果确认里面没有需要使用的包,才可以用这条指令把它们全部卸掉:pacman -Rsn $(pacman -Qdtq)
。
来源:https://bbs.archlinux.org/viewtopic.php?id=57431