Opensuse zypper 笔记

Opensuse zypper 笔记,第1张

zypper 是 opensuse 下的命令行包管理工具,类似 arch 下的 pacman 或 debian 下的 apt-get 。

opensuse 下图形化的 Yast 也十分强大(也许是我见过最好用的图形化管理工具),建议两者配合使用。

<pre>

zypper 列出可用的全局选项和命令

zypper help search 列出 search 命令的帮助

zypper up 更新所有软件包到可用的新版本

zypper lu 获取可用的更新列表

zypper lp 列出需要的补丁更新

zypper patch安装所需的补丁

zypper pchk 检查是否有可用的重要的补丁,并反馈补丁数

zypper patch-info Firefox 显示 Firefox 补丁的信息

zypper se sqlite搜索 sqlite 软件

zypper se -s virtualbox-ose 查看匹配软体套件包的全部可选版本

zypper se -dC --match-words RSI 搜寻包括摘要和描述中的匹配 RSI 缩写的项

zypper se 'yast*' 搜寻所有含 yast 字符的软件包(注意 shell 的表达,不确定就加引号)

zypper se -r packman列出所有 packman 供应源的软件包

zypper se -i sqlite 列出所有已安装的其名字包含 sqlite 的软件包

zypper se -t pattern -r repo-oss列出所有 repo-oss 供应源的模式 (pattern)

zypper se -t product列出所有可选的成品 (product)

zypper ve 验证检查依赖关系

zypper wp firefox 列出所有指定软体的供应方

zypper info amarok 显示名为 amarok 的软体套件包的具体信息

zypper info -t pattern lamp_server 显示 lamp server 模式的信息

zypper info -t product openSUSE-FTP 显示特定成品的信息

zypper rm sqlite2 删除 sqlite2 软件

zypper in sqlite3 安装 sqlite3 软件

zypper in yast* 安装所有符合 yast* 名称的软件

zypper in vim -emacs安装 vim 并移除 emacs

zypper in -f subversion 强制重新安装 subversion

zypper in bitchx-1.1-81.x86_64.rpm 安装当前目录的 bitchx RPM 软件包

zypper inr 查找并安装已安装的软体套件包的推荐的新添加的软体套件包

zypper ps 显示使用被最近的更新或移除 *** 作所删除的文件的进程

zypper si -D zypper 只安装源码包

zypper si -d zypper 只安装构建依赖

zypper al 'yast2 ' 锁定所有以 yast2 开首的软体套件包

zypper al -r repo-oss virtualbox限制 repo-oss 供应源(允许安装其他供应源的软件包)

zypper ll 列出当前有效的锁定

zypper rl yast2-packager移除锁定,可对应序号锁定

zypper lr 列出设定的供应套件库

zypper lr -u列出供应源 URI

zypper lr -d列出供应源的其他数项属性

zypper lr -P列出供应源优先级并依此排序

zypper lr -e my 导出全部的供应源设定信息至文件 my.repo

zypper ar http://download.videolan.org/pub/vlc/SuSE/11.1 vlc添加供应套件库

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.1/X11:XGL.repo 通过 .repo 文件

zypper ar -c ftp://some.download.site myalias 添加之前试探供应源

zypper ar my/dir/with/rpms local添加含 RPM 文件的本地目录为供应源

zypper rr vlc 1 23 foo 移除供应套件库

zypper mr -d 6 禁用序号为 6 的供应套件库

zypper mr -rk -p 70 packman 启用 packman 供应套件库的自动刷新并缓存 RPM 文件,再设置其优先顺序为 70

zypper mr -Ka 禁用所有供应套件库的 RPM 文件缓存

zypper mr -ka 启用所有供应套件库的 RPM 文件缓存

zypper nr 3 upd 重命名供应套件库

zypper refresh 刷新供应套件库

zckman main 只指定特定的供应源刷新

zypper ref -f upd 强制 upd 供应源刷新

</pre>

<pre>$ zypper lr --export backups/repos/foo.repo

$ zypper ar backups/repos/foo.repo</pre>

<pre>$ zypper dup 此命令使用发行版升级演算法,处理软体套件包分裂 (package splits)、无维护软体套件包以及类似的其他软体套件包

建议在发行版升级过程中仅启用您所欲安装的发行版的主要的供应套件库和一些您所用的重要的供应套件库(若其版本对应於主

要的供应套件库则更佳)。也可以先禁用旧的供应套件库 zypper mr -da,添加新的供应套件库 zypper ar,

再 zypper dup 升级。您可以用 --repo 选项指定所使用的供应套件库 zypper dup -r repo1 -r repo2

</pre>

一、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列出能够提供指定功能的软件包

笔者新入了一台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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/10970830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存