• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

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/[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'

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/[email protected]

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

BOB登陆
官網
聯係我們