CentOS 7安装软件的三种方式(RPM、YUM、源码包)

目录

  • 软件包分类
    • 源码包
      • 源码包是什么
      • 源码包特点
    • 二进制包
      • 二进制包分类
      • 二进制包特点
  • RPM安装
    • rpm包命名规则
    • rpm包默认安装路径
    • rpm包安装
      • rpm包安装
      • rpm包升级
      • rpm包卸载
      • rpm包查询
      • rpm验证
        • 命令
        • 举例
      • 数字证书
        • 数字证书验证
        • 数字证书位置
        • 数字证书导入
  • YUM安装(rpm包在线安装)
    • yum是什么
    • yum源配置文件
    • 搭建本地光盘yum源
    • yum源配置文件优化
    • yum命令
      • 安装命令
      • 升级命令
      • 卸载命令
      • 查询命令
    • yum缓存
    • yum组管理命令
  • 源码包安装
    • 注意事项
    • 安装过程
    • 卸载

软件包分类

源码包

源码包是什么

源码包一般指C语言开发的源代码文件的一个压缩包(.tar.gz或.tar.bz2)。源码包的编译使用Linux系统里的编译器gcc,利用该编译器可以把源码包变成可执行的二进制文件。

  • 创建一个源码包

  • 安装gcc编译器

  • 编译执行源码包

源码包特点

源码包的优点:

  • 开源,有能力可以自己修改源代码;
  • 可以自由选择所需功能;
  • 软件是编译安装,更加稳定,效率更高;
  • 卸载方便,直接删除目录即可。

源码包的缺点:

  • 安装过程步骤过多,尤其在安装较大软件集合时(如LAMP环境搭建),容易出现拼写错误;
  • 编译过程时间较长,安装比二进制安装时间长;
  • 由于是编译安装,安装过程中一旦 错新手解决较为麻烦。

二进制包

二进制包分类

  • RPM包:由Red Hat公司开发的包管理系统,软件的安装、升级、卸载都非常简单和方便。目前很多Linux发行版都在使用这种包管理机制,包括CentOS、Redhat、Fedora等。软件包文件后缀是”.rpm”。
  • DPKG包:由Debian Linux开发出来的包管理机制,主要应用在Debian和Unbuntu系统中。软件包文件后缀是”.deb”。

不论是RPM包管理器还是DPKG包管理器,都存在软件包依赖问题,比如软件包A依赖软件包B,软件包B又依赖软件包C,即依赖关系是 “A -> B -> C”,那么就必须先安装C,在安装B,最后A才能安装成功。
为了解决这种依赖问题,Linux开发商都提供了在线安装机制,通过这种机制可以自动解决依赖关系,安装A时会自动安装B和C。

  • 基于RPM包管理机制开发出了YUM在线安装机制;
  • 基于DPKG包管理机制开发出了APT在线安装机制。

二进制包特点

RPM包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
  • 安装速度比源码包安装快很多。

RPM包的缺点:

  • 经过编译,不再可以看到源码;
  • 功能选择不如源码包灵活;
  • 依赖性。

RPM安装

rpm包命名规则

rpm包安装

rpm包安装

安装命令:rpm -ivh 包全名

  • 选项:
    -i:安装(install)
    -v:显示更详细的信息(verbose)
    -h:打印#显示安装进度(hash)
    –nodeps:不检测依赖性安装。软件安装时会检查依赖性,如果所依赖的软件还未安装则会 错。加上该选项不检测依赖强制安装,但是这样的软件安装后一般不能使用,建议不要这么做。
    –replacefiles:替换文件安装。若安装软件包时包中部分文件已经存在,正常安装时会 错某文件已经存在导致软件无法安装,使用该选项可以忽视 错覆盖安装。
    –replacepkgs:替换软件包安装。若软件包已经安装,此选项将软件包重复安装一遍。
    –force:强制安装(–replacefiles和–replacepkgs的组合)
    –test:测试安装(检查依赖性,不会实际安装)
    –prefix:指定安装路径,不使用默认安装路径(指定安装路径会使得系统找不到这些安装的软件,需要手工配置被系统识别)

rpm包升级

升级命令:rpm -Uvh 包全名

  • 选项:
    -U:升级安装(如果没有安装过,系统直接安装;如果安装的版本较老,则升级到新版本)

升级命令:rpm -Fvh 包全名

  • 选项:
    -F:升级安装(如果没有安装过,则不会安装;必须有旧版本的软件安装,才能升级)

rpm包卸载

卸载命令:rpm -e 包名

  • 选项:
    -e:卸载软件包
    –nodeps:卸载时不检查依赖性(如果卸载的软件被其它软件依赖导致卸载失败,加上此选项可以强制卸载,但是可能会导致其它软件无法使用,谨慎)

rpm包查询

  • 查询软件包是否安装

    rpm -q 包名

  • 查询系统中所有的安装的软件包

    rpm -qa

    可以使用管道符查看所需内容 如rpm -qa | grep gcc,使用 “rpm -q 包名” 只能查看这个包是否安装,而 “rpm -qa | grep 包名” 可以将包含包名称的所有包都列出来。

  • 查询软件包的详细信息

    rpm -qi 包名 :查询已安装的软件包详细信息
    选项:
    -i:查询软件信息(information)

    rpm -qip 包全名 :查询未安装的软件包详细信息
    选项:
    -p:查询没有安装的软件包(package)

  • 查询软件包中的文件列表

    rpm -ql 包名:查询已经安装的软件包的文件列表和安装的完整目录
    选项:
    -l:列出软件包中的所有文件了列表和软件所安装的目录(list)

    rpm -qlp 包全名:查询未安装的软件包中的文件列表和打算安装的位置
    选项:
    -p:查询没有安装的软件包(package)

  • 查询系统文件属于哪个软件包

    rpm -qf 系统文件名
    选项:
    -f:查询系统文件属于哪个软件包(file)

  • 查询软件包所依赖的软件包

    rpm -qR 包名:查询系统中和已经安装的软件包有依赖关系的软件包
    选项:
    -R:查询软件包的依赖性(requires)

    rpm -qRp 包全名:查询未安装的软件包的依赖性

rpm验证

命令

  • rpm -Va:校验本机已经安装的所有软件包
  • rpm -V 已安装的包名:校验指定的已安装的软件包
  • rpm -Vf 系统文件名:校验某个系统文件是否被修改
    选项:
    -V:校验指定RPM包中的文件(verify)

如果执行命令后无任何提示,表明没有做任何修改;如果执行命令后有内容输出,则软件包的文件被修改过。

举例

验证内容共有8个信息内容:

  • S:文件大小是否改变
  • M:文件类型或文件权限(rwx)是否改变
  • 5:文件MD5校验是否改变(文件内容是否改变)
  • D:设备主从代码是否改变
  • L:文件路径是否改变
  • U:文件所有者是否改变
  • G:文件所有组是否改变
  • T:文件修改时间是否改变

文件类型:

  • c:配置文件(config file)
  • d:普通文件(documentation)
  • g:鬼文件(ghost file)
  • l:授权文件(license file)
  • r:描述文件(read me)

数字证书

数字证书验证

rpm -V的校验方式只能对已经安装的RPM包中的文件进行校验。要在安装之前就对RPM进行校验需要使用数据证书验证:

  • 首先找到原厂的公钥文件,然后进行安装;
  • 安装RPM包时,去提取RPM包中的证书信息,然后和本机安装的原厂证书进行验证;
  • 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告。

数字证书位置

数字证书可以在光盘中找到:

默认也放在系统中:

数字证书导入

YUM安装(rpm包在线安装)

yum是什么

yum软件仓库是为了进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术。yum的关键之处是要有可靠的respository,它能够从指定服务器自动下载rpm包并安装。yum能够自动解决软件依赖性问题,一次性安装所有依赖的软件包。

yum源配置文件

yum源配置文件保存在/etc/yum.repos.d/目录中,文件的扩展名一定是”.repo”,及yum源配置文件只要扩展名是”.repo”就会生效。

/etc/yum.repos.d/目录下的文件如上所示,默认情况下CentOS-Base.repo文件生效。

  • [base]:容器名称,一定要放在[]中
  • name:容器说明,随便写
  • mirrorlist:镜像站点,可以注释掉
  • baseurl:yum源服务器的地址(默认是CentOS官方的yum源服务器,可以更改)
  • enabled:此容器是否生效(enabled=1生效,enabled=0不生效)
  • gpgcheck:rpm数字证书是否生效(gpgcheck=1生效,gpgcheck=0不生效)
  • gpgkey:数字证书的公钥文件保存位置

搭建本地光盘yum源

  1. 将CentOS光盘挂载到指定位置
  2. 为了使centos7.repo文件真正生效,需要使得其他yum源文件失效。可以将/etc/yum.repos.d/目录下的yum源配置文件转移到别处
  3. 创建本地yum源配置文件
  4. 测试

yum源配置文件优化

通过 易yum源进行优化:http://mirrors.163.com/.help/centos.html

点击CentOS 7直接下载repo文件,之后移动到Linux系统中。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月26日
下一篇 2021年3月26日

相关推荐