Linux笔记 Day16—(Linux中的源码包、二进制包、RPM包)

文章目录

  • 一、Linux源码包
    • (一)概念
    • (二)格式
    • (三)特性
    • (四)安装步骤
    • (五)源码包的安装
  • 二、Linux二进制包
    • (一)概念
    • (二)格式
    • (三)特性
    • (四)安装
  • 三、RPM包
    • (一)概念
    • (二)格式
    • (三)特性
    • (四) RPM包安装、卸载和升级
      • 第一种:rpm命令
      • 第二种:yum命令

Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。

Linux下的软件包可分为两种,分别是源码包、二进制包

一、Linux源码包

(一)概念

实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。

源码包是Linux中软件包的另一种形式,需要在计算机上进行编译以后才可以产生可以直接运行的二进制程序。源代码包里面包括了程序的程序代码,一般就是我们能认识的C语言文件,因此在安装源码包的时候通常会检索系统中是否正确安装gcc编译器,并且源代码安装的时间会比较长。

计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言,这名“翻译官”通常被称为编译器。

“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行

另外,由于源码包的安装需要把源代码编译为二进制代码,因此安装时间较长。
比如,在 Windows下安装 QQ,QQ 功能较多,程序相对较大(有 70 MB左右),但由于其并非是以源码包的形式发布,而是编译后才发布的,因此只需几分钟(经过简单的配置)即可安装成功。但如果我们以源码包安装的方式在 Linux 中安装一个 MySQL 数据库,即便此软件的压缩包仅有 23 MB左右,也需要 30 分钟左右的时间(根据硬件配置不同,略有差异)。

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball

Tarball 是 Linux 系统的一款打包工具,可以对源码包进行打包压缩处理,人们习惯上将最终得到的打包压缩文件称为 Tarball 文件。

源码包需要我们自己去软件官方 站进行下载,包中通常包含以下内容:

  1. 源代码文件。
  2. 配置和检测程序(如 configure 或 config 等)。
  3. 软件安装说明和软件说明(如 INSTALL 或 README)。

通过对比你会发现,源码包的编译是很费时间的,况且绝多大数用户并不熟悉程序语言,在安装过程中我们只能祈祷程序不要 错,否则新手很难解决。

(二)格式

源码包的格式一般是一个版本 的tar包,例如:httpd-2.4.25.tar.gz,文件名包含信息比较少

(三)特性

优点:

tar包形式的源码包包含的内容是明文可见的源代码,如果有足够的能力,可以自行修改源代码,并且在安装的时候可以自由选择要安装的所需功能(./configure中的各种参数)及路径等,并且卸载移除的时候也比较方便。 建议在安装线上的生产服务器软件包时都用源码安装,这是因为源码安装可以自行调整编译参数,能够最大化地定制安装结果。

缺点:

1)安装过程步骤过多,尤其安装较大及较多软件时,添加各种参数时容易出现问题
2)编译时间较长,执行make编译的时间通常较长,一会都会比安装二进制包时间长
3)因为编译手动安装,涉及系统环境比较复杂,可能会出现各种问题,一旦出现问题,新手很难解决(一般都会出现问题)

(四)安装步骤

源码包一般的安装过程:
1)安装所需依赖包
2)解压
3)./configure
4)make
5)make install
6)vim /etc/profile,文件末尾添加PATH=/usr/local/xxx/bin:$PATH(或者写在/etc/profile.d/目录下创建文件并写入环境变量相关配置),然后 source 环境变量文件

说明:

说明:tar包形式包含的内容是明文可见的源代码,如果有足够的能力,可以自行修改源代码,并且在安装的时候可以自由选择要安装的所需功能(./configure中的各种参数),并且卸载移除的时候也比较方便

注意1:每个源码包都会有configure命令,就算极个别没有这个命令也会用其他的命令取代(例如openssl的./config)
注意2:执行过./configure之后,会生成Makefile文件,make和make install都是依赖这个文件进行编译安装的

  • make
    1)将源码包翻译成机器能识别的语言(也就是将源代码–>可执行的二进制文件,类似生成Windows中的.exe可执行文件)
    2)一旦编译出错,需要修改之后再次编译,请使用make clean,清除之前的编译产生的缓存文件。
    注意:这一步执行时间一般是最长的。

  • make install
    1)真正的安装(例如在windows中执行qq.exe或者wechat.exe安装qq和微信到电脑)
    2)一旦这步出错,需要执行make clean,并删除对应的目录(例如./configure使用–prefix参数指定安装到/usr/local/openssl,则需要删除该目录)

(五)源码包的安装

【例 1】apache http源码包的安装

1、安装准备

2、下载源码包(.tar.gz格式)
下载地址: http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.gz

源码包建议保存位置:/usr/local/src

3.解压

4.下载安装编译工具

5.编译安装

编译安装软件程序包源码编译安装三步走:./configure(配置)、make(编译)、make install(安装)

这里我们可以查看INSTALL 文件,查看安装说明:

使用 ls 命令可以看到当前目录下有一个名为 configure 的可执行文件:

【例 2】memcached 源码包的安装

1.下载源码包(.tar.gz格式)

两种方式:①在windows电脑上进入官 下载所需包,然后使用 ftp上传进来
②获取源码包的下载地址,使用wget下载工具直接下载

其实我们可以先用 yum install memcached 查看该软件包的依赖,再根据此依赖下载对应的源码包(虽然使用yum方式查找到的是对应软件RPM包的依赖,对于源码包来说是一样的)

2.解压
解压到 /usr/local/src 下

3.编译和安装

安装预编译工具:

若已安装则跳过

因为 memcached 软件的安装依赖于 libevent 软件,所以先编译和安装 libevent

进入解压后的目录进行对 libevent 进行预编译:

对 libevent 进行编译和安装

进入解压后的目录进行对 memcached 进行预编译:

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

上一篇 2020年7月6日
下一篇 2020年7月6日

相关推荐