archlinux的软件管理工具pacman

张映 发表于 2010-09-25

分类目录: linux

标签:,

一,什么是pacman

Pacman 是一个 软件包管理器, 作为 ArchLinux发行版的一部分. 它最早由 Arch Linux 的 Judd Vinet开发. Pacman 可以解决安装过程中的依赖问题,自动下载并且安装所有需要的软件包。Pacman包管理器是Arch Linux的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman使得简单的管理与自定义软件包成为了可能,而不论他们来自于官方的Arch软件库或是用户自己创建的。

二,pacman参数详细说明

[zhangy@BlackGhost ~]$ pacman -h
用法:  pacman <操作> [...]
操作:
 pacman {-h --help}       //帮助
 pacman {-V --version}   //查看版本
 pacman {-D --database} <选项> <软件包>  //pacman管理数据库选项
 pacman {-Q --query}    [选项] [软件包]    //查询安装包
 pacman {-R --remove}   [选项] <软件包>  //删除安装包
 pacman {-S --sync}     [选项] [软件包]      //安装安装包
 pacman {-U --upgrade}  [选项] <文件>   //更新安装包

使用 'pacman {-h --help}' 及某个操作以查看可得的选项

1,pacman -D

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

2,pacman -Q

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

3,pacman -R

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

4,pacman -S

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

5,pacman -U

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

三,一些常規用法

1,安装包

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

pacman -S mysql

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

pacman -S extra/mysql
pacman -S community
/mysql

你也可以在一个命令里同步包数据库并且安装一个软件包:

pacman -Sy mysql

2,删除包

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

pacman -R mysql

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

pacman -Rs mysql

3,升级系统

pacman -Syu

安装一个本地包:

pacman -U 后面根上已下载的包或者是远程URL

当我们用pacman进行升级时,经常会遇到下载的包没有,到源里看时,要升级的包是有的,但是版本不一样,你要下的版本是没有,这种情况下,就可以用pacman -u

4,查询包

查询可用安装包

pacman -Ss mysql

要查询已安装的软件包:

pacman -Qs mysql

5,其他用法

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

pacman -Sc

下载包而不安装它:

pacman -Sw mysql



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/linux/1037.html

5 条评论

  1. cliier 留言

    你好。 我遇到一个问题, 在配置文件的时候会出错, 看了文章 还没有解决,
    error: could not open file /var/lib/pacman/symc/core.db:
    error: could not open file /var/lib/pacman/symc/extra.db
    error: could not open file /var/lib/pacman/symc/community.db
    我用的是管理员。

  2. 张映 留言

    你这个错误是怎么报出来的,是不是升级的时候?
    pacman -Syu

  3. cliier 留言

    谢谢 , 已经弄好了, 后面的问题 越来越多了!
    我现在在装 openbox 已经安装完成,进入了openbox环境,但 里面只有右键菜单。 我是个菜鸟, 对英语也……。 在那些软件的时候,有出现和上次类似的错误! 你可以帮我一下吗?

  4. 张映 留言

    关于openbox,你可以看一下这个https://wiki.archlinux.org/index.php/Openbox_(简体中文),比较全面。

  5. live 留言

    你好,我想安装truecrypt,可是他依赖与wxgtk。我只是在控制台下使用已经建立的文件,所以应该不需要任何图形方面的支持。所以我想忽略对wxgtk的依赖安装truecrypt,请问这应该使用什么参数?我尝试了“-Sd”但好像并不起作用。