02-RPM应用管理配置
本章节下载: 02-RPM应用管理配置 (245.18 KB)
目 录
Comware V9系统支持用户在H3C物理设备上部署基于RPM(Red-Hat Package Manager,Red-Hat软件包管理工具)技术打包的应用。使用Comware提供的RPM接口,用户可以快速、简便地安装、运行和管理RPM应用,从而扩展设备的功能,简化用户对应用的管理和维护。
RPM应用运行在Comware系统中,和Comware系统自带的应用一样,共享Comware系统资源和网络参数,包括接口、IP地址、IP路由表和端口号等。
同一设备内的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应用网络互通示意图
请确保运行在设备上的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应用来响应请求。
Comware系统集成了RPM功能,用户登录Comware系统后,可以通过CLI界面执行Linux系统下的标准rpm命令行,在Comware中对RPM应用执行查看、安装、运行和停止等操作。
Comware不负责RPM应用的自动启动、停止以及监控。
执行rpm命令时,参数输入要求同Linux系统下的rpm命令,可通过输入rpm –-help来获取该参数的帮助信息。为方便用户使用rpm命令,本手册描述了rpm命令的一些常用参数,请参见“1.7 附录 rpm命令使用指导”。
(1) 通过FTP或TFTP下载RPM包。
配置步骤请参见“基础配置指导”中的“FTP和TFTP”。
(2) 进入系统视图。
system-view
(3) 在Comware系统中部署RPM应用。
rpm [ params ]
(4) 运行RPM应用。
run bash app [ params ]
RPM应用的网络参数配置包括(详细描述请参见“开放性应用管理配置指导”中的“容器和开放性应用公共配置”):
· 为RPM应用配置源地址
RPM应用需要和外界跨网段通信时,需要配置本功能;其他情况无需配置。
· (可选)为RPM应用预留端口号
当RPM应用作为客户端或者服务器时,为了避免和Comware应用端口号冲突,可以配置本功能。
· (可选)配置IP报文预处理功能
使用本功能可以选择是否将RPM应用的组播报文上送CPU处理,以及单播和组播报文上送CPU前是否要进行预处理。
使用RPM工具在Comware中安装nano编辑器,以便通过命令行界面创建并直接编辑文档。
# 使用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
# 查看nanotest文档,可以看到内容Hello world!。
[Device] quit
<Device> more nanotest
Hello world!
为方便用户使用RPM管理RPM应用,本章节给出了rpm常用参数的解释和举例,更多信息请使用rpm –-help在线帮助,或者查阅RPM的相关资料。
从软件提供商网站下载RPM包或者在CentOS7上使用yum install --downloadonly方式下载RPM包。
<Sysname> system-view
[Sysname] rpm -qp --info xxx.rpm
<Sysname> system-view
[Sysname] rpm -i xxx.rpm
如果xxx.rpm有依赖的话,请先安装依赖的包,然后再重新安装指定的RPM包。如果确认依赖的包在文件系统中都存在,可使用--nodeps参数安装,
<Sysname> system-view
[Sysname] rpm -i --nodeps xxx.rpm
[Sysname] rpm -i --ignoresize xxx.rpm
直接执行所安装的软件即可,例如安装了一个nano编辑器,则直接输入以下命令执行nano即可。
<Sysname> system-view
[Sysname] run bash nano
如果不再使用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
[Sysname] rpm -qp --info zip-3.0-11.el7.x86_64.rpm
Group : Applications/Archiving
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>
URL : http://www.info-zip.org/Zip.html
Summary : A file compression and packaging utility compatible with PKZIP
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
Install the zip package if you need to compress files using the zip program.
RPM包卸载时需要使用上面的Name作为参数,不能使用rpm文件作为参数。
[Sysname] rpm -qp --provides zip-3.0-11.el7.x86_64.rpm
[Sysname] rpm -qp --requires zip-3.0-11.el7.x86_64.rpm
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
[Sysname] rpm -qp --scripts telnet-server-0.17-64.el7.x86_64.rpm
postinstall scriptlet (using /bin/sh):
systemctl preset telnet.socket >/dev/null 2>&1 || :
preuninstall scriptlet (using /bin/sh):
# Package removal, not upgrade
systemctl --no-reload disable telnet.socket > /dev/null 2>&1 || :
systemctl stop telnet.socket > /dev/null 2>&1 || :
postuninstall scriptlet (using /bin/sh):
systemctl daemon-reload >/dev/null 2>&1 || :
# Package upgrade, not uninstall
systemctl try-restart telnet.socket >/dev/null 2>&1 || :
[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)
[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'
[Sysname] rpm -qpc nano-2.3.1-10.el7.x86_64.rpm
[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/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/rnano.1.gz
/usr/share/man/man5/nanorc.5.gz
[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/share/man/man5/issue.net.5.gz
/usr/share/man/man8/in.telnetd.8.gz
/usr/share/man/man8/telnetd.8.gz
[Sysname] rpm -q --whatprovides nano
在系统视图下执行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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!