红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > SuSE

Zypper软件包管理教程----(一)简介及软件查询

发布时间:2016-03-25 01:10:13来源:红联作者:sauntor
zypper是一款基于libzypp的软件包管理工具,也是openSuSE默认的命令行软件包管理工具。zypper可以实现软件的安装、卸载、查询、更新、软件资源库管理等功能。zypper支持yast2、rpm-md以及文件目录等类型的软件源库。下面我们就来一起了解一下Zypper的使用。(下面的zypper命令均须root身份,请在尝试执行这些命令之前切换到root用户或在命令前添加sudo)。
===================================================

查看支持的命令与选项:[code]#查看全局选项与所有 命令
zypper help
#查看某个命令的选项,如install
zypper help install
[/code]命令格式:[code]#不要将选项的位置提前或置后,不然命令将无法执行
zypper [全局选项] [命令] [命令选项] [命令参数][/code](常用)全局选项:[code]--quiet,
-q 静默模式,即仅在执行出错时才输出反馈信息
--non-interactive, -n 非交互模式,即命令执行中需要用户作出选择时,自动选择默认选项(一般是确认是否执行安装或卸载)
--disable-repositories 不使用指定软件源中的包
--no-refresh
不刷新软件源,即使用缓存的软件源库信息(即库中包含哪些软件包以及软件包的名称、描述等信息)
[/code]查询软件包,se(等同于se)、pt(等同于pattern):[code]#软件包组查询,所谓“软件包组”即为实现某一目的的一系列软件集合,例如c++开发
zypper pt
#查看 pt 命令的选项
zypper help pt
#下面是pt命令选项解释
-r 仅在指定的软件库别名/序号/URL中查询,软件资源库的别名可以通过zypper lr命令查看
-i 仅列出已安装的软件组
-u 仅列出未安装的软件组
#例如,我们要安装C++开发工具
zypper pt | grep -i c++
| devel_C_C++ | 20150918-10.1 | openSUSE-Leap-42.1-Oss |
| devel_C_C++ | 20150918-12.1 | openSUSE-Leap-42.1-Update |
| devel_C_C++ | 20150918-10.1 | ustc-oss |
| devel_C_C++ | 20150918-12.1 | ustc-update-oss |
i | devel_C_C++ | 20150918-12.1 | @System |

#在上面的输出中第一列是说明此软件组是否已安装,已安装的含“i”标记(例如最后一行),第三列是提供软件组的库名称
#如果上面没有“i”标记则说明我们没有安装C++开发工具链,下面的命令可以安装
zypper in -t pattern devel_C_C++
[/code]查询软件包:[code]zypper se <软件包名>
#查看选项
zypper help se
#常用选项如下
--match-substrings
子串匹配,即此选项所跟字符串只要出现在软件包名称、描述(须指定-d选项)等的某一部分即可列出,此选项亦是默认选项
--match-words
整字匹配,即软件包名称、描述(须指定-d选项)等进行分词(即按非a-z0-9的字符划分片段)后,如果某个词与此选项指定字符串相同则列出
--provides
匹配时包含“软件包提供特性”信息,例如,我们向开发C#但又不知道哪个软件包提供C#开发功能,则我们可以执行下面命令:
zypper se --provides csharp
S | Name | Summary | Type
--+------------------+---------------------------------------------------------+--------
| gettext-csharp | Native Language Support (NLS) for C# | package
| ikvm | A JVM Based on the Mono Runtime | package
| libxflaim | Embeddable XML Database Engine | package
| mono-core | Cross-platform, Open Source, .NET development framework | package
| mono-devel | Mono development tools | package
i | openSUSE-release | openSUSE | package
| qtsharp | Qt Bindings for C# | package

#我们可以看到第4项说mono是一个跨平台的开源开发框架,第5项则是mono的开发工具集合(包含MonoDev集成开发环境)
#那么我们就可以通过zypper安装C#开发环境了:zypper in mono-core mono-devel
--recommends 查询推荐软件包,即待安装软件包的附属功能或模块包含此选项指定的值则列出
--requires 依赖关系查询,例如我们想查看依赖vim的软件包:zypper se --requires vim
-d, --search-descriptions 查询时包含软件包的描述文本,即在软件包的简要描述里匹配
-C, --case-sensitive 即区分查询关键字的大小写(默认不区分)
-i, --installed-only 仅在已安装的软件包中查询
-u, --uninstalled-only 仅在未安装的软件包中查询
-t, --type 软件类型,共有5种类型:package(普通rpm包), patch(补丁集合), pattern(软件组),
product(产品,默认只有openSUSE、openSUSE-Addon-NonOss两项,openSUSE即你的系统),
srcpackage(源代码包,例如我们进行KDE开发,扩展某些系统应用时就会用到),可以用这5项替换
-n, --name 在软件包名称中匹配查询关键字,默认选项
-f, --file-list
在软件包的文件列表中查询,例如,我们发现某篇博客中写道,要修改/etc/my.cnf以配置mysql缓冲区大小,而我们ls
/etc发现并没有my.cnf,那么我们就可以通过这个命令查询需要安装哪个软件包:zypper se -f my.cnf
[/code]
文章评论

共有 6 条评论

  1. archxm 于 2017-07-05 13:31:26发表:

    挺酷的

  2. hooper 于 2017-03-15 14:49:08发表:

    suse下,怎么进入链接命令行,然后将unconpress 用 gunzip链接

  3. 邓公孟伯 于 2016-09-25 21:38:29发表:

    好,如果能整理成图文版的电子教材就更好了

  4. fj09 于 2016-06-12 17:37:36发表:

    不错

  5. brettwang 于 2016-05-08 08:03:39发表:

    1# sauntor


    非常经典 学习资料,

  6. qq_251913432 于 2016-03-28 10:34:30发表: