pacman用法

2023-05-16

Pacman 是archlinux 下的包管理软件。它将一个简单的二进制包格式和易用的构建系统结合了起来。不管软件包是来自官方的 Arch 库还是用户自己创建,Pacman 都能方便得管理。

pacman -Sy abc                  #和源同步后安装名为abc的包

pacman -S   abc                 #从本地数据库中得到abc的信息,下载安装abc包
pacman -Sf abc                  #强制安装包abc
pacman -Ss abc                 #搜索有关abc信息的包
pacman -Si abc                  #从数据库中搜索包abc的信息
pacman -Qi abc                  #列出已安装的包abc的详细信息
pacman -Syu                      #同步源,并更新系统
pacman -Sy                        #仅同步源
pacman -Su                        #更新系统
pacman -R   abc                  #删除abc包
pacman -Rc abc                  #删除abc包和依赖abc的包
pacman -Rsc abc                #删除abc包和abc依赖的包
pacman -Sc                        #清理/var/cache/pacman/pkg目录下的旧包
pacman -Scc                      #清除所有下载的包和数据库
pacman -U   abc                 #安装下载的abs包,或新编译的abc包
pacman -Sd abc                 #忽略依赖性问题,安装包abc
pacman pacman -Su --ignore foo   #升级时不升级包foo
pacman -Sg abc                  #查询abc这个包组包含的软件包

安装和删除包

      安装和升级软件包前,先让本地的包数据库和远程的软件仓库同步是个好习惯。
  pacman -Syu
  或者
  pacman --sync --refresh
  安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:
  pacman -S package_name1 package_name2
  有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。你可以选择一个来安装:
  pacman -S extra/package_name
  pacman -S testing/package_name

  你也可以在一个命令里同步包数据库并且安装一个软件包:
  pacman -Sy package_name
  删除单个软件包,保留其全部已经安装的依赖关系
  pacman -R package_name
  删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

  pacman -Rs package_name  

升级系统

      Pacman能够只用一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新。
  pacman -Su
  当然,最好做法的是将升级系统和同步仓库数据合成为一条指令:

  pacman -Syu  

查询包数据库

  Pacman 可以用 -Q 标志搜索和查询本地包数据库。见
  pacman -Q --help
  或者更详细的 pacman(8) manpage。同步数据库可以用 -S 标志搜索和查询。或者见刚提及的 manpage 或者
  pacman -S --help

  查看详情。  

其它用法

       Pacman是个非常广泛的包管理工具,这里只是它的一些其它主要特性。
  下载包而不安装它:
  pacman -Sw package_name
  安装一个本地包(不从源里):
  pacman -U /path/to/package/package_name-version.pkg.tar.gz
  完全清理包缓存(/var/cache/pacman/pkg):
  pacman -Scc
  重安装包(那些因为依赖关系问题而无法先删除的包):
  pacman -Sf package_name

  要了解更详细的参数开关可以pacman --help或者man pacman。

Archlinux打包安装方法

Arch的打包系统和别的Linux发行版不一样,用ABS系统(Arch Build System)把源代码打包成.pkg.tar.gz / .pkg.tar.xz 才能安装。

首先下载abs(Arch Build System),修改/etc/abs.conf文件,要去掉mirror list里没有的包,一般只有core, community, and extra。然后运行abs(若出错先执行abs core然后执行abs)。

# pacman -S abs

# vim /etc/abs.conf

# abs

运行后会自动把脚本文件下载到/var/abs中。

接下来创建一个用于编译包的目录,之所以不在/var下是防止覆盖原脚本。

创建PKGBUILD文件,也可复制PKGBUILD模板(位于/usr/share/pacman/PKGBUILD.proto)到工作目录复制一个类似包的PKGBUILD。

复制要编译的脚本到创建的目录中,修改编译脚本。然后在该目录下运行:

$ makepkg -s

makepkg工具会寻找PKGBUILD文件,根据该文件编译并生成一个*.pkg.tar.gz的文件包,Archlinux采用pacman管理安装包。最后用pacman安装编译生成的包。

# pacman -U  *.pkg.tar.gz

这样就成功安装自己编译的文件了。要了解具体的编译过程,可以看下makepkg和make的工作原理。

References.

ArchWiki. Arch Build System. https://wiki.archlinux.org/index.php/Arch_Build_System

ArchWiki. Creating Packages. https://wiki.archlinux.org/index.php/Creating_Packages

一,pacman参数详细说明

查看 复制 打印 ?
  1. [zhangy@BlackGhost ~]$ pacman -h  
  2. 用法:  pacman <操作> [...]  
  3. 操作:  
  4.  pacman {-h --help}       //帮助  
  5.  pacman {-V --version}   //查看版本  
  6.  pacman {-D --database} <选项> <软件包>  //pacman管理数据库选项  
  7.  pacman {-Q --query}    [选项] [软件包]    //查询安装包  
  8.  pacman {-R --remove}   [选项] <软件包>  //删除安装包  
  9.  pacman {-S --sync}     [选项] [软件包]      //安装安装包  
  10.  pacman {-U --upgrade}  [选项] <文件>   //更新安装包  
  11.   
  12. 使用 'pacman {-h --help}' 及某个操作以查看可得的选项  

1,pacman -D

  1. [zhangy@BlackGhost ~]$ pacman -D --help  
  2. 用法:  pacman {-D --database} <选项> <软件包>  
  3. 选项:  
  4.  --asdeps         标记为非单独指定安装的软件包  
  5.  --asexplicit     标记为单独指定安装的软件包  
  6.  --config <路径>  指定另外的配置文件  
  7.  --logfile <路径> 指定另外的日志文件  
  8.  --noconfirm      不询问确认  
  9.  --noprogressbar  下载文件时不显示进度条  
  10.  --noscriptlet    不执行安装小脚本  
  11.  -v, --verbose        循环执行  
  12.  -- debug        显示除错信息  
  13.  -r, --root <路径>    指定另外的安装根目录  
  14.  -b, --dbpath <路径>  指定另外的数据库位置  
  15.  --cachedir <目录> 指定另外的软件包缓存位置  
  16.  --arch <架构>    设定另外的架构  

2,pacman -Q

  1. [zhangy@BlackGhost ~]$ pacman -Q --help  
  2. 用法:  pacman {-Q --query} [选项] [软件包]  
  3. 选项:  
  4.  -c, --changelog      查看某软件包的更新日志  
  5.  -d, --deps           列出所有作为依赖关系安装的软件包 [过滤器]  
  6.  -e, --explicit       列出所有单独指定安装的软件包 [过滤器]  
  7.  -g, --groups         查看某软件包组所属的所有软件包  
  8.  -i, --info           查看软件包信息 (-ii 查看备份文件)  
  9.  -k, --check          检查该软件包拥有的文件是否存在  
  10.  -l, --list           列出被查询软件包的内容  
  11.  -m, --foreign        列出没有在同步数据库时找到的已安装软件包 [过滤器]  
  12.  -o, --owns <文件>     查询哪个软件包拥有  <文件>  
  13.  -p, --file <软件包> 从某个软件包而不是数据库查询  
  14.  -s, --search <regex> 搜寻符合指定字符串的已安装本地的软件包  
  15.  -t, --unrequired     列出所有不被其他软件包要求的软件包 [过滤器]  
  16.  -u, --upgrades       列出所有可升级的软件包 [过滤器]  
  17.  -q, --quiet          在查询或搜索时显示较少的信息  
  18.  --config <路径>  指定另外的配置文件  
  19.  --logfile <路径> 指定另外的日志文件  
  20.  --noconfirm      不询问确认  
  21.  --noprogressbar  下载文件时不显示进度条  
  22.  --noscriptlet    不执行安装小脚本  
  23.  -v, --verbose        循环执行  
  24.  -- debug        显示除错信息  
  25.  -r, --root <路径>    指定另外的安装根目录  
  26.  -b, --dbpath <路径>  指定另外的数据库位置  
  27.  --cachedir <目录> 指定另外的软件包缓存位置  
  28.  --arch <架构>    设定另外的架构  

3,pacman -R

  1. [zhangy@BlackGhost ~]$ pacman -R --help  
  2. 用法:  pacman {-R --remove} [选项] <软件包>  
  3. 选项:  
  4.  -c, --cascade        删除软件包及所有的依赖于此的软件包  
  5.  -d, --nodeps         略过依赖关系检查  
  6.  -k, --dbonly         只删除数据库记录,不删除文件  
  7.  -n, --nosave         同时删除配置文件  
  8.  -s, --recursive      同时删除 (不会破坏其他软件包的) 依赖关系(-ss·也包括单独指定安装的依赖关系)  
  9.  -u, --unneeded       同时删除不需要的 (且不会破坏其他软件包的) 依赖关系  
  10.  --print          仅打印目标而不执行操作  
  11.  --print-format <字符串>指定如何打印目标  
  12.  --config <路径>  指定另外的配置文件  
  13.  --logfile <路径> 指定另外的日志文件  
  14.  --noconfirm      不询问确认  
  15.  --noprogressbar  下载文件时不显示进度条  
  16.  --noscriptlet    不执行安装小脚本  
  17.  -v, --verbose        循环执行  
  18.  -- debug        显示除错信息  
  19.  -r, --root <路径>    指定另外的安装根目录  
  20.  -b, --dbpath <路径>  指定另外的数据库位置  
  21.  --cachedir <目录> 指定另外的软件包缓存位置  
  22.  --arch <架构>    设定另外的架构  

4,pacman -S

  1. [zhangy@BlackGhost ~]$ pacman -S --help  
  2. 用法:  pacman {-S --sync} [选项] [软件包]  
  3. 选项:  
  4.  --asdeps         作为非单独指定安装的软件包安装  
  5.  --asexplicit     作为单独指定安装的软件包安装  
  6.  -c, --clean          从缓存目录中删除旧软件包 (-cc 清除所有)  
  7.  -d, --nodeps         略过依赖关系检查  
  8.  -f,  --force          强制安装,覆盖存在冲突的文件  
  9.  -g, --groups         查看某软件包组所属的所有软件包  
  10.  -i, --info           查看软件包信息  
  11.  -l, --list <软件库>    查看在该软件库中的软件包清单  
  12.  -s, --search <regex表达式> 按照指定字符串查询远端软件库  
  13.  -u, --sysupgrade     升级所有已安装的软件包 (-uu 可启用降级)  
  14.  -w, --downloadonly   下载但不安装/升级软件包  
  15.  -y, --refresh        从服务器下载新的软件包数据库  
  16.  --needed         不重新安装已经为最新的软件包  
  17.  --ignore <软件包>   升级时忽略某个软件包 (可多次使用)  
  18.  --ignoregroup <软件包组>升级时忽略某个软件包组 (可多次使用)  
  19.  --print          仅打印目标而不执行操作  
  20.  --print-format <字符串>指定如何打印目标  
  21.  -q, --quiet          在查询或搜索时显示较少的信息  
  22.  --config <路径>  指定另外的配置文件  
  23.  --logfile <路径> 指定另外的日志文件  
  24.  --noconfirm      不询问确认  
  25.  --noprogressbar  下载文件时不显示进度条  
  26.  --noscriptlet    不执行安装小脚本  
  27.  -v, --verbose        循环执行  
  28.  -- debug        显示除错信息  
  29.  -r, --root <路径>    指定另外的安装根目录  
  30.  -b, --dbpath <路径>  指定另外的数据库位置  
  31.  --cachedir <目录> 指定另外的软件包缓存位置  
  32.  --arch <架构>    设定另外的架构  

5,pacman -U

  1. [zhangy@BlackGhost ~]$ pacman -U --help  
  2. 用法:  pacman {-U --upgrade} [选项] <文件>  
  3. 选项:  
  4.  --asdeps         作为非单独指定安装的软件包安装  
  5.  --asexplicit     作为单独指定安装的软件包安装  
  6.  -d, --nodeps         略过依赖关系检查  
  7.  -f,  --force          强制安装,覆盖存在冲突的文件  
  8.  -k, --dbonly         添加数据库记录,不安装或保持现存文件  
  9.  --print          仅打印目标而不执行操作  
  10.  --print-format <字符串> 指定如何打印目标  
  11.  --config <路径>  指定另外的配置文件  
  12.  --logfile <路径> 指定另外的日志文件  
  13.  --noconfirm      不询问确认  
  14.  --noprogressbar  下载文件时不显示进度条  
  15.  --noscriptlet    不执行安装小脚本  
  16.  -v, --verbose        循环执行  
  17.  -- debug        显示除错信息  
  18.  -r, --root <路径>    指定另外的安装根目录  
  19.  -b, --dbpath <路径>  指定另外的数据库位置  
  20.  --cachedir <目录> 指定另外的软件包缓存位置  
  21.  --arch <架构>    设定另外的架构  

从 CD/DVD/ISO 安装软件包

  • 先挂载 CD (如果需要,替换cdromdvd或其他介质):

# mount /mnt/cdrom
  
如果使用的是ISO映像,先在 /mnt 建立一个目录:

# mkdir /mnt/iso
  
然后挂载镜像:

# mount -t iso9660 -o ro,loop /path/to/iso /mnt/iso
  
  • 配置pacman:

# nano -w /etc/pacman.conf
  
  • 将如下仓库信息添加到其他软件仓库(如 extra、core)之前,确保优先使用介质中的软件包:

# 使用 cdrom 作为仓库
[custom]
Server = file:///mnt/cdrom/arch/pkg
  
如果使用其他介质,记得替换 cdrom

修改pacman.conf后,更新软件仓库即可。

参考:

pacman软件仓库:https://wiki.archlinux.org/index.php/Unofficial_user_repositories

pkgbuild各个字段含义:https://wiki.archlinux.org/index.php/PKGBUILD_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29

pacman创建软件仓库:https://wiki.archlinux.org/index.php/Pacman_tips_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#.E8.87.AA.E5.BB.BA.E6.9C.AC.E5.9C.B0.E4.BB.93.E5.BA.93



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pacman用法 的相关文章

  • tr td设置内边距 和 外边距

    tr tr xff1a 设置 margin 和 padding 都无效 td td xff1a 设置 margin无效 设置 padding有效
  • apppium 两个H5页面之间进行切换pagesource打印出的是上个页面的信息

    背景 当前项目有很多个H5界面 xff0c 在进行上下文切换的时候 xff0c 发现打印的pagesource是上一个H5页面的元素 原因 H5页面需要 chromedrive exe进行加载 xff0c 需要杀掉上一个页面的 chrome
  • uiautomatorviewer手机横屏显示截图调整为竖屏

    背景 手机app部分界面是横屏显示 xff0c 但是 uiautomatorviewer是竖屏显示 解决方案 将竖屏的图片 保存下来 xff0c 然后将图片旋转为横屏 再次打开 解决 1 点击保存按钮 xff0c 保存这个图片 2 将图片调
  • 版本管理-创建git仓库

    创建git仓库 把已有的项目代码纳入git管理 span class token builtin class name cd span 项目代码所在文件夹 span class token function git span init 新建
  • git 撤销commit

    撤销未push的commit span class token comment 用户已经执行的操作 span span class token function git span span class token function add
  • Django整理01:启动流程

    目录 启动 启动 span class token comment 启动命令 xff1a span python manage py runserver span class token comment 运行先文件的handler函数 sp
  • 差量更新问题记录

    问题 xff1a 升级后台配置了差量更新 xff0c 但是用户设备检测到的是全量更新 xff0c 测试设备检测到的是差量更新 原因 xff1a 差量更新需要具备的条件 xff1a 1 升级后台配置了差量更新的链接 2 设备对应的目录下有ba
  • Linux操作系统的启动过程

    Linux操作系统的启动过程 一 Linux操作系统的开机过程二 初始化进程服务三 服务管理命令 一 Linux操作系统的开机过程 Linux操作系统的开机过程可简记为 xff1a 两次检测 xff0c 一次装载 即首先对BIOS做初始化
  • manifest.json参数详解

    从官网文档翻译而来 xff0c 比大多数网上现有资源详细很多 xff0c 部分官网没有的属性通过stackoverflow xff0c 甚至是chromium源码查询而来 还有一些没注释的是查询不到或者本人无法确定的 官方文档地址 xff1
  • C语言经典例25-阶乘累加求和

    目录 1 题目2 分析3 实现4 运行结果 1 题目 求1 43 2 43 3 43 43 20 的和 2 分析 本题的本质就是求阶乘 xff0c 观察规律可以发现 xff0c 1 1 1 和

随机推荐

  • centos7 双击程序启动不了

    1 在终端输入ldd test 查看程序依赖的库 2 如果依赖库都存在 xff0c 双击程序启动不了 xff0c 但是在终端输入 test 却可以启动 原因解释 xff1a 在终端输入的程序是带路径的 xff0c 双击的时候是不带路径的 x
  • Ubuntu修改密码及密码复杂度策略设置方法

    版本查看 cat span class token operator span etc span class token operator span issue cat span class token operator span proc
  • 2022小米红米手机最新最全MIUI刷机教程内测版到稳定版 不清除数据(线刷、卡刷)

    文章目录 方法1 xff1a 解锁 线刷手机解锁解锁软件接入电脑刷机工具下载下载刷机包线刷 方法2 xff1a 小米助手卡刷包下载小米助手PC客户端打开手机USB调试模式连接小米助手卡刷miui卡刷包下载 起因是因为意外升级了一版内测版mi
  • TreeSet录入重复的元素及保证录入&输出顺序一致的Java实现

    Java萌新在学习路上遇到的一个扯dan的问题解法 知识点 Set TreeSet TreeSet自然排序 TreeSet比较器排序 Comparator 原题目 请编写main 方法 xff0c 按以下要求顺序 循环接收控制台录入的字符串
  • SpringBoot无法访问static文件夹 404问题

    使用spring boot 配置好后端 导入前端页面到resources 61 gt static 文件夹后 无法访问 但此时进入调试模式 访问controller的路径时 发现后台已经传送出去json数据 64 RequestMappin
  • Ubuntu虚拟机反复在登录界面循环问题

    登录Ubuntu的时候发现登录界面不对劲 xff0c 之前从来没有看到过 而且无法登录 xff0c 反复在登录界面循环 百度 xff0c 说原因有两个 xff1a 1 环境变量修改有问题 xff1b 2 显卡驱动有问题 xff1b 均尝试数
  • pycharm设置笔记

    目录 区分级别显示高亮日志 区分级别显示高亮日志 效果 设置log highlighting里填入 s E RROR s 即可 s E RROR s
  • Ubuntu设置开机自启动

    文章目录 前言一 基本概念二 操作步骤1 终端输入2 设置路径 总结 前言 本文介绍如何在Ubuntu设置开机自启动 一 基本概念 除了系统上配置的默认启动应用程序之外 xff0c gnome session properties 程序使用
  • uniapp 发布网站遇到的问题(跨域,nginx代理失败,index无法打开,手机端无法访问等)

    跨域 如果开发的应用直接是作为手机APP是不存在跨域问题的 xff0c 但是如果是网站形式就要考虑这个问题了 分为两点 xff1a 1 调试时 可通过设置maintest 2 发布后 可通过Nginx配置文件设置代理 nginx代理失败 1
  • 怎么在linux上安装vnc

    1 首先检查是否安装了VNC服务 输入命令 xff1a rpm qa grep vnc 2 安装VNC xff0c 首次执行vncserver需要设置密码 xff0c 可以创建多个桌面 xff0c 执行多次vncserver命令即可 roo
  • VNC修改端口号

    1 vnc的默认端口是自己配置的 xff0c 想要修改vncserver的配置 xff0c 需要先找配置文件路径 root 64 node04 which vncserver usr bin vncserver 2 通过查找以前配置的端口
  • onNewIntent使用遇到的坑

    onCreate是用来创建一个Activity也就是创建一个窗体 xff0c 但一个Activty处于任务栈的顶端 xff0c 若再次调用startActivity去创建它 xff0c 则不会再次创建 若你想利用已有的Acivity去处理别
  • CentOS7使用firewall-cmd打开关闭防火墙与端口

    一 centos7版本对防火墙进行加强 不再使用原来的iptables 启用firewalld 1 firewalld的基本使用 启动 xff1a systemctl start firewalld 查状态 xff1a systemctl
  • 算法数学基础-排列组合(题目取自牛客网)

    基础理论 xff1a 排列 有限集的子集按某种条件的序化法排成列 排成一圈 不许重复或许重复等 从n个不同元素中每次取出m xff08 1 m n xff09 个不同元素 xff0c 排成一列 xff0c 称为从n个元素中取出m个元素的无重
  • 关于对Spring框架的详解

    Spring框架 基本概念Spring的形成主要模块三层架构Spring的优点对于Spring 框架中都用到设计模式 xff1a 基本概念 Spring框架是由于软件开发的复杂性而创建的 Spring使用的是基本的JavaBean来完成以前
  • vs2015 提示严重性代码说明项目文件行禁止显示状态 错误C4996 'scanf': This function or variable may be unsafe.

    在 vs2015 中使用scanf时总是提示 unsafe 报出错误 xff0c 解决办法是在已经建立的项目中 xff0c 以后可能需要经常进行再不同的项目进行这项操作 xff1a 项目 gt 属性 gt c c 43 43 gt 常规 g
  • base7. ThreadPool线程池类——生产者与消费者模型

    ThreadPool类图 数据成员 xff1a MutexLock mutex xff1a 一个MutexLock类型的互斥变量mutex Condition cond xff1a 一个Condition类型的条件变量cond string
  • Ubuntu下anaconda中PyCharm遇到的环境问题

    Table of Contents 运行找不到包文件 可以run xff0c 不能debug 运行找不到包文件 解救办法 xff1a 将包的路径添加到interpreter中 可以run xff0c 不能debug 去掉setting中py
  • origin画图——同一图中多组数据

    origin画图 同一图中多组数据 xff08 2维 xff09 导入数据分别确定X Y轴列数据 xff08 选中列 set as X Y xff0c 全选数据 xff0c 点击下方绘图图标
  • pacman用法

    Pacman 是archlinux 下的包管理软件 它将一个简单的二进制包格式和易用的构建系统结合了起来 不管软件包是来自官方的 Arch 库还是用户自己创建 xff0c Pacman 都能方便得管理 pacman Sy abc 和源同步后