程序包原理及linux package
软件包安装状态
旧版本的软件升级后处于 applied状态,系统使用的是新的版本,旧的版本并没有被删除
执行commit动作后,旧的版本被删除,软件包就处于committed状态了;执行reject动作,新的版本被删除,系统仍用旧的版本
软件包的升级,为了应用安全运行,先让新软件包处于applied状态试运行一阵后再commit;如果安装一个新的软件包,就直接committed安装软件
installp –p
预览这个LPP安装需要多大的空间等信息,并没有真的安装
installp –c
commit一个处于apply状态的软件包
installp –r
reject一个处于apply状态的软件包
installp –l和install -L
按一定格式列出软件包
installp –C
清除安装失败的不完整的文件和软件
installp -u
卸载一个软件包
installp –ug –V –f readme.txt
u 为卸载,-g为相关的软件包,-V为显示卸载状态,-f为指定某个文件。 卸载一个软件包和相关的所有软件包,readme.txt文件中列出要卸载的软件名
lslpp –p
查看某个软件包的所需的预安装信息
lslpp –h
查看某个软件包的安装和升级历史信息
instfix –T –d /dev/cd0
列出可光盘中安装的补丁(fix)
instfix –k IX38794 –d /dev/cd0
从光驱设备中安装APAR号为IX38794的软件包
instfix –ik IX38794
查询APAR号为IX38794的相关filesets 是否安装或当前状态,-i选项表示只查询并不安装
lppchk
lppchk -l
验证符号链接是否正确
lppchk -v
验证软件安装后在/, /usr和/usr/share的文件是否一致
rpm
RedHat软件包管理工具rpm -i package-filename.rpm (install)
rpm -F package-filename.rpm (freshen)
rpm -U package-filename.rpm (upgrade)-v 表示可以输出详细信息
-h 在安装过程中打印50个“#”符号,表示安装进度
-e选项 如使用选项–nodeps 将忽略包的依赖提示-q
rpm -q package-name
选项:
-a 查询所有安装的RPM
-f 查询拥有某文件的RPM
-p 查询包文件
-i 显示包的信息
-l 信息包文件的信息
-s 显示所有文件的状态
-d 显示文档文件
-c 显示配置文件 “-V”参数检查与某一RPM包相关所有文件的完整性。语法为:
rpm -V package_name_to_verify
rpm校验
rpm -V sendmail
输出看来是这样的:
[root@fubar /root]# rpm -V sendmail
S.5….T c /etc/aliases
missing /etc/mail/ip_allow
S.5….T c /etc/mail/relay_allow
S.5….T c /etc/sendmail.cf
S.5….T c /etc/sendmail.cw
S.5….T /usr/sbin/sendmail 除非你升级了sendmail,否则它不应该校验失败,很明显有人修改或者覆盖 了原来的sendmail文件,可能带有木马或者后门。S = 大小改变
M = 权限改变
5 = MD5改变
L = 连接改变
D = 设备改变
U = 用户改变
G = 组改变
T = 日期和时间改变
missing = 文件丢失挨个检查软件包很费时间,用“-a”选项可以一次性检查所有RPM包:
rpm -Va > /root/rpm_chk.txt &
“-qf”选项查看哪个软件包安装了此文件:
rpm -qf /usr/sbin/sendmail
sendmail-8.8.7-20
Md5
MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。
MD5可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。