pacman - archlinu环境下的包管理程序
上次使用pacman -Syu更新软件包后自动安装了开源版本的vscode,导致终端里使用code命令无法打开windows host中的官方版本vscode,今日卸载archlinux环境下安装的vscode,并使用pacman衍生的makepkg手动安装AUR库中的官方版本vscode,将一些心得和经验记录于下:
软件包基础搜索及安装卸载
$ pacman -Ss 软件名称 //(搜索软件包)
$ pacman -S 软件名称 //(安装软件包)
$ pacman -Rs 软件名称 //(卸载软件包)
$ pacman -Syu (更新)
包的查询及清理
列出所有本地软件包(-Q,query查询本地;-q省略版本号)$ pacman -Qq
列出所有显式安装(-e,explicitly显式安装;-n忽略外部包AUR)$ pacman -Qqe
列出自动安装的包(-d,depends作为依赖项)$ pacman -Qqd
列出孤立的包(-t不再被依赖的”作为依赖项安装的包”)$ pacman -Qqdt
注意:通常这些是可以妥妥的删除的。(sudo pacman -Qqdt | sudo pacman -Rs -)
软件包和文件的查询
列出包所拥有的文件1
2
3
4
5
6
7
8$ sudo pacman -Ql iw
iw /usr/
iw /usr/bin/
iw /usr/bin/iw
iw /usr/share/
iw /usr/share/man/
iw /usr/share/man/man8/
iw /usr/share/man/man8/iw.8.gzcheck 检查包文件是否存在(-kk用于文件属性)
1
2$ sudo pacman -Qk iw
iw: 7 total files, 0 missing files查询提供文件的包
1
2$ sudo pacman -Qo /usr/share/man/man8/iw.8.gz
/usr/share/man/man8/iw.8.gz is owned by iw 5.0.1-1查询包详细信息
查询包详细信息(-Qi;-Qii[Backup Files])(-Si[Repository,Download Size];-Sii[Signatures,])$ pacman -Qi 包名
Repository 仓库名称(要联网用pacman -Si或Sii才能看到这一栏;)
Name 名称
Version 版本
Description 描述
Architecture 架构
URL 网址
Licenses 许可证
Groups 组
Provides 提供
Depends On 依赖于(依赖那些包)
Optional Deps 可选项
Required By 被需求的(被那些包需求)
Optional For 可选项
Conflicts With 与…发生冲突
Replaces 替代对象
Download Size 下载大小(要联网用pacman -Si或Sii才能看到这一栏;)
Installed Size 安装尺寸
Packager 包装者
Build Date 包装日期
Install Date 安装日期
Install Reason 安装原因(主动安装,还是被依赖自动安装)
Install Script 安装脚本
Validated By 验证者卸载软件包
pacman -Rs
会递归删除目标软件包及其包含的一些依赖,这些依赖不被其他包依赖的,但经过实践会发现,一些作为可选项被依赖的包也会被删除,所以保险起见,可以先使用pacman -Rc
只删除当前安装包,之后使用pacman -Rc $(pacman -Qtdq)
删除不再被需要的依赖,此时不包含可选依赖makepkg安装AUR包
makepkg是一个软件包自动编译脚本。使用时需要一个 Unix 环境和 PKGBUILD.使用之前,确保 base-devel包组 软件组已经安装。
安装软件包分为以下几个步骤- 首先需要找到软件包构建所需文件,克隆其git存储库,在其AUR页面的“包详细信息”中标记为“Git Clone URL”。
- 之后切换到含有软件包的 PKGBUILD 文件的目录
- 使用如下命令编译软件包并安装软件包所需依赖
$ makepkg --syncdeps / -s
- 最后安装软件包
$ makepkg --install / -i
- 删除软件包时可以使用pacman对应命令
- 首先需要找到软件包构建所需文件,克隆其git存储库,在其AUR页面的“包详细信息”中标记为“Git Clone URL”。