From fa15c327176b4e84526d79d8e5169cc25ed509b8 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Tue, 25 Apr 2023 22:08:47 +0800 Subject: [PATCH] doc: update docs/pacman.md (#357) --- docs/pacman.md | 200 ++++++++++++++++++++++++++++--------------------- 1 file changed, 115 insertions(+), 85 deletions(-) diff --git a/docs/pacman.md b/docs/pacman.md index b43c120..f8cc1e9 100644 --- a/docs/pacman.md +++ b/docs/pacman.md @@ -1,16 +1,17 @@ -PACMAN 备忘清单 +Pacman 备忘清单 === -这个 PACMAN 快速参考备忘单显示了它的常用命令使用清单。 +这个是 Arch Linux 软件包管理器 Pacman 快速参考备忘单显示了它的常用命令使用清单。 PACMAN 清单查询 --- ### 介绍 -Pacman软件包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman的目标是简化对软件包的管理,无论软件包是来自官方软件仓库还是用户自己创建的软件包。 -Pacman 通过和主服务器同步软件包列表来保持系统是最新的。这种服务器/客户端模式可使得用户使用简单的命令,就能下载或安装软件包,并包含其所有必需的依赖包。 +Pacman 是 Arch Linux 软件包管理器。帮助您在 Arch Linux 上使用 Pacman 软件包管理器进行软件包的安装、升级、搜索和删除等操作 + +--- 命令语法格式 @@ -38,13 +39,16 @@ $ pacman $ man pacman ``` ----- +请注意,使用 Pacman 命令时,需要管理员权限 `sudo` + +--- 相关参考文献 - [Archlinux Wiki 官方文档](https://wiki.archlinuxcn.org/wiki/Pacman) ### 示例 + Option | Function :-- | -- @@ -57,7 +61,13 @@ Option | Function `pacman -F, --files` | 查询文件数据库。 `pacman -V, --version` | 显示版本 `pacman -h, --help` | 显示帮助信息 - + + +升级所有已安装的软件包 + +```bash +$ sudo pacman -Syu +``` ### 安装 @@ -91,22 +101,6 @@ $ pacman -S plasma-{desktop,mediacenter,nm} $ pacman -S plasma-{workspace{,-wallpapers},pa} ``` -### 清理软件包缓存 - -pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包 - -要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库 - -```bash -$ pacman -Sc -``` - -要删除缓存中的全部文件 - -```bash -$ pacman -Scc -``` - ### 安装包组 一些包属于一个可以同时安装的软件包组 @@ -121,70 +115,8 @@ $ pacman -S gnome $ pacman -Sg gnome ``` -### 删除软件包 - -删除单个软件包,保留其全部已经安装的依赖关系 - -```bash -$ pacman -R package_name -``` - -删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系: - -```bash -# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。 -$ pacman -Rs package_name -``` - - - -要删除软件包和所有依赖这个软件包的程序: - -```bash -# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。 -$ pacman -Rsc package_name -``` - -要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包 - -```bash -# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用 -$ pacman -Rdd package_name -``` - -### 其它命令 - -升级系统时安装其他软件包: - -```bash -$ pacman -Syu package_name1 package_name2 ... -``` - -下载包而不安装它: - -```bash -$ pacman -Sw package_name -``` - -安装一个本地包(不从源里下载) - -```bash -$ pacman -U /path/to/package/package_name-version.pkg.tar.zst -``` - -要将本地包保存至缓存 - -```bash -$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst -``` - -安装一个远程包(不在 pacman 配置的源里面): - -```bash -$ pacman -U http://www.example.com/repo/example.pkg.tar.zst -``` - ### 查询包数据库 + pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库 @@ -272,6 +204,22 @@ $ pacman -Qdt $ pacman -Qet ``` +### 清理软件包缓存 + +pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包 + +要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库 + +```bash +$ pacman -Sc +``` + +要删除缓存中的全部文件 + +```bash +$ pacman -Scc +``` + #### Pactree > 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。 @@ -281,3 +229,85 @@ $ pacman -Qet ```bash $ pactree package_name ``` + +### 删除软件包 + +删除单个软件包,保留其全部已经安装的依赖关系 + +```bash +$ pacman -R package_name +``` + +删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系: + +```bash +# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。 +$ pacman -Rs package_name +``` + + + +要删除软件包和所有依赖这个软件包的程序: + +```bash +# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。 +$ pacman -Rsc package_name +``` + +要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包 + +```bash +# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用 +$ pacman -Rdd package_name +``` + +### 查询一个包含具体文件的包名 + +同步文件数据库: + +```bash +$ pacman -Fy +``` + +查询包含某个文件的包名,比如: + +```bash +$ pacman -F pacman +core/pacman 5.0.1-4 + usr/bin/pacman + usr/share/bash-completion/completions/pacman +extra/xscreensaver 5.36-1 + usr/lib/xscreensaver/pacman +``` + +### 其它命令 + +升级系统时安装其他软件包: + +```bash +$ pacman -Syu package_name1 package_name2 ... +``` + +下载包而不安装它: + +```bash +$ pacman -Sw package_name +``` + +安装一个本地包(不从源里下载) + +```bash +$ pacman -U /path/to/package/package_name-version.pkg.tar.zst +``` + +要将本地包保存至缓存 + +```bash +$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst +``` + +安装一个远程包(不在 pacman 配置的源里面): + +```bash +$ pacman -U http://www.example.com/repo/example.pkg.tar.zst +```