rpm包是以一种数据库记录的方式将所需的套件安装在linux系统上的软件包;也就是说linux系统中存在着关于rpm包的数据库,它记录了安装的包以及包与包之间的依赖相关性。

安装rpm包:rpm -ivh [--force] [--test]长包名.rpm

    --force:忽略软件包及文件的冲突

    --nodeps:忽略软件包的依赖关系强行安装

    --test:检查依赖关系并不是真正的安装

更新rpm包:rpm -Uvh [--force] 长包名.rpm

卸载rpm包:rpm -e  [--nodeps] 包名或长包名

rpm查询:

  • rpm -qa:查看系统已安装所有rpm包

  • rpm -qa vim-enhanced:根据包名收索已安装rpm包

  • rpm -qa |grep vim:根据关键字收索已安装rpm包

  • grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

  • rpm -qi 长包名.rpm:可以查看已安装的rpm包的详细信息

  • rpm -ql 长包名.rpm:可以查看已安装的rpm包所安装的文件列表

  • rpm -qf  文件路径:可以查看安装该文件rpm包

  • rpm -qf 'which vim':查看命令的相关包是否安装 ,`号是反单引号Esc键下面那个,表示直接调用``内的命令结果。


yum是linux的软件管家,可以根据依赖关系自动计算好到预先指定的yum源下载、更新、卸载哪些rpm包。

yum的关键之处就是要有可靠的yum源repository),它可以是http或ftp站点,也可以是本地软件池(flie://)

搜索rpm包:yum search rpm包名

                    yum list |grep rpm包名


yum grouplist:显示已安装的和未安装的环境列表

根据提供的文件搜索rpm包 yum provides /*mkpasswd等价rpm -qf

@表示已安装的

下载安装rpm包:yum [-y] install rpm包名

下载rpm包:yum [-y] install rpm包名 --downloadonly --downloaddir=目录(使用参数需要安装插件yum-plugin-downloadonly)

重新安装rpm包:yum [-y] reinstall rpm包名

更新rpm包:yum [-y] udate rpm包名

卸载rpm包:yum [-y] rmmove rpm包名

  • 卸载时-y参数谨慎使用

yum 的配置文件分为两部分:main 和repository

  • main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。

  • repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。

当同一个rpm包在多个不同的yum源中都有时,按yum源名升序排列显示最第一个。

yum -y install yum-priorities:可以安装该插件设置yum源优先级别1-99。

第三方yum源:epel(可通过yum安装)、rpmforg、rpmfusion...可以安装更多的rpm包。


CentOS yum 源的配置与使用

指定好yum源(.repo文件)后最好执行下以下2条命令:yum clean all清除缓存、yum makecache生成缓存

可以使用createrepo工具搭建局域网repository 


源码编译安装:

使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

linux的源码包一般是C语言开发,其编译器是gcc。

安装步骤:

  • 安装ggc编译器

  • 下载源码包到/usr/local/src并解压

  • 进入该源码包解压目录,查看帮助文档INSTALL或README

  • 根据帮助文档编译安装源码包,安装过程中可使用echo $?校验安装是否正确,0为正常

wKioL1ajGyLgcJ3iAAAdH2BGBk0479.png

编译前,可在执行脚本configure检查编译环境时定制编译参数,如--prefix=directory指定安装目录,可使用./configure --help查看更多参数

卸载就是直接删除安装目录

make clean仅仅是清除编译时生成的可执行文件及配置文件。

make distclean类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。