2022年11月06日我在处理ArchLinux的自动配置脚本时遇到了问题,需要对自动安装必备软件的函数进行升级维护,但是仔细分析后发现其实pacman已经做到了,需要我设置的只是将输出结果导入到/dev/null
而已。同时本文也是为那些刚进入到ArchLinux的朋友提供一个管理软件的说明。
安装软件
pacman -S (软件名) |
安装软件,若有多个软件包,空格分隔 |
pacman -S --needed (软件名) |
安装软件,若存在,不重新安装最新的软件 |
pacman -Sy (软件名) |
安装软件前,先从远程仓库下载软件包数据库 |
pacman -Sv (软件名) |
输出操作信息后安装 |
pacman -Sw (软件名) |
只下载软件包,而不安装 |
pacman -U (软件名.pkg.tar.gz) |
安装本地软件包 |
pacman -U
(http://www.xxx.com/xxx.pkg.tar.xz) |
安装一个远程包 |
卸载软件
pacman -R (软件名) |
只卸载软件包不卸载依赖的软件 |
pacman -Rv (软件名) |
卸载软件,并输出卸载信息 |
pacman -Rs (软件名) |
卸载软件,并同时卸载该软件的依赖软件 |
pacman -Rsc (软件名) |
卸载软件,并卸载依赖该软件的程序 |
pacman -Ru (软件名) |
卸载软件,同时卸载不被任何软件所依赖 |
搜索软件
pacman -Ss (关键字) |
在仓库搜索包含关键字的软件包 |
pacman -Sl |
显示软件仓库所有软件的列表 |
pacman -Qs (关键字) |
搜索已安装的软件包 |
pacman -Qu |
列出可升级的软件包 |
pacman -Qt |
列出不被任何软件要求的软件包 |
pacman -Q (软件名) |
查看软件包是否已安装 |
pacman -Qi (软件包) |
查看某个软件包详细信息 |
pacman -Ql (软件名) |
列出软件包所有文件安装路径 |
软件包组
pacman -Sg |
列出软件仓库上所有软件包组 |
pacman -Qg |
列出本地已经安装的软件包组和子软件包 |
pacman -Sg (软件包组) |
查看软件包组所包含的软件包 |
pacman -Qg (软件包组) |
查看软件包组所包含的软件包 |
更新系统
pacman -Sy |
从服务器下载最新的软件包数据库到本地 |
pacman -Su |
升级所有已安装的软件包 |
pacman -Syu |
升级整个系统 |
清理缓存
pacman -Sc |
清理未安装的软件包文件 |
pacman -Scc |
清理所有的缓存文件 |
问题汇总
- 由于改用pacman来管理texlive,所以在更新时就会有相应的texlive更新,但是今天遇到了麻烦,描述如下:
1 2 3 4 5 6 7 8 9 10 11 12
| arch :: 正在同步软件包数据库... core 已经是最新版本 extra 已经是最新版本 community 已经是最新版本 :: 正在进行全面系统更新... 正在解析依赖关系... 正在查找软件包冲突... :: texlive-langchinese 与 texlive-local-ctex 有冲突。删除 texlive-local-ctex 吗? [y/N] y :: texlive-core 与 texlive-local-xcolor 有冲突。删除 texlive-local-xcolor 吗? [y/N] y 错误:无法准备事务处理 (无法满足依赖关系) :: 安装 texlive-core (2023.66587-1) 破坏依赖 'texlive-core<2023' (texlive-localmanager-git 需要)
|
解决方案为: 1
| sudo pacman -Rdd texlive-localmanager-git texlive-localmanager-git && sudo pacman -Syu
|
请参考文章:ArchLinux近期更新依赖问题解决