Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第 6 章 上​​​传​​​及​​​维​​​护​​​自​​​定​​​义​​​软​​​件​​​包​​​

根​​​据​​​所​​​使​​​用​​​的​​​ Red Hat Network 服​​​务​​​,有​​​两​​​种​​​不​​​同​​​的​​​向​​​专​​​用​​​频​​​道​​​上​​​传​​​软​​​件​​​包​​​的​​​机​​​制​​​。​​​
RHN Proxy Server 用​​​户​​​使​​​用​​​ RHN Package Manager 应​​​用​​​程​​​序​​​,它​​​将​​​软​​​件​​​包​​​的​​​头​​​信​​​息​​​发​​​送​​​到​​​中​​​央​​​ Red Hat Network 服​​​务​​​器​​​并​​​将​​​软​​​件​​​包​​​本​​​身​​​放​​​置​​​在​​​ Proxy 本​​​地​​​存​​​储​​​库​​​中​​​,从​​​而​​​可​​​以​​​被​​​ RHN Package Manager 调​​​用​​​。​​​
RHN Satellite Server 用​​​户​​​使​​​用​​​ RHN Push 应​​​用​​​程​​​序​​​将​​​软​​​件​​​包​​​头​​​文​​​件​​​信​​​息​​​发​​​送​​​到​​​本​​​地​​​ RHN Satellite Server,并​​​将​​​软​​​件​​​包​​​放​​​置​​​到​​​调​​​用​​​ RHN Push 的​​​ Satellite 服​​​务​​​器​​​的​​​本​​​地​​​存​​​储​​​库​​​中​​​。​​​
本​​​章​​​会​​​对​​​这​​​两​​​个​​​方​​​法​​​进​​​行​​​详​​​细​​​的​​​论​​​述​​​。​​​

警告

如​​​果​​​您​​​同​​​时​​​使​​​用​​​ RHN Proxy Server 和​​​ RHN Satellite Server,您​​​只​​​需​​​要​​​使​​​用​​​ RHN Push。​​​Proxy-Satellite 的​​​组​​​合​​​结​​​构​​​需​​​要​​​只​​​将​​​自​​​定​​​义​​​软​​​件​​​包​​​和​​​频​​​道​​​上​​​传​​​到​​​ Satellite 服​​​务​​​器​​​,Proxy 从​​​那​​​里​​​获​​​得​​​软​​​件​​​包​​​并​​​将​​​它​​​们​​​发​​​送​​​到​​​客​​​户​​​端​​​系​​​统​​​。​​​

6.1. 将​​​软​​​件​​​包​​​上​​​传​​​到​​​ RHN Proxy Server

RHN Package Manager 允​​​许​​​机​​​构​​​通​​​过​​​ RHN Proxy Server 来​​​提​​​供​​​与​​​与​​​专​​​用​​​ RHN 频​​​道​​​关​​​连​​​的​​​软​​​件​​​包​​​。​​​如​​​果​​​您​​​只​​​想​​​通​​​过​​​ RHN Proxy Server 提​​​供​​​正​​​式​​​发​​​行​​​的​​​ Red Hat Enterprise Linux 软​​​件​​​包​​​,您​​​就​​​不​​​需​​​要​​​安​​​装​​​ RHN Package Manager。​​​
要​​​使​​​用​​​ RHN Package Manager,请​​​安​​​装​​​ rhns-proxy-package-manager RPM 软​​​件​​​包​​​及​​​其​​​所​​​依​​​赖​​​的​​​软​​​件​​​包​​​。​​​这​​​个​​​软​​​件​​​包​​​可​​​用​​​于​​​注​​​册​​​的​​​ RHN Proxy Server 系​​​统​​​并​​​使​​​用​​​ up2date rhns-proxy-package-manager 命​​​令​​​安​​​装​​​。​​​

注意

只​​​有​​​软​​​件​​​包​​​的​​​头​​​信​​​息​​​被​​​上​​​传​​​到​​​ RHN 服​​​务​​​器​​​。​​​为​​​了​​​解​​​决​​​客​​​户​​​端​​​系​​​统​​​的​​​依​​​赖​​​性​​​问​​​题​​​,RHN 将​​​需​​​要​​​这​​​些​​​头​​​信​​​息​​​。​​​实​​​际​​​的​​​软​​​件​​​包​​​文​​​件​​​(*.rpm)被​​​存​​​储​​​在​​​ RHN Proxy Server 中​​​,因​​​此​​​自​​​定​​​义​​​软​​​件​​​包​​​不​​​能​​​通​​​过​​​ RHN 网​​​站​​​下​​​载​​​(虽​​​然​​​它​​​们​​​在​​​ RHN 网​​​站​​​上​​​被​​​列​​​出​​​)。​​​客​​​户​​​端​​​系​​​统​​​必​​​须​​​使​​​用​​​ up2date 命​​​令​​​来​​​获​​​得​​​自​​​定​​​义​​​软​​​件​​​包​​​。​​​

6.1.1. 配​​​置​​​并​​​使​​​用​​​ RHN Package Manager

在​​​可​​​以​​​使​​​用​​​ RHN Package Manager 将​​​软​​​件​​​包​​​上​​​传​​​到​​​ RHN 前​​​,您​​​首​​​先​​​需​​​要​​​手​​​动​​​将​​​软​​​件​​​包​​​复​​​制​​​到​​​ Proxy 服​​​务​​​器​​​。​​​例​​​如​​​,在​​​一​​​台​​​主​​​机​​​中​​​运​​​行​​​ scp 命​​​令​​​:
scp foo.rpm root@rhnproxy.example.com:/tmp
使​​​用​​​ RHN Package Manager 将​​​软​​​件​​​包​​​上​​​传​​​到​​​ Red Hat Network 时​​​,请​​​将​​​其​​​指​​​向​​​您​​​前​​​面​​​复​​​制​​​到​​​服​​​务​​​器​​​中​​​的​​​文​​​件​​​。​​​

注意

在​​​将​​​软​​​件​​​包​​​上​​​传​​​到​​​ Red Hat Network 前​​​,最​​​少​​​需​​​要​​​创​​​建​​​一​​​个​​​专​​​用​​​的​​​频​​​道​​​来​​​接​​​收​​​自​​​定​​​义​​​软​​​件​​​包​​​。​​​这​​​是​​​因​​​为​​​系​​​统​​​需​​​要​​​一​​​个​​​频​​​道​​​来​​​接​​​收​​​软​​​件​​​包​​​。​​​
使​​​用​​​以​​​下​​​命​​​令​​​来​​​将​​​软​​​件​​​包​​​头​​​上​​​传​​​到​​​ RHN 服​​​务​​​器​​​并​​​将​​​软​​​件​​​包​​​复​​​制​​​到​​​ RHN Proxy Server 存​​​储​​​库​​​:
rhn_package_manager -c label_of_private_channelpkg-list
label_of_private_channel 是​​​用​​​来​​​接​​​收​​​这​​​些​​​软​​​件​​​包​​​的​​​自​​​定​​​义​​​频​​​道​​​。​​​请​​​确​​​认​​​在​​​创​​​建​​​过​​​程​​​中​​​使​​​用​​​了​​​正​​​确​​​的​​​频​​​道​​​标​​​签​​​。​​​如​​​果​​​您​​​指​​​定​​​了​​​一​​​个​​​或​​​多​​​个​​​频​​​道​​​(使​​​用​​​ -c 或​​​ --channel),上​​​传​​​的​​​软​​​件​​​包​​​头​​​会​​​与​​​所​​​有​​​指​​​定​​​的​​​频​​​道​​​关​​​连​​​。​​​如​​​果​​​您​​​没​​​有​​​指​​​定​​​频​​​道​​​,软​​​件​​​包​​​会​​​被​​​放​​​置​​​在​​​「​​​软​​​件​​​包​​​管​​​理​​​」​​​页​​​中​​​的​​​「​​​不​​​属​​​于​​​任​​​何​​​频​​​道​​​」​​​项​​​中​​​。​​​请​​​参​​​阅​​​ 第 4.6 节 “为​​​软​​​件​​​频​​​道​​​分​​​配​​​软​​​件​​​包​​​” 来​​​获​​​得​​​重​​​新​​​分​​​配​​​软​​​件​​​包​​​的​​​内​​​容​​​。​​​
pkg-list 代​​​表​​​了​​​要​​​被​​​上​​​传​​​的​​​软​​​件​​​包​​​列​​​表​​​。​​​这​​​些​​​软​​​件​​​包​​​必​​​须​​​被​​​物​​​理​​​地​​​复​​​制​​​到​​​ Proxy。​​​或​​​者​​​,您​​​可​​​以​​​使​​​用​​​ -d 选​​​项​​​来​​​指​​​定​​​包​​​括​​​了​​​要​​​被​​​添​​​加​​​到​​​频​​​道​​​中​​​的​​​软​​​件​​​包​​​的​​​本​​​地​​​目​​​录​​​。​​​RHN Package Manager 还​​​可​​​以​​​从​​​标​​​准​​​输​​​入​​​(使​​​用​​​--stdin)中​​​读​​​取​​​软​​​件​​​包​​​列​​​表​​​。​​​
可​​​在​​​配​​​置​​​文​​​件​​​中​​​指​​​定​​​其​​​它​​​选​​​项​​​,如​​​ Red Hat Network 服​​​务​​​器​​​的​​​ URL、​​​HTTP 代​​​理​​​服​​​务​​​器​​​的​​​用​​​户​​​名​​​和​​​密​​​码​​​(如​​​果​​​您​​​的​​​ HTTP 代​​​理​​​服​​​务​​​器​​​需​​​要​​​进​​​行​​​验​​​证​​​)以​​​及​​​软​​​件​​​包​​​存​​​在​​​的​​​顶​​​级​​​目​​​录​​​。​​​这​​​些​​​特​​​殊​​​的​​​信​​​息​​​一​​​定​​​不​​​能​​​被​​​编​​​辑​​​,其​​​位​​​置​​​为​​​ /etc/rhn/default/rhn_proxy_package_manager.conf。​​​您​​​可​​​以​​​通​​​过​​​在​​​主​​​配​​​置​​​文​​​件​​​ /etc/rhn/rhn.conf 中​​​的​​​设​​​置​​​覆​​​盖​​​默​​​认​​​配​​​置​​​文​​​件​​​中​​​的​​​设​​​置​​​,也​​​可​​​以​​​通​​​过​​​ RHN Package Manager 的​​​命​​​令​​​行​​​选​​​项​​​来​​​覆​​​盖​​​它​​​的​​​设​​​置​​​。​​​
本​​​文​​​件​​​中​​​没​​​有​​​设​​​置​​​的​​​参​​​数​​​可​​​从​​​目​​​前​​​登​​​录​​​用​​​户​​​主​​​目​​​录​​​的​​​ .rhn_package_manager 文​​​件​​​中​​​读​​​取​​​,也​​​可​​​最​​​终​​​从​​​ /etc/rhn/rhn_package_manager.conf 文​​​件​​​中​​​读​​​取​​​。​​​请​​​确​​​认​​​这​​​些​​​文​​​件​​​有​​​正​​​确​​​的​​​权​​​限​​​设​​​置​​​来​​​防​​​止​​​其​​​他​​​用​​​户​​​读​​​这​​​些​​​文​​​件​​​。​​​
在​​​上​​​传​​​软​​​件​​​包​​​后​​​,检​​​查​​​本​​​地​​​目​​​录​​​是​​​否​​​已​​​经​​​和​​​ RHN 服​​​务​​​器​​​的​​​频​​​道​​​映​​​像​​​同​​​步​​​:
rhn_package_manager -s -c name_of_private_channel
使​​​用​​​ -s 选​​​项​​​会​​​列​​​出​​​所​​​有​​​“​​​丢​​​失​​​的​​​”​​​软​​​件​​​包​​​。​​​丢​​​失​​​的​​​软​​​件​​​包​​​是​​​指​​​那​​​些​​​被​​​上​​​传​​​到​​​ RHN 服​​​务​​​器​​​但​​​没​​​有​​​出​​​现​​​在​​​本​​​地​​​目​​​录​​​中​​​的​​​软​​​件​​​包​​​。​​​您​​​必​​​须​​​是​​​一​​​个​​​ Organization Administrator 才​​​可​​​以​​​使​​​用​​​这​​​个​​​选​​​项​​​。​​​这​​​个​​​应​​​用​​​程​​​序​​​会​​​提​​​示​​​您​​​输​​​入​​​您​​​的​​​ RHN 用​​​户​​​名​​​和​​​密​​​码​​​。​​​
--copyonly 选​​​项​​​将​​​这​​​里​​​列​​​出​​​的​​​文​​​件​​​复​​​制​​​到​​​指​​​定​​​的​​​频​​​道​​​中​​​,而​​​不​​​上​​​传​​​到​​​ Satellite。​​​当​​​ RHN Proxy Server 中​​​的​​​一​​​个​​​频​​​道​​​丢​​​失​​​了​​​一​​​些​​​软​​​件​​​包​​​,而​​​您​​​又​​​不​​​想​​​重​​​新​​​导​​​入​​​这​​​个​​​频​​​道​​​中​​​的​​​所​​​有​​​软​​​件​​​包​​​时​​​,这​​​个​​​选​​​项​​​将​​​非​​​常​​​有​​​用​​​。​​​
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
您​​​还​​​可​​​用​​​使​​​用​​​ RHN Package Manager 在​​​频​​​道​​​中​​​搜​​​索​​​软​​​件​​​包​​​列​​​表​​​,因​​​为​​​它​​​们​​​是​​​被​​​保​​​存​​​在​​​ RHN 服​​​务​​​器​​​中​​​的​​​:
rhn_package_manager -l -c name_of_private_channel
-l 选​​​项​​​列​​​出​​​了​​​指​​​定​​​频​​​道​​​中​​​的​​​每​​​个​​​软​​​件​​​包​​​的​​​软​​​件​​​包​​​名​​​、​​​版​​​本​​​号​​​、​​​发​​​行​​​号​​​和​​​体​​​系​​​结​​​构​​​。​​​请​​​参​​​阅​​​ 表 6.1 “rhn_package_manager 选​​​项​​​”来​​​获​​​得​​​其​​​它​​​选​​​项​​​的​​​信​​​息​​​。​​​
表 6.1 “rhn_package_manager 选​​​项​​​” 是​​​ RHN Package Manager (rhn_package_manager) 命​​​令​​​行​​​选​​​项​​​总​​​结​​​:

表 6.1. rhn_package_manager 选​​​项​​​

选​​​项​​​ 描​​​述​​​
-v, --verbose 增​​​加​​​标​​​准​​​输​​​出​​​信​​​息​​​的​​​详​​​细​​​程​​​度​​​。​​​
-d, --dir DIRECTORY_NAME 从​​​这​​​个​​​目​​​录​​​中​​​获​​​得​​​软​​​件​​​包​​​。​​​
-c, --channel CHANNEL_NAME 指​​​定​​​频​​​道​​​来​​​接​​​收​​​软​​​件​​​包​​​。​​​重​​​复​​​使​​​用​​​(如​​​-c channel_one -c channel_two)可​​​以​​​指​​​定​​​多​​​个​​​频​​​道​​​。​​​
-n, --count NUMBER 每​​​次​​​调​​​用​​​只​​​处​​​理​​​这​​​里​​​指​​​定​​​的​​​数​​​量​​​的​​​头​​​信​​​息​​​ — 默​​​认​​​值​​​是​​​ 32。​​​
-l, --list 列​​​出​​​指​​​定​​​频​​​道​​​中​​​的​​​软​​​件​​​包​​​。​​​
-s, --sync 检​​​查​​​本​​​地​​​目​​​录​​​是​​​否​​​与​​​服​​​务​​​器​​​同​​​步​​​。​​​
-p, --printconf 输​​​出​​​当​​​前​​​的​​​配​​​置​​​并​​​退​​​出​​​。​​​
--newest 只​​​ push 那​​​些​​​比​​​这​​​个​​​服​​​务​​​器​​​上​​​的​​​软​​​件​​​包​​​更​​​新​​​的​​​软​​​件​​​包​​​。​​​请​​​注​​​意​​​,源​​​码​​​软​​​件​​​包​​​间​​​不​​​会​​​进​​​行​​​版​​​本​​​比​​​较​​​。​​​它​​​们​​​的​​​版​​​本​​​的​​​新​​​旧​​​是​​​由​​​与​​​它​​​们​​​相​​​对​​​应​​​的​​​二​​​进​​​制​​​软​​​件​​​包​​​决​​​定​​​的​​​。​​​在​​​ RHN Package Manager 中​​​使​​​用​​​这​​​个​​​选​​​项​​​时​​​只​​​有​​​一​​​个​​​源​​​码​​​软​​​件​​​包​​​被​​​上​​​传​​​。​​​在​​​相​​​应​​​的​​​二​​​进​​​制​​​软​​​件​​​包​​​被​​​上​​​传​​​前​​​,这​​​个​​​源​​​码​​​软​​​件​​​包​​​不​​​会​​​出​​​现​​​在​​​ RHN 网​​​站​​​界​​​面​​​中​​​。​​​这​​​与​​​ --source 相​​​反​​​。​​​使​​​用​​​ --source --newest 将​​​会​​​使​​​用​​​较​​​新​​​的​​​软​​​件​​​包​​​的​​​源​​​码​​​软​​​件​​​包​​​进​​​行​​​更​​​新​​​并​​​不​​​需​​​要​​​首​​​先​​​上​​​传​​​对​​​应​​​的​​​二​​​进​​​制​​​软​​​件​​​包​​​。​​​
--source 上​​​传​​​指​​​定​​​的​​​源​​​码​​​软​​​件​​​包​​​。​​​这​​​个​​​选​​​项​​​会​​​将​​​源​​​码​​​软​​​件​​​包​​​作​​​为​​​一​​​般​​​的​​​、​​​独​​​立​​​的​​​软​​​件​​​包​​​处​​​理​​​而​​​ 不​​​ 将​​​它​​​们​​​作​​​为​​​特​​​殊​​​的​​​源​​​码​​​软​​​件​​​包​​​来​​​和​​​其​​​它​​​预​​​先​​​存​​​在​​​的​​​二​​​进​​​制​​​软​​​件​​​包​​​关​​​连​​​。​​​例​​​如​​​,如​​​果​​​您​​​想​​​将​​​应​​​用​​​程​​​序​​​的​​​源​​​代​​​码​​​发​​​送​​​给​​​开​​​发​​​人​​​员​​​或​​​测​​​试​​​人​​​员​​​时​​​,可​​​以​​​使​​​用​​​这​​​个​​​选​​​项​​​。​​​
--stdin 从​​​标​​​准​​​输​​​入​​​中​​​读​​​取​​​软​​​件​​​包​​​名​​​。​​​
--nosig 即​​​使​​​软​​​件​​​包​​​没​​​有​​​被​​​签​​​注​​​,也​​​允​​​许​​​操​​​作​​​继​​​续​​​。​​​
--no-ssl 禁​​​用​​​ SSL(不​​​推​​​荐​​​使​​​用​​​)。​​​
--stdin 从​​​标​​​准​​​输​​​入​​​中​​​读​​​取​​​软​​​件​​​包​​​名​​​。​​​
--username USERNAME 指​​​定​​​ RHN 用​​​户​​​名​​​。​​​如​​​果​​​没​​​有​​​提​​​供​​​,您​​​将​​​会​​​被​​​要​​​求​​​输​​​入​​​一​​​个​​​有​​​效​​​的​​​频​​​道​​​管​​​理​​​员​​​的​​​用​​​户​​​名​​​。​​​
--password PASSWORD 指​​​定​​​ RHN 密​​​码​​​。​​​如​​​果​​​没​​​有​​​提​​​供​​​,您​​​将​​​会​​​要​​​求​​​输​​​入​​​一​​​个​​​有​​​效​​​的​​​频​​​道​​​管​​​理​​​员​​​密​​​码​​​。​​​
--dontcopy 在​​​上​​​传​​​后​​​的​​​步​​​骤​​​中​​​,不​​​要​​​将​​​软​​​件​​​包​​​复​​​制​​​到​​​它​​​们​​​在​​​软​​​件​​​包​​​树​​​的​​​最​​​终​​​位​​​置​​​上​​​。​​​
--copyonly 只​​​复​​​制​​​软​​​件​​​包​​​,不​​​重​​​新​​​导​​​入​​​它​​​们​​​。​​​
--test 只​​​显​​​示​​​被​​​ push 的​​​软​​​件​​​包​​​列​​​表​​​。​​​
-?, --help 显​​​示​​​包​​​括​​​选​​​项​​​列​​​表​​​的​​​帮​​​助​​​信​​​息​​​。​​​
--usage 简​​​单​​​地​​​描​​​述​​​可​​​用​​​的​​​选​​​项​​​。​​​
--copyonly 只​​​复​​​制​​​软​​​件​​​包​​​

注意

关​​​于​​​这​​​些​​​选​​​项​​​的​​​描​​​述​​​也​​​可​​​以​​​在​​​ rhn_package_manager 的​​​说​​​明​​​书​​​页​​​:man rhn_package_manager 中​​​获​​​得​​​。​​​