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列出能够提供指定功能的软件包
用Yast添加源,用终端zypper search 你要的包,然后zypper install 包, 已则用rpm -i 包,或者右键选择打开方式,再选择Apper或install/remove software 等等笔者新入了一台ThinkPad X61来玩玩,给它装上了OpenSUSE。为了获得更好的输入体验,安装搜狗输入法必不可少,然而OpenSUSE使用的包管理器是RPM,与搜狗输入法官方支持的Debian差别太大,互不兼容。加之即使在OpenSUSE中安装了Debian的包管理器 dpkg ,也无法正常安装搜狗的包,提示依赖条件不满足。
所幸,OpenSUSE的多语言支持社区编写了可以在OpenSUSE下安装搜狗输入法的安装器,这就使得搜狗不会局限在Debian系Linux发行版(如Ubuntu、Deepin)的专利中了。
搜狗输入法的安装器在OpenSUSE的M17N源,即多语言支持源中。首先进入源的地址( http://download.opensuse.org/repositories/M17N/ ),然后在列表中找到与你OpenSUSE版本所对应的那一项。进入后,复制地址栏上的地址备用。例如,笔者的OpenSUSE是Leap 15.0版本的,那就点击“OpenSUSE_Leap_15.0“,从而在地址栏得到这个地址:
打开终端,输入以下命令来添加源,命令中的地址就是刚才复制的地址,只是要在最后加上“ M17N.repo ”:
这样,多语言支持源就添加好了。
直接在终端中就可以安装:
稍等片刻,让安装过程正常进行。有别于其他的RPM软件包,这里的搜狗输入法“软件包”其实是一个安装器,由shell脚本构成。它的作用就是获取搜狗官方的DEB安装包,然后将其中的内容直接抽取出来,安装到系统的相应位置。据此就可以在不支持DEB的OpenSUSE中安装搜狗的DEB安装包了。
理论上,在任务栏上的Fcitx输入法管理器中就可以找到搜狗输入法,并启用之。但是,搜狗输入法却始终无法正常工作,表现为实际的输入法界面和控制栏一直未出现,而且过一段时间后就d出输入法出错的提示。
后来,笔者尝试在终端中直接运行搜狗输入法的主程序 sogou-qimpanel ,结果提示找不到共享库 libQtWebKit.so.4 ,无法运行。
看来,终究还是缺少依赖导致运行异常——OpenSUSE默认并未带这个库。所幸,这个库文件是可以直接用zypper来安装的:
安装完成后,重启搜狗输入法,即可正常打字了。
笔者随意打开了一个文本编辑器打字,结果发现,搜狗输入法虽然能正常输入了,但打出来的标点全都是半角英文标点,即使开启了中文标点选项也是如此。
这个问题解决的办法其实很简单: 重启系统即可 。重启完成后,搜狗输入法就能正常输入中文标点了。
若还是有问题,可以在OpenSUSE的“Qt 4 设置”程序中(在OpenSUSE开始菜单搜索“Qt 设置”即可找到),将“Interface”选项卡中的“Default Input Method”设为Fcitx。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)