linux 软件包管理

redhat centos fedora  红旗     rpm yum(二进制软件包)

debian ubuntu     apt

sudo-1.7.2pl-5.el5.i386.rpm

软件名-版本号-发型号-硬件平台
硬件平台(不同的cpu)

i386  intel架构 32
i686  intel 64
ppc(power pc)

alpha

软件卸载:
rpm 在软件依赖关系方面没处理好
rpm -e --nodeps 软件名(不建议这样做)
当有依赖关系时应该连依赖一块卸载

安装:
rpm -ivh 软件名
-i 安装
-v 详细信息
-h  进度

挂载光盘:
mkdir /mnt/cdrom
mount /dev/cdrom  /mnt/cdrom

rpm -q 软件名

rpm -qa  查询所有的软件包

rpm -ivh --excludedocs 软件名  安装的时候不安装文档
         --prefix=dir 指定软件的安装目录   大多数rpm包不允许改变安装目录
         
         --test  安装测试,不实际安装  测试依赖,兼容性

1、覆盖安装:
rpm -ivh --replacepkgs 软件名
2、文件冲突:
比系统中的还要老?覆盖
rpm -ivh --replacefiles 软件名
3、未解决依赖关系
rpm -ivh --nodeps 软件名  强制安装(不考虑依赖的包,一般安装上也运行不了)

软件升级:
rpm -Uvh 软件全名

yum包管理(软件包可信任)
1、自动解决软件包依赖关系
2、方便的软件包升级

安装:
yum install 软件名
yum check-update 检查升级
yum list 软件源上的所有的软件包  安装,需要升级等提示
yum info  查询软件包信息  
yum remove 卸载软件包

rpm
-a 查询所有已经安装的软件包
-f 查询文件所属的软件包
-p 查询软件包
-i 显示软件包信息
-l 显示软件包中的文件列表
-d 显示被标注为文档的文件列表
-c 显示被标注为配置的文件的文件列表

示例:

查询文件(命令)所属的软件包:rpm -qf /etc/services     rpm -qf /bin/ls
重要的文件必须备份
查询软件包安装信息: rpm -qi samba
查询一个没有安装的软件包安装信息: rpm -qip samba
查询一个没有安装的软件包需要安装哪些文件: rpm -qpl samba
查看一个软件包在系统安装了那些文件:rpm -ql(p) 软件名

查询软件包的帮助文档:rpm -qd(p)
查询软件包的配置文件:rpm -qc(p)

实例文档: example

md5sum 软件路径/名称 生成软件的md5值

校验软件包自安装后文件的改变
rpm -V
5 文件的md5校验值
S 文件大小改变
L 连接文件
T 文件的创建时间
D 设备文件
U 文件的用户
G 文件的用户组
M 文件的权限

示例:
S.5....T.  c /etc/sudoers

软件包文件的提取
rpm2cpio 软件包 | cpio -idv  #提取所有文件
rpm2cpio 软件包 | cpio -idv ./etc/inittab
 
源代码安装
./configure 可以理解为 搜集系统信息  生成 makefile文件
建议指定安装目录,否则卸载的时候会很麻烦  /usr/local/(建议放在此目录下)
卸载的时候先把服务关闭,直接删除安装目录就行了
脚本安装:(shell,java脚本)
原文地址:https://www.cnblogs.com/siqi/p/3590392.html