首页 > 系统相关 >[Linux]pacman命令详解

[Linux]pacman命令详解

时间:2025-01-09 22:22:17浏览次数:1  
标签:包名 删除 package pacman Linux 详解 软件包 安装

以下只是一些pacman的简单操作实例。

1. 更新系统

在 Archlinux 中,使用一条命令即可对整个系统进行更新:

 

pacman -Syu

如果你已经使用 pacman -Sy 将本地的包数据库与远程的仓库进行了同步,也可以只执行:

pacman -Su

2. 安装包

# pacman -S 包名:例如,执行 pacman -S firefox 将安装 Firefox。你也可以同时安装多个包, 只需以空格分隔包名即可。
# pacman -Sy 包名:与上面命令不同的是,该命令将在同步包数据库后再执行安装。
# pacman -Sv 包名:在显示一些操作信息后执行安装。
# pacman -U:安装本地包,其扩展名为 pkg.tar.gz。

3. 删除包

# pacman -R 包名:该命令将只删除包,不包含该包的依赖。
# pacman -Rs 包名:在删除包的同时,也将删除其依赖。
# pacman -Rd 包名:在删除包时不检查依赖。

4. 搜索包

# pacman -Ss 关键字:这将搜索含关键字的包。
# pacman -Qi 包名:查看有关包的信息。
# pacman -Ql 包名:列出该包的文件。

5. 其他用法

# pacman -Sw 包名:只下载包,不安装。
# pacman -Sc:Pacman 下载的包文件位于 /var/cache/pacman/pkg/ 目录。该命令将清理未安装的包文件。
# pacman -Scc:清理所有的缓存文件。

简单实例

安装软件包
安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:

  1. pacman -S package_name1 package_name2

有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。你可以选择一个来安装:

  1. pacman -S extra/package_name
  2. pacman -S testing/package_name

删除软件包
删除单个软件包,保留其全部已经安装的依赖关系

  1. pacman -R package_name

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

  1. pacman -Rs package_name

缺省的,pacman会备份被删除程序的配置文件,将它们加上*.pacsave扩展名。如果你在删除软件包时要同时删除相应的配置文件(这种行为在基于Debian的系统中称为清除purging),你可是使用命令:

  1. pacman -Rn package_name

当然,它也可以加上-s参数来删除当前无用的依赖。这样的话,真正删除一个软件包、它的配置文件以及所有不再需要的依赖的命令如下:

  1. pacman -Rsn package_name

升级系统
Pacman能够只用一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新。

  1. pacman -Su

当然,最好做法的是将升级系统和同步仓库数据合成为一条指令:

  1. pacman -Syu

查询包数据库
Pacman可以在包数据库中查询软件包,查询位置包含了包的名字和描述:

  1. pacman -Ss package

要查询已安装的软件包:

  1. pacman -Qs package

一旦你得到了软件包的完整名字,你可以获取关于它的更为详尽的信息:

  1. pacman -Si package
  2. pacman -Qi package

要获取已安装软件包所包含文件的列表:

  1. pacman -Ql package

你也可以通过查询数据库获知目前你的文件系统中某个文件是属于哪个软件包。

  1. pacman -Qo /path/to/a/file

要罗列所有不再作为依赖的软件包(孤立orphans):

  1. pacman -Qdt

Pacman使用-Q参数来查询本地软件包数据库。参见:

  1. pacman -Q –help

…而使用-S参数来查询远程同步的数据库。参见:

  1. pacman -S –help

详情可参见pacman man。

其它用法
Pacman是个非常广泛的包管理工具,这里只是它的一些其它主要特性。
• 下载包而不安装它:

  1. pacman -Sw package_name

• 安装一个’本地’包(不从源里):

  1. pacman -U /path/to/package/package_name-version.pkg.tar.gz

• 安装一个’远程’包(不从源里):

  1. pacman -U http://url/package_name-version.pkg.tar.gz

• 清理当前未被安装软件包的缓存(/var/cache/pacman/pkg):

  1. pacman -Sc

• 完全清理包缓存:

  1. pacman -Scc

Warning: 关于pacman -Scc,仅在你确定不需要做任何软件包降级工作时才这样做。pacman -Scc会从缓存中删除所有软件包。
• 要删除孤立软件包(递归的,要小心):

  1. pacman -Rs $(pacman -Qtdq)

• 重新安装你系统中所有的软件包(仓库中已有的):

  1. pacman -S $(pacman -Qq | grep -v “$(pacman -Qmq)”)

• 获取本地软件包和它们大小的一个已排序清单列表:

  1. LANG=C pacman -Qi | sed -n ‘/^Name[^:]*: (.*)/{s//1 /;x};/^Installed[^:]*: (.*)/{s//1/;H;x;s/n//;p}’ | sort -nk2

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

配置
Pacman的配置文件位于/etc/pacman.conf。关于配置文件的进一步信息可以用man pacman.conf查看。

常用选项
常用选项都在[options]段。阅读man手册或者查看缺省的pacman.conf可以获得有关信息和用途。
跳过升级软件包
如果由于某种原因,你不希望升级某个软件包,可以加入内容如下:

  1. IgnorePkg = 软件包名

跳过升级软件包组
和软件包一样,你也可以象这样跳过升级某个软件包组:

  1. IgnoreGroup = gnome

标签:包名,删除,package,pacman,Linux,详解,软件包,安装
From: https://www.cnblogs.com/lusuo/p/18662989

相关文章

  • 【Linux】深入理解文件系统(超详细)
    目录一.磁盘1-1磁盘、服务器、机柜、机房......
  • Java工程师必学的Linux知识点
    一、Linux基础知识1.Linux概述1.1Linux发行版Linux发行版(Distributions)是基于Linux内核构建的操作系统,通常包含内核、系统工具、应用软件和包管理器。常见的发行版包括:CentOS:企业级发行版,基于RedHatEnterpriseLinux(RHEL),稳定性高,常用于服务器环境。Ubuntu:用户友好,社......
  • MyBatis 动态 SQL、多表查询与注解开发详解
    MyBatis动态SQL、多表查询与注解开发详解1.MyBatis动态SQLMyBatis提供了强大的动态SQL功能,允许我们根据不同的条件拼接SQL语句,避免了手动拼接SQL的繁琐和错误。常见的动态SQL标签包括:if:用于条件判断,根据条件是否成立来决定是否拼接SQL片段。choose(when,ot......
  • Linux tee命令详解
    tee命令是一个非常实用的Linux命令,它用于从标准输入读取数据,并将这些数据同时输出到标准输出和一个或多个文件中。这个命令的名字来源于管道(pipe)的概念,就像一个T型接头一样,将数据分流到多个方向。基本语法tee[选项][文件...]常用选项-a:追加模式。默认情况下,tee会覆盖文件......
  • linux网桥(Linux Bridge)的一些个人记录
    目录1.LinuxBridge简述2.网桥创建创建配置持久化在Debian/Ubuntu系统上:在CentOS/RHEL系统上:启用和验证3.关于linux网桥不转发ip帧的问题原因解决配置持久化4.查看网桥学习交换表手动添加或删除条目添加条目删除条目配置静态条目设置条目的老化时间持久化配置5.关于linux网桥......
  • Linux 运维必备 150 个命令汇总
    本文章盘点了Linux运维必备150个命令,可配合Linuxcool网站使用。线上查询及帮助命令man:全拼manual,用来查看系统中自带的各种参考手册。help:用于显示shell内部命令的帮助信息。文件和目录操作命令ls:全拼list,列出目录的内容及其内容属性信息。cd:全拼changedirectory,切换当......
  • Rocky Linux 9.5 安装 MySQL 8.0
    RockyLinux9.5安装MySQL8.0RockyLinux9.5 [root@netkiller~]#dnfinstall-ymysql-server[root@netkiller~]#systemctlenablemysqldCreatedsymlink/etc/systemd/system/multi-user.target.wants/mysqld.service→/usr/lib/systemd/system/mysqld.ser......
  • linux kernel bind()时发生了什么
    配置实验一下,我有两个口lo和enp0s3,两个地址,如下所示。 真实物理口测试访问同子网的10.0.2.2如果没有地址,返回:Cannotassignrequestedaddress,说明bind失败了。 lo口测试访问loopback地址127.0.0.1如果没有地址,返回:Cannotassignrequestedaddress,说明bind失败了......
  • Linux移植touchpad驱动
    项目场景:    更换触摸屏,移植别的厂家触摸屏驱动。解决方案:解压厂家驱动到/drivers/input/touchscreen/文件夹。修改本层目录内的Makefile,添加代码obj-y+=XXX/,XXX是刚解压好的文件名。如果存在Kconfig,需要在里面source加压文件的Kconfig,没有则继续,实际上此步骤......
  • linux8安装oracle 11g遇到的问题记录
    大家都知道oracle11g在linux6或7上安装是没有问题的,但在linux8上安装时在link编译环节会遇见各种问题。按照oracle官网的说法,可直接跳过这些错误,等他安装完毕,然后打补丁,再重新编译即可。官网给出的方案1、InstallOracleDatabase11.2.0.4(softwareonly):Note:Ignoreany......