「Linux-基础」源码包、二进制包、rpm包、yum包

CentOS 8 源码包、二进制包、rpm包、yum包安装及用法

注:由枫梓林本人整理

源码包

文章目录

    • CentOS 8 源码包、二进制包、rpm包、yum包安装及用法
  • 源码包
    • 源码包优点
    • 源码包缺点
  • 二进制包
    • 二进制包分类
      • DPKG 包
      • RPM包的优点
      • RPM包的缺点
      • 依赖性
  • rpm安装
    • rpm包命名规则
    • rpm包手工命令安装
      • rpm 默认安装位置
    • RPM包安装
      • 安装命令
      • rpm包升级
      • RPM卸载
      • 查询
      • 验证和数字证书
        • **验证**
        • 数字证书有如下特点
  • yum
    • yum查询命令
    • yum安装命令
    • yum 升级命令
    • yum 卸载命令
    • yum安装软件组
    • yum命令卸载软件组
  • 源码包
    • 需要检查安装 gcc 和make 编译器
    • 源码包存储位置
    • 源码包安装流程


源码包优点

  • 开源,可以任意修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
  • 卸载方便

源码包缺点

  • 安装过程步骤比较长,容易出现错误
  • 编译时间长

二进制包

二进制包分类

DPKG 包

是由 Debian Linux 所开发出来的包管理机制,通过 DPKG 包,Debian Linux就可以进行软件包管理。主要应用在 Debian和unbuntu中。

RPM包:是由 Red Hat公司所开发的包管理系统。功能强大,安装、升级、查询和卸载都非常简单和方便。目前很多 Linux都在使用这种包管理方式,包括 Fedora、CentOS、SuSE等。我们学习的是 CentOS 6.3,所以我们将要学习 RPM包管理系统

RPM包的优点

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

RPM包的缺点

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活

依赖性

  • 依赖性。有时我们会发现需要安装软件包 a时需要先安装 b和 c,而安装 b时需要安装d和 e。这是需要先安装 d和 e,再安装 b和 c,最后才能安装 a包。比如说,我买了个漂亮的灯具,打算安装到我们家客厅,可是在安装灯具之前我们家客厅总要有顶棚吧,顶棚总要是做好了防水和刷好油漆了吧,这个装修和安装软件其实类似总要有一定的顺序的。可是有时依赖性会非常繁琐

「Linux-基础」源码包、二进制包、rpm包、yum包_第1张图片

1)树形依赖

2)环形依赖

3)函数库依赖

a---->b---->c

a---->b---->c---->a

www.rpmfind.net (查询包含某一个软件包中的。没有的那个包函数库中没有单独成包)

rpm安装

rpm包命名规则

httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
el6 软件发行商。el6是 RedHat公司发布,适合 RHEL6.(x Red Hat Enterprise Linux)和 CentOS6.x下使用
i686 适合的硬件平台。RPM包可以在不同的硬件平台安装,选择适合不同 CPU的软件版本,可以最大化的发挥 CPU性能,所以出现了所谓的 i386(386以上计算机都可以安装)、i586(586以上的计算机都可以安装)、i686(奔腾 II 以上计算机都可以安装,目前所有的 CPU 都是奔腾 II以上,所以这个软件版本居多)、x86_64(64位 CPU可以安装)和 noarch(没有硬件限制)等文件名了。
rpm rpm包的扩展名。我们说过 Linux下文件不是靠扩展名区分文件类型,也就是 Linux中扩展名没有任何含义。可是这里怎么又出现了扩展名呢?原因很简单,如果我不把 RPM的扩展名叫做“.rpm”,管理员很难知道这是一个 RPM包,当然也就无法正确安装了。也就是说如果RPM 包不用“.rpm”作为扩展名,系统可以正确识别没有问题,可是管理员很难识别这是个什么样的软件。
包全名 如果操作的是未安装软件包,则使用包全名,而且需要注意绝对路径
包名 如果操作的是已经安装的软件包,则使用包名即可,系统会生产 RPM 包的数据库

rpm包手工命令安装

rpm 默认安装位置

/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置

RPM包安装

安装命令

格式  rpm –ivh 包全名

选项:
 -I     install安装(install)      
 -v    显示更详细的信息(verbose) 
 -h    打印#显示安装进度(hash)   

注意一定是包全名。如果跟包全名的命令要注意路径,因为软件包在光盘当中

rpm包升级

[root@localhost ~]# rpm –Uvh 包全名  
     选项
# -U(大写)    升级安装,如果没有安装过,系统直接安装。如果安装过的版本较旧,则升级到新版本(upgrade)  
[root@localhost ~]# rpm –Fvh 包全名 
  选项
# -F(大写)    升级安装,如果没有安装过,则不会安装。必须安装有较旧版本,才能升级(freshen)  

RPM卸载

[root@localhost ~]# rpm -e 包名
选项
#  --nodeps  不检查依赖性 
#     -e        卸载         

查询

rpm -q 包名    查询(query)

rpm -qa 包名    查询系统中已安装的软件包

rpm -qa | grep httpd   查询包含httpd的包全部列出来

rpm -qi 包名      查询软件信息(information)

rpm -qip 包全名   查询没有安装的软件包(package)

rpm -ql 包名      列出软件包中所有文件列表和软件所在安装目录(list)

rpm -qlp 包全名     查询没有安装的软件包信息(package)

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

rpm -qR 包名        查询软件包的依赖性(requires)

验证和数字证书

验证
[root@localhost ~]# rpm -Va
选项

-Va 校验本机已经安装的所有软件包

-V 校验指定 RPM包中的文件(verify)

「Linux-基础」源码包、二进制包、rpm包、yum包_第2张图片

  • S 文件大小是否改变
  • M 文件的类型或文件的权限(rwx)是否被改变
  • 5 文件 MD5校验和是否改变(可以看成文件内容是否改变)
  • D 设备的主从代码是否改变
  • L 文件路径是否改变
  • U 文件的属主(所有者)是否改变
  • G 文件的属组是否改变
  • T 文件的修改时间是否改变
  • apache配置文件的文件类型是 c,那么还有哪些文件类型呢?
  • c 配置文件(config file)
  • d 普通文档(documentation)
  • g “鬼”文件(ghost file),很少见,就是该文件不应该被这rpm包含
  • l 授权文件(license file)
  • r 描述文件(read me)

数字证书

数字证书有如下特点
  • 首先必须找到原厂的公钥文件,然后进行安装
  • 再安装 RPM包是,会去提取 RPM包中的证书信息,然后和本机安装的原厂证书进行验证
  • 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告

yum

yum查询命令

 [root@localhost yum.repos.d]# yum list   #查询所有已安装和可安装的软件包

yum安装命令

 [root@localhost yum.repos.d]# yum -y install 包名
  选项
  install:表示安装软件包。
  -y:自动回答      yes。如果不加 -y,那么每个安装的软件都需要手工回答 yes;

例如使用此 yum 命令安装 gcc:

[root@localhost yum jepos.d]#yum -y install gcc

使用yum自动安装gcc

gcc 是 C 语言的编译器,鉴于该软件包涉及到的依赖包较多,建议使用 yum 命令安装。

yum 升级命令

  • 使用 yum 升级软件包,需确保 yum 源服务器中软件包的版本比本机安装的软件包版本高。

-yum 升级软件包常用命令如下:

   选项
   -y update:         #  升级所有软件包。不过考虑到服务器强调稳定性,因此该命令并不常用。
   -y update 包名:    # 升级特定的软件包。

yum 卸载命令

  • 使用 yum 卸载软件包时,会同时卸载所有与该包有依赖关系的其他软件包,即便有依赖包属于系统运行必备文件,也会被 yum 无情卸载,带来的直接后果就是使系统崩溃。除非你能确定卸载此包以及它的所有依赖包不会对系统产生影响,否则不要使用 yum 卸载软件包。

yum 卸载命令的基本格式如下:

 [root@localhost yum.repos.d]# yum remove 包名					#卸载指定的软件包   

yum安装软件组

软件包组,是一个打包好的一个组

 [root@localhost yum.repos.d]# yum groupinstall 软件组名  #安装指定软件组, 查询组名可以用grouplist查询

注:安装 如:Web Server 要加"Wed Server"

yum命令卸载软件组

 [root@localhost yum.repos.d]# yum groupremove 软件组名 #卸载指定软件组

源码包

需要检查安装 gcc 和make 编译器

检查命令如下:rpm -q gcc  //如下是未安装gcc编译器

源码包存储位置

"/usr/src" 用来
保存内核源代码,"/usr/local/src" 用来保存用户下载的源代码。

用xshell上传文件 rz是xshell上传的命令

安装方法:yum install lrzsz

「Linux-基础」源码包、二进制包、rpm包、yum包_第3张图片

源码包安装流程

[root@localhost httpd-2.4.43]# tar -zxvf httpd-2.4.43.tar.gz -C /usr/local/src/
./configure --prefix=PREFIX               //运行相关软件并指定路径
make                                      //编译
make install                              //安装
PREFIX/bin/apachectl start				  //启动									

注:
本文首发于枫梓林的博客,欢迎转载,但是必须保留本文的署名枫梓林(包含链接)
转发请给我留言:[email protected]

你可能感兴趣的:(Linux,基础,linux,rpm,运维,centos)