pacman常用命令
自己一个人玩linux, 我怕等我死了之后不留任何痕迹,没人知道我有这样的兴趣,更怕没人记得我的存在。
所以还是写点东西发网上吧。
screen.png
未更新系统前,不要更新软件包数据库
与一些流行的 Linux 发行版包管理器命令的对应关系
Arch 用户在临时处理其他发行版时可以用 pacapt,它是对其它包管理器的简单包装。
查看软件包详细信息
pacman -Si xxx
或pacman -Qi xxx
删除软件包,及只有它依赖的依赖
pacman -Rs xxx
升级软件和系统(只支持整体升级)
pacman -Syu
查找软件包
pacman -Ss xxx
查找已安装的软件包
pacman -Qs xxx
查询软件包所包含的文件
pacman -Ql xxx
查询软件包是否有文件缺失
pacman -Qk xxx
查询软件包是否有文件变化
pacman -Qkk xxx
查询文件属于哪个包
pacman -Qo /xx/xx
列出所有孤儿包(作为依赖安装,但现在不被任何软件依赖的包)
pacman -Qdt
-t列出真正的孤儿包,-tt会同时列出可选依赖包
列出所有主动安装的且不被依赖的包
pacman -Qet
列出所有主动安装的包
pacmn -Qe
列出所有手动安装和已不在同步数据库中的包
pacman -Qm
查询软件包数量
pacman -Q | wc -l
pacman -Qe | wc -l
查看依赖树和被依赖树
pactree xxx
pactree -r xxx
清理软件包,保留近期的3个版本, 已卸载软件不保留近期版本
paccache -r
用下面命令按大小排序安装的软件包及其依赖的大小:
安装 expac 并运行 expac -H M '%m\t%n' | sort -h
以 -c 参数执行 pacgraph
用 expac 查询最近安装的 20 个软件包:
expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | tail -n 20
查找不属于任何软件包的文件
建议定期检查 pacman 数据库之外的文件。通常这些文件是第三方程序使用一般方式安装 (例如 ./configure; make; make install)。下面脚本可以找出它们:
pacman-disowned
#!/bin/sh
tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$
db=$tmp/db
fs=$tmp/fs
mkdir "$tmp"
trap 'rm -rf "$tmp"' EXIT
pacman -Qlq | sort -u > "$db"
find /bin /etc /lib /sbin /usr \
! -name lost+found \
\( -type d -printf '%p/\n' -o -print \) | sort > "$fs"
comm -23 "$fs" "$db"
要生成列表:
pacman-disowned > non-db.txt
注意删除 non-db.txt 中的文件时先仔细确认。有些是配置文件、日志等,不要删除它们。
递归删除孤立软件包:
pacman -Qtdq | pacman -Rns -