一,Redhat系软件包的管理
二进制软件包管理(RPM,YUM)
RPM包管理
RPM软件包的一个例子:
sudo-1.7.2pl-5.el-5.el5.i386.rpm
sudo表示软件名称
1.7.2pl表示版本号
5.el5表示发行号
i386表示硬件平台
卸载:
# rpm -e 软件包名
如果有依赖关系,比如samba的config工具和samba软件关联,卸载samba时会产生错误信息
如果要强行删除,可以使用--nodeps
例如:
# rmp -e --nodeps samba
安装:
# rpm -ivh 软件包名 (i是安装命令,vh可以不写)
例如:
# rpm -ivh sudo-1.7.2pl-5.el5.i386.rpm
具体事例(从光盘中安装sudo)
挂载光盘
mkdir /mnt/cdrom 通常临时设备都放在mnt目录下
mount /dev/cdrom /mnt/cdrom 在此之前需要先将光盘放入光驱,如果是dvd的话,需要用这个命令
mount /dev/dvd1 /mnt/cdrom
挂载完毕之后,在/mnt/cdrom/Packages中存在sudo的安装包
在上述目录中,
# ls | grep sudo
可以筛选出来sudo的软件包
之后使用安装命令
#rpm -ivh sudo-1.7.2pl-5.el5.i386.rpm
查看软件包的安装状况
# rpm -q 软件包名
例如:查看是否安装了sudo
# rpm -q sudo
查询和samba软件相关的所有软件包
#rpm -qa | grep samba
升级:
# rpm -Uvh 软件包名
其他安装选项
--excludedocs
不安装软件包的文件文档
--prefix PATH
将软件包安装到由PATH制定的路径下
此命令意义不大,很多软件包已经规定了安装目录,不能修改
--test
只对安装进行测试,并不实际安装
--replacepkgs
覆盖安装,如果软件包已经安装,但是出问题了,需要重新安装,可以使用上述命令,如果不使用,会提示软件包已经被安装从而中断安装过程
--replacefiles
如果出现软件冲突,(如果要安装的软件包中有一个文件已经在安装其他软件包时安装了,会出现错误信息,并终止安装)
可以使用上述命令来对冲突文件进行覆盖
--nodeps
未解决的依赖关系
软件包可能依赖于其他软件包,如果要强行安装,可以使用上述命令。但是即使强行安装了,大多数情况下也不能用。。。
RPM的依赖关系是很麻烦的,可能出现安装软件包A,依赖软件包B,安装B又需要C。。。
因此可以YUM进行包管理
查询
选项:
-a 查询所有已经安装的软件包
-f 查询文件所属软件包
-p 查询软件包
-i 显示软件包信息
-l 显示软件包中的文件
-d 显示被标注为文档的文件列表
-c 显示被标注为配置文件的文件列表
栗子:
查询文件隶属的软件包:rpm -qf
也可以查看某个命令隶属哪个软件包,例如:rpm -qf /bin/ls
查询软件包的信息:rpm -qi,rpm -qip
查询软件安装包安装时安装了哪些文件:rpm -ql,rpm -qlp
查询软件包帮助文档:rpm -qd
查询软件包配置文件:rpm -qc
校验
rpm -V 软件包名
例如:rpm -V sudo
可以校验sudo软件安装之后是否有文件被修改
如果sudo软件的一个文件被修改了
运行上述命令,
会返回一个错误信息,并指明哪个文件的问题
例如:
S.5....T c /etc/sudoers
其中值得含义:
5 文件的md5校验值
S 文件的大小
L 链接文件
T 文件的创建时间
D 设备文件
U 文件的用户
G 文件的用户组
M 文件的权限
S.5....T c /etc/sudoers说明,大小(S)发生了变化,md5校验值(5)发生了变化, T说明文件的时间被修改了
软件包文件的提取
解压所有文件到当前目录
# rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv
解压指定文件到当前目录
# rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv ./etc/inittab
YUM包管理
应用YUM的好处:
自动解决软件包依赖关系
方便软件包升级
YUM的操作最好能连接互联网
安装:yum install
yum install 软件包名
其他的操作类似。。。
检测升级:yum check-update
升级:yum update
软件包查询:yum list
查看yum源上相关的软件包
软件包信息:yum info
卸载:yum remove
帮助:yum -help,man yum
源代码包安装
标准源代码包安装举例(proftpd):
# tar -xzvf proftpd-1.2.2d.tar.gz (解压缩)
# cd proftpd-1.2.2d
# ./configure --prefix=/usr/local/proftpd (配置,通常的源代码包中都有这个脚本,运行它来搜集系统信息,为编译做准备(生成一些makefile文件, --prefix为指定安装目录。))
# make (编译)
# make install (安装,把上一步编译出来的东西放到指定目录里)
(软件下载地址:http://www.proftpd.org)
脚本安装(Shell或Java脚本)
举例:(webmin)
# tar -xzvf webmin-1.530.tar.gz
# cd webmin-1.530
# vi README
# ./setup.sh
二,Debian系列Linux软件包的管理(APT)
搜索软件包:apt-cache search
软件包信息:apt-cache show
安装:apt-get install
删除:apt-get remove
更新软件源:apt-get update
更新安装包:apt-get upgrade