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/[email protected] 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/[email protected]
/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保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!