• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

18-开放性应用管理配置指导

目录

02-RPM应用管理配置

本章节下载 02-RPM应用管理配置  (245.18 KB)

02-RPM应用管理配置


1 RPM应用管理

1.1  RPM应用简介

Comware V9系统支持用户在H3C物理设备上部署基于RPM(Red-Hat Package Manager,Red-Hat软件包管理工具)技术打包的应用。使用Comware提供的RPM接口,用户可以快速、简便地安装、运行和管理RPM应用,从而扩展设备的功能,简化用户对应用的管理和维护。

RPM应用运行在Comware系统中,和Comware系统自带的应用一样,共享Comware系统资源和网络参数,包括接口、IP地址、IP路由表和端口号等。

1.2  RPM网络互通

同一设备内的RPM应用使用内部接口互通。

跨设备、相同网段的RPM应用间使用Comware的接口互通,只要目的设备和Comware之间路由可达即可。

跨设备、跨网段的RPM应用间互通,必须配置源地址,目的设备和源地址之间必须路由可达。配置源地址后,设备将使用指定接口的IP地址作为RPM应用发送的IP报文的源地址。

图1-1所示,系统内核会存在一条缺省路由和up状态接口的直连路由,RPM应用的报文全部需要通过内核查表转发。假设,Host A、Host B和Device属于同一网段,Host A可以使用IP地址2.2.2.1访问RPM1和RPM2,Host B可以使用IP地址3.3.3.1访问RPM1和RPM2。Host C与Device属于不同的网段,Host C需要使用源IP地址X.X.X.X访问RPM1和RPM2。

图1-1 RPM应用网络互通示意图

 

1.3  RPM应用配置限制和指导

请确保运行在设备上的RPM应用安全可信,并及时更新开源应用的补丁。

禁止通过任何形式的RPM应用对设备及Comware进行逆向工程。

如果安装的RPM应用和Comware自带的应用冲突,设备会优先使用Comware应用。例如,用户开启了Comware中自带了FTP server应用,又安装了FTP server RPM应用,且这两个应用使用的IP地址和端口号也相同,FTP client通过FTP协议访问设备时,设备会使用Comware自带的FTP server响应请求。只有Comware自带的FTP server被关闭,才会使用FTP server RPM应用来响应请求。

1.4  部署RPM应用

1. 功能简介

Comware系统集成了RPM功能,用户登录Comware系统后,可以通过CLI界面执行Linux系统下的标准rpm命令行,在Comware中对RPM应用执行查看、安装、运行和停止等操作。

2. 配置限制和指导

Comware不负责RPM应用的自动启动、停止以及监控。

执行rpm命令时,参数输入要求同Linux系统下的rpm命令,可通过输入rpm –-help来获取该参数的帮助信息。为方便用户使用rpm命令,本手册描述了rpm命令的一些常用参数,请参见“1.7  附录 rpm命令使用指导

3. 配置步骤

(1)     通过FTPTFTPRPM包。

配置步骤请参见“基础配置指导”中的“FTPTFTP”。

(2)     进入系统视图。

system-view

(3)     在Comware系统中部署RPM应用。

rpm [ params ]

(4)     运行RPM应用。

run bash app [ params ]

1.5  配置RPM应用的网络参数

RPM应用的网络参数配置包括(详细描述请参见“开放性应用管理配置指导”中的“容器和开放性应用公共配置”):

·     为RPM应用配置源地址

RPM应用需要和外界跨网段通信时,需要配置本功能;其他情况无需配置。

·     (可选)为RPM应用预留端口号

当RPM应用作为客户端或者服务器时,为了避免和Comware应用端口号冲突,可以配置本功能。

·     (可选)配置IP报文预处理功能

使用本功能可以选择是否将RPM应用的组播报文上送CPU处理,以及单播和组播报文上送CPU前是否要进行预处理。

1.6  RPM应用典型配置举例

1.6.1  RPM应用基本配置举例

1. 组网需求

使用RPM工具在Comware中安装nano编辑器,以便通过命令行界面创建并直接编辑文档。

2. 组网图

 

3. 配置步骤

# 使用TFTP功能下载nano编辑器安装包nano-2.3.1-10.el7.x86_64.rpm。

<Device> tftp 192.168.1.33 get nano-2.3.1-10.el7.x86_64.rpm

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  439k  100  439k    0     0   438k      0  0:00:01  0:00:01 --:--:--  477k

100  439k  100  439k    0     0   438k      0  0:00:01  0:00:01 --:--:--  438k

# 查询RPM包nano-2.3.1-10.el7.x86_64.rpm的信息。

<Device> system-view

[Device] rpm -qp --info nano-2.3.1-10.el7.x86_64.rpm

Name        : nano

Version     : 2.3.1

Release     : 10.el7

Architecture: x86_64

Install Date: (not installed)

Group       : Applications/Editors

Size        : 1715901

License     : GPLv3+

Signature   : RSA/SHA256, Fri Jul  4 03:53:43 2014, Key ID 24c6a8a7f4a80eb5

Source RPM  : nano-2.3.1-10.el7.src.rpm

Build Date  : Tue Jun 10 04:47:54 2014

Build Host  : worker1.bsys.centos.org

Relocations : (not relocatable)

Packager    : CentOS BuildSystem <http://bugs.centos.org>

Vendor      : CentOS

URL         : http://www.nano-editor.org

Summary     : A small text editor

Description :

GNU nano is a small and friendly text editor.

# 安装nano编辑器。

[Device] rpm -i nano-2.3.1-10.el7.x86_64.rpm

# 运行nano编辑器。

[Device] run bash nano

GNU nano 2.3.1                New Buffer

 

 

 

 

 

 

^G Get Help  ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos

^X Exit      ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell

# 输入文件内容Hello world!。

GNU nano 2.3.1                New Buffer                            Modified

 

Hello world!

 

 

 

 

^G Get Help  ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos

^X Exit      ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell

# 编辑完成,按<Ctrl+X>组合键退出编辑,根据界面提示输入Y保存文档。

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?

 Y Yes

 N No           ^C Cancel

# 输入文件名称nanotest,文档创建成功。

File Name to Write: nanotest

^G Get Help         M-D DOS Format       M-A Append         M-B Backup File

^C Cancel       ^    M-M Mac Format      M-P Prepend

4. 验证配置

# 查看nanotest文档,可以看到内容Hello world!。

[Device] quit

<Device> more nanotest

Hello world!

1.7  附录 rpm命令使用指导

为方便用户使用RPM管理RPM应用,本章节给出了rpm常用参数的解释和举例,更多信息请使用rpm –-help在线帮助,或者查阅RPM的相关资料。

1.7.1  下载RPM

从软件提供商网站下载RPM包或者在CentOS7上使用yum install --downloadonly方式下载RPM包。

1.7.2  查看RPM包信息

<Sysname> system-view

[Sysname] rpm -qp --info xxx.rpm

1.7.3  安装RPM软件包

1. 安装RPM软件包(-i)

<Sysname> system-view

[Sysname] rpm -i xxx.rpm

2. 安装RPM软件包时忽略依赖关系(--nodeps)

如果xxx.rpm有依赖的话,请先安装依赖的包,然后再重新安装指定的RPM包。如果确认依赖的包在文件系统中都存在,可使用--nodeps参数安装,

<Sysname> system-view

[Sysname] rpm -i --nodeps xxx.rpm

3. 安装rpm软件包时忽略磁盘剩余空间(--ignoresize)

<Sysname> system-view

[Sysname] rpm -i --ignoresize xxx.rpm

1.7.4  使用通过RPM安装的软件

直接执行所安装的软件即可,例如安装了一个nano编辑器,则直接输入以下命令执行nano即可。

<Sysname> system-view

[Sysname] run bash nano

1.7.5  卸载RPM安装的软件

如果不再使用RPM安装的软件,则可以通过rpm -e删除之前安装的RPM软件包。

<Sysname> system-view

[Sysname] rpm -e zip

-e后面跟的参数为软件包名称,这个名称通过查看RPM包信息得到,如下:

[Sysname] rpm -qp --info zip-3.0-11.el7.x86_64.rpm

Name        : zip

1.7.6  RPM包查询(-qp)

1. RPM包信息查询(--info)

<Sysname> system-view

[Sysname] rpm -qp --info zip-3.0-11.el7.x86_64.rpm

Name        : zip

Version     : 3.0

Release     : 11.el7

Architecture: x86_64

Install Date: (not installed)

Group       : Applications/Archiving

Size        : 815173

License     : BSD

Signature   : RSA/SHA256, Sun Nov 20 21:04:58 2016, Key ID 24c6a8a7f4a80eb5

Source RPM  : zip-3.0-11.el7.src.rpm

Build Date  : Sat Nov  5 16:49:55 2016

Build Host  : worker1.bsys.centos.org

Relocations : (not relocatable)

Packager    : CentOS BuildSystem <http://bugs.centos.org>

Vendor      : CentOS

URL         : http://www.info-zip.org/Zip.html

Summary     : A file compression and packaging utility compatible with PKZIP

Description :

The zip program is a compression and file packaging utility.  Zip is

analogous to a combination of the UNIX tar and compress commands and

is compatible with PKZIP (a compression and file packaging utility for

MS-DOS systems).

 

Install the zip package if you need to compress files using the zip program.

说明

RPM包卸载时需要使用上面的Name作为参数,不能使用rpm文件作为参数。

 

2. RPM包提供内容查询(--provides)

<Sysname> system-view

[Sysname] rpm -qp --provides zip-3.0-11.el7.x86_64.rpm

zip = 3.0-11.el7

zip(x86-64) = 3.0-11.el7

3. RPM包依赖查询(--requires)

<Sysname> system-view

[Sysname] rpm -qp --requires zip-3.0-11.el7.x86_64.rpm

libbz2.so.1()(64bit)

libc.so.6()(64bit)

libc.so.6(GLIBC_2.14)(64bit)

libc.so.6(GLIBC_2.2.5)(64bit)

libc.so.6(GLIBC_2.3)(64bit)

libc.so.6(GLIBC_2.3.4)(64bit)

libc.so.6(GLIBC_2.4)(64bit)

libc.so.6(GLIBC_2.7)(64bit)

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(FileDigests) <= 4.6.0-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

rtld(GNU_HASH)

rpmlib(PayloadIsXz) <= 5.2-1

4. RPM包里包含的脚本信息(--scripts)

安装及卸载前后自动执行的脚本信息。

<Sysname> system-view

[Sysname] rpm -qp --scripts telnet-server-0.17-64.el7.x86_64.rpm

postinstall scriptlet (using /bin/sh):

if [ $1 -eq 1 ] ; then

        # Initial installation

        systemctl preset telnet.socket >/dev/null 2>&1 || :

fi

preuninstall scriptlet (using /bin/sh):

if [ $1 -eq 0 ] ; then

        # Package removal, not upgrade

        systemctl --no-reload disable telnet.socket > /dev/null 2>&1 || :

        systemctl stop telnet.socket > /dev/null 2>&1 || :

fi

postuninstall scriptlet (using /bin/sh):

systemctl daemon-reload >/dev/null 2>&1 || :

if [ $1 -ge 1 ] ; then

        # Package upgrade, not uninstall

        systemctl try-restart telnet.socket >/dev/null 2>&1 || :

fi

5. 查询文件依赖关系(--filerequire)

<Sysname> system-view

[Sysname] rpm -qp --filerequire -v nano-2.3.1-10.el7.x86_64.rpm | awk '{if ($2 != "") {print $0}}'

/usr/bin/nano   libc.so.6(GLIBC_2.6)(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libncursesw.so.5()(64bit) libtinfo.so.5()(64bit) libc.so.6()(64bit) rtld(GNU_HASH)

[Sysname] rpm -qp --filerequire -v telnet-server-0.17-64.el7.x86_64.rpm | awk '{if ($2 != "") {print $0}}'

/usr/sbin/in.telnetd    libutil.so.1(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.8)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.16)(64bit) libc.so.6(GLIBC_2.15)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libutil.so.1()(64bit) libc.so.6()(64bit) rtld(GNU_HASH)

6. 查询文件类型(--fileclass)

<Sysname> system-view

[Sysname] rpm -qp --fileclass telnet-server-0.17-64.el7.x86_64.rpm

warning: telnet-server-0.17-64.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

/usr/lib/systemd/system/telnet.socket   ASCII text

/usr/lib/systemd/system/telnet@.service ASCII text

/usr/sbin/in.telnetd    ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=e9071293843c16a2e779eb68aa523c8e1f68834e, stripped

/usr/share/man/man5/issue.net.5.gz      troff or preprocessor input, ASCII text (gzip compressed data, from Unix, max compression)

/usr/share/man/man8/in.telnetd.8.gz     troff or preprocessor input, ASCII text (gzip compressed data, from Unix, max compression)

/usr/share/man/man8/telnetd.8.gz        symbolic link to `in.telnetd.8.gz'

7. 查询软件包的配置文件(-c或--configfiles)

<Sysname> system-view

[Sysname] rpm -qpc nano-2.3.1-10.el7.x86_64.rpm

/etc/nanorc

8. 查询软件包的文档(-d或--docfiles)

<Sysname> system-view

[Sysname] rpm -qpd nano-2.3.1-10.el7.x86_64.rpm

/usr/share/doc/nano-2.3.1/AUTHORS

/usr/share/doc/nano-2.3.1/BUGS

/usr/share/doc/nano-2.3.1/COPYING

/usr/share/doc/nano-2.3.1/ChangeLog

/usr/share/doc/nano-2.3.1/INSTALL

/usr/share/doc/nano-2.3.1/NEWS

/usr/share/doc/nano-2.3.1/README

/usr/share/doc/nano-2.3.1/THANKS

/usr/share/doc/nano-2.3.1/TODO

/usr/share/doc/nano-2.3.1/faq.html

/usr/share/doc/nano-2.3.1/nanorc.sample

/usr/share/info/nano.info.gz

/usr/share/man/fr/man1/nano.1.gz

/usr/share/man/fr/man1/rnano.1.gz

/usr/share/man/fr/man5/nanorc.5.gz

/usr/share/man/man1/nano.1.gz

/usr/share/man/man1/rnano.1.gz

/usr/share/man/man5/nanorc.5.gz

9. 列出软件包中的文件(-l或--list)

<Sysname> system-view

[Sysname] rpm -qpl telnet-server-0.17-64.el7.x86_64.rpm

/usr/lib/systemd/system/telnet.socket

/usr/lib/systemd/system/telnet@.service

/usr/sbin/in.telnetd

/usr/share/man/man5/issue.net.5.gz

/usr/share/man/man8/in.telnetd.8.gz

/usr/share/man/man8/telnetd.8.gz

10. 查询已安装的软件包对应的RPM包(--whatprovides)

<Sysname> system-view

[Sysname] rpm -q --whatprovides nano

nano-2.3.1-10.el7.x86_64

1.7.7  rpm命令完整帮助

在系统视图下执行rpm --help命令,获取rpm命令行的完整帮助。

<Sysname> system-view

[Sysname] rpm --help

Usage: rpm [OPTION...]

 

Query/Verify package selection options:

  -a, --all                        query/verify all packages

  -f, --file                       query/verify package(s) owning file

其他显示信息略。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们