全站通知:

Pacman包管理器与密钥管理

阅读

    

2024-09-22更新

    

最新编辑:贪睡的小爱

阅读:

  

更新日期:2024-09-22

  

最新编辑:贪睡的小爱

来自ArchWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
贪睡的小爱


上一页: 安装和配置Arch 下一页: 安装桌面环境


初识Pacman

pacman简介

pacman是Arch默认的包管理器,他和其他发行版的包管理器一样,可以对下载,安装,卸载软件等操作。pacman要求其设计简洁明了,易于理解和提高效率,因此pacman的参数很简洁,都是由

单个字母组成,如 pacman -Ss, pacman -Qi, pacman -S 等。这也是和其他主流包管理器不同的一点,也是需要用户适应的,不过习惯pacman简洁的参数后,敲命令的速度也的确会变快哦。


pacman基本参数解释

提示:关于pacman的更多参数可以通过pacman --help来查看,这里仅列出常用的命令参数


    # 安装软件
    pacman -S 包名

    # 从源查找软件
    pacman -Ss 包名

    # 彻底删除软件,以及其依赖
    pacman -Rnsc 包名

    # 查找本地已经安装的软件
    pacman -Qs 包名

    # 查看制定软件包信息
    pacman -Qi 包名

    # 更新系统
    pacman -Syu

    # 强制更新系统
    pacman -Syyu

    # 移除所有的安装包
    pacman -Scc
这些命令的参数都是由单个单词组成的组合参数,接下来介绍一下这些参数分别是什么意思(注意区分大小写):


    S   从源同步数据库到本地
        s   查询源里的包
        u   升级已经安装的包
        y   更新远程包数据库到本地
        yy  强制更新
        c   移除旧的安装包
        cc  移除所有安装包

    R   移除软件包
        n   移除配置文件
        s   移除不需要的依赖
        c   移除包和依赖这个包的所有包

    Q   查询软件包
        s   查询本地安装的包
        i   显示包的相关信息
其中所有大写可以抽象的理解为 “一级参数”,所有小写的可以抽象理解为 "二级参数“,而虽然有些 ”二级参数“ 是一样的,但是因为他们在不同的 ”一级参数“ 里面,所以代表的含义也不同。


提示:直接输入 pacman --help 可以查看所有 ”一级参数“, 如果要查看 “二级参数” 的帮助信息,可以先输入 “一级参数”,再在后面加上--help, 如 pacman -S --help。

初识yay

yay简介和使用

yay是aur助手,那么aur是什么呢?他的全称是 Arch User Repository,中文译为arch用户仓库,顾名思义是由用户维护而不是官方的仓库,在aur里面,有大量用户维护的软件包,这也是

arch强大的原因之一,有了aur就相当于有了强大的 ”软件库“。而yay则可以理解为aur的包管理器,不过,yay同样的也可以是arch官方仓库的包管理器,因为他和官方仓库互通,可以访问官方仓库 里的包,而yay的命令与pacman兼容,参数完全可以使用pacman的。不过arch不内置yay,需要手动安装,按照以下步骤完成yay的安装。


    # 添加 archlinuxcn 源
    # 使用root编辑 /etc/pacman.conf文件
    sudo vim /etc/pacman.conf

    # 找到 [mutilib] 和 [mutilib-testing], 将这两项及其里面的配置都取消注释
    # 这一步是为了允许pacman安装32位软件
    [multilib-testing]
    Include = /etc/pacman.d/mirrorlist
    
    [multilib]
    Include = /etc/pacman.d/mirrorlist

    # 在结尾添加 archlinuxcn 仓库
    [archlinuxcn]
    Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
其中,最后一步的 Server 中配置的地址是可以改变的,按照自己的喜好,可以尝试换成以下任意地址:


    # 中国科学技术大学开源镜像站
    Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

    # 哈尔滨工业大学开源镜像站
    Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch

    # 华为开源镜像站
    Server = https://repo.huaweicloud.com/archlinuxcn/$arch
配置完成后,保存退出,并执行 pacman -Syu 来更新, 如果有报错,请尝试执行安装 archlinuxcn-keyring:pacman -S archlinuxcn-keyring。这是archlinuxcn的密钥环,密钥相关会在后面一节讲解
更新完成后,就可以直接通过pacman安装yay: pacman -S yay


前面说过, yay兼容pacman,可以执行pacman的所有参数,不过yay也给常用命令提供了更简洁的写法,如下:


    # 更新系统
    yay

    # 安装软件
    yay 包名
当执行 yay 包名 时,会列出与你包名相关的包,你只需按照提示输入包所对应的数字,然后按回车即可下载安装。

pacman-key管理密钥

pacman-key简介

pacman-key是arch自带的密钥管理工具,他底层是基于gpg的,那为什么不直接使用gpg来管理?因为直接基于gpg操作更复杂,也需要自己解决很多东西,并且和pacman不能很好的集成。而pacman-key

出现解决了这些问题,他和pacman是高度集成的,而且在管理密钥时也很方便,和pacman本身一样,仅用少量的参数来完成对应的操作。

对于pacman-key,常用的用法如下:


    # 初始化密钥环
    pacman-key --init

    # 查看所有以导入的密钥
    pacman-key --list

    # 更新密钥数据库
    pacman-key --refresh

    # 使用key id导入密钥
    pacman-key --recv-keys 密钥ID

    # 使用预定义的密钥列表导入列表
    pacman-key --populate 密钥列表

    # 删除密钥
    pacman-key --delete 密钥ID

    # 信任密钥
    pacman-key --lsign-key 密钥ID
注意:在首次使用pacman安装yay时,可能会出现密钥错误,因为还没有导入archlinuxcn的密钥,可以通过 pacman-key --populate archlinuxcn 命令来导入密钥。


接下来介绍一下在arch上从开发者发布软件到用户下载安装软件的完整过程,这有助于你对arch密钥的作用,验证流程有个更深入的理解:
    开发者
  1. 开发者构建好软件后,生成gpg密钥对(公钥+私钥),并用私钥对软件签名
  2. 将公钥+软件包一起上传到仓库,也可能通过其他方式公开公钥使用户能获取到

  3. 用户
  4. 初始化密钥环
  5. 导入软件的公钥
  6. 信任密钥
  7. 通过包管理器下载软件(以及签名)
  8. 验证签名,如果本地密钥环中有该密钥且密钥验证成功,则允许安装,反之安装失败




上一页: 安装和配置Arch 下一页: 安装桌面环境