一、zypper源的配置
SUSE的zypper本地源配置起来跟yum的配置很相似,它们的配置文件有很多相似之处。不过,个人觉得zypper这个工具稍微强大些。在SUSE下,可以通过一条zypper的命令,即可完成zypper源的配置。
以下包是SUSE的Bash最新升级包,接下来的操作是把下面的升级包作为一个本地仓库,供以后zypper update来使用,
1
2
3
4
5
6
7
8
9
10
funny:~ # unzip CVE-2014-6271.zip
Archive: CVE-2014-6271.zip
creating: CVE-2014-6271/
inflating: CVE-2014-6271/bash 9740.htm
inflating: CVE-2014-6271/bash-3.2-147.20.1.x86_64.rpm
inflating: CVE-2014-6271/bash-doc-3.2-147.20.1.x86_64.rpm
inflating: CVE-2014-6271/libreadline5-32bit-5.2-147.20.1.x86_64.rpm
inflating: CVE-2014-6271/libreadline5-5.2-147.20.1.x86_64.rpm
inflating: CVE-2014-6271/license_agreement.txt
inflating: CVE-2014-6271/readline-doc-5.2-147.20.1.x86_64.rpm
接下来的操作是把这些包放到一个目录里,然后把该目录做成系统的一个更新源。比如,把解压后的目录放到/opt目录下,然后使用zypper ar添加该zypper源。
1
2
3
4
5
6
7
8
funny:~ # mv CVE-2014-6271 /opt/update
funny:~ # zypper ar file:///opt/update update
Adding repository 'update' [done]
Repository 'update' successfully added
Enabled: Yes
Autorefresh: No
GPG check: Yes
URI: file:/opt/update
接下来,使用zypper lr验证下,
1
2
3
4
5
funny:~ # zypper lr
# | Alias | Name | Enabled | Refresh
--+--------+--------+---------+--------
1 | local | local | Yes | Yes
2 | update | update | Yes | No
说明我们已成功添加update的源。另外,执行”zypper ar URI alias“后,会在/etc/zypp/repo.d/目录下生成alias.repo配置文件。接下来,我们试试zypper update命令,看是不是可以真的可以升级?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
funny:~ # zypper update
Building repository 'update' cache [done]
Loading repository data...
Reading installed packages...
The following packages are going to be upgraded:
bash bash-doc libreadline5 readline-doc
The following packages are not supported by their vendor:
bash bash-doc libreadline5 readline-doc
4 packages to upgrade.
Overall download size: 923.0 KiB. ...
Continue? [y/n/?] (y): y
Retrieving package libreadline5-5.2-147.20.1.x86_64 (1/4), ...
Retrieving package bash-3.2-147.20.1.x86_64 (2/4), ...
Retrieving package readline-doc-5.2-147.20.1.x86_64 (3/4), ...
Retrieving package bash-doc-3.2-147.20.1.x86_64 (4/4), ...
Retrieving package libreadline5-5.2-147.20.1.x86_64 (1/4), ...
Installing: libreadline5-5.2-147.20.1 [done]
Retrieving package bash-3.2-147.20.1.x86_64 (2/4), ...
Installing: bash-3.2-147.20.1 [done]
Retrieving package readline-doc-5.2-147.20.1.x86_64 (3/4), ...
Installing: readline-doc-5.2-147.20.1 [done]
Retrieving package bash-doc-3.2-147.20.1.x86_64 (4/4), ...
Installing: bash-doc-3.2-147.20.1 [done]
以上说明可以进行升级的。接下来,我们使用zypper ps命令,可以查看有哪些终端还在使用之前没有升级过的bash,
1
2
3
4
5
6
7
8
9
10
11
funny:/etc/zypp/repos.d # zypper ps
The following running processes use deleted files:
PID | PPID | UID | Login | Command | Files
------+-------+-----+-------+---------+--------------------------
2663 | 2542 | 0 | root | bash | /lib64/libreadline.so.5.2
| | | | | /bin/bash (deleted)
22426 | 22423 | 0 | root | bash | /lib64/libreadline.so.5.2
| | | | | /bin/bash (deleted)
You may wish to restart these processes.
二、zypper命令选项介绍
1. zypper的几个重要选项:
选项
说明
repos, lr
列出库
sl
列出库(目的是与rug兼容)
addrepo, ar 添加库
sa 添加库(目的是与rug兼容)
renamerepo, nr 重命名指定的安装源
modifyrepo, mr 修改指定的安装源
refresh, ref 刷新所有安装源
clean 清除本地缓存
2. zypper软件管理:
选项 说明
install, in
安装软件包
remove, rm 删除软件包
verify, ve 检验软件包依赖关系的完整性
update, up 更新已安装的软件包到新的版本
dist-upgrade, dup
整个系统的升级
source-install, si 安装源代码软件包和它们的编译依赖
3. zypper的查询选项:
选项
说明
search, se 安装软件包
packages, pa
列出所有可用的软件包
patterns, pt 列出所有可用的模式
products, pd 列出所有可用的产品
what-provides, wp 列出能够提供指定功能的软件包