【Linux】-安装包类型vs安装方式

一 常见安装包类型

类型 管理工具 发行版本 特点
RPM 包 (.rpm) rpm,yum,dnf Red Hat, CentOS, Fedora RPM包是Red Hat系发行版中的包格式
源代码包 (.tar.gz, .tar.xz) tar, gzip,make, configure 多个发行版中使用 常用于源代码分,需要手动解压、编译和安装
ZIP压缩包 (.zip) unzip 广泛用于Windows 通用且多平台兼容
Deb 包 (.deb) dpkg, apt Debian, Ubuntu, Linux Mint Debian包是Debian系发行版中的包格式
AppImage 自包含的可执行二进制文件,无需安装,可在多个发行版中运行。
Snap 包 snap Ubuntu 跨发行版的包管理系统,提供自包含的运行时环境

二 常见tar、rpm包介绍

  2.1 命名规则

大多数Linux应用软件包的命名也有一定的规律,它遵循:名称-版本-修正版-类型

例如:

例子 软件名称 版本号 修正版本 类型 备注
software-1.2.3-1.tar.gz software 1.2.3 1 tar.gz
sfotware-1.2.3-1.i386.rpm software 1.2.3 1 rpm 由于rpm格式的通常是已编译的程序,所以需指明平台,i386,适用于Intel 80x86平台

  2.2 包里内容

一个Linux应用程序的软件包中可以包含两种不同内容:

  1. 一种是可执行文件,解开包后直接运行,Windows中所有包就这种类型,安装程序后可直接使用,看不到源程序。而且下载时要注意软件是否平台兼容。
  2. 另一种是源程序,解开包后,还需要使用编译器将其编译成可执行程序。Windows的思想是不开放源程序,故没有。通常源程序都是用tar打包,而用rpm、dpkg打包的则常是可执行程序,一般一个软件会提供多种格式的安装程序,可根据实际情况选择

  2.3 tar包和rpm包安装流程

tar rpm
1 获取应用程序:官网下载 操作系统:RedHat(Red Hat/Fedora)
2 解压缩文件:tar -xzvf 安装rpm包的命令是“rpm -参数”
3

执行“./configure”命令为编译做好准备

包管理工具 yum
4 执行“make”命令进行软件编译
5 执行“makeinstall”完成安装
6 执行“makeclean”删除安装时产生的临时文件
7 运行应用程序
8 卸载

三 安装方式比较

  3.1 简单介绍

前言

  • Linux系统中,有三种安装软件包的方式:yum、rpm、tar(其实是有4种,ubuntu使用apt)

简单介绍

理解 优点 缺点
yum 订餐点外卖 (做好的饭 筷子) yum安装软件 简单快捷 解决软件依赖问题 不能灵活定制化,实时更新最新版
rpm

买半成品 (速冻饺子 加工) rpm安装软件 需要有软件安装包

单独安装软件 不能解决软件依赖
tar

自己做饭 (食材 做饭) 编译安装软件 可以灵活调整

个性化定制安装软件 不能解决软件依赖

  3.2 rpm详细介绍

RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

    3.21 rpm命令

安装:rpm [选项] RPM包文件   rpm -ivh X.rpm

常用选项:
-i:安装一个新的rpm软件包
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
–force:强制安装所指定的rpm软件包
–nodeps:安装软件时,忽略依赖关系

升级或更新:rpm [选项] RPM包文件

常用选项:
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
–nodeps:升级软件时,忽略依赖关系

卸载:rpm -e filename    –nodeps:卸载软件时,忽略依赖关系

查询已安装rpm包:rpm -q[子选项] [软件名]  

-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-q:查看软件包是否有安装
-qf:查询文件或目录是哪个软件包安装

查询未安装rpm包:rpm -qp[子选项] [软件名]    

常用的子选项:
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表

  3.3 yum详细介绍

最常用的yum工具,这个工具比rpm工具好用多了,当然前提是你使用的linux系统是支持yum的。yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,在这个工程中如果要安装的rpm包有依赖关系,yum会帮你解决掉这些依赖关系依次安装所有rpm包。

使用yum命令,必须配置好yum源:1.配置本地yum源 2.配置阿里源等

   3.31 yum命令

安装:yum install [-y] 软件名   yum  install -y 软件名

常用选项:
-y:忽略安装时:"Is this ok[y/N]"这条提醒语句

备注:对于安装有依赖包的软件,用yum命令特别方便,如果用rpm命令,就必须要先装依赖包再装软件包,而yum命令会直接匹配依赖包然后直接安装。

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

升级一个软件包:yum update [-y] [rpm包]

列出所有已安装的软件包:yum list installed

列出可安装的软件包:yum list 

搜索一个软件包:

(1)yum search [相关关键词]
(2)yum list | grep 软件名

列出所有软件包的信息或单独一个软件包的信息:

(1)yum info: 列出所有软件包的信息
(2)yum info 软件名:列出指定软件包的信息

  3.3 tar-安装源码包

在linux下面安装一个源码包是最常用的。安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

   3.31 编译源代码流程

用源代码安装软件的优点:

  1. 可以获得最新的软件,及时修复bug;
  2. 根据用户的需求,灵活定制软件功能

 编译安装源包必须要有源代码编译环境。 编译源代码步骤【Linux】-安装包类型vs安装方式_第1张图片

configure、Makefile.in一般是项目管理器自动生成的,而gcc编译器需要安装,使用yum命令安装。
安装一个源码包,通常需要三个步骤:

  1. ./config 在这一步可以定制功能,加上相应的选项即可,具有有什么选项可以通过”./config --help ”命令来查看。在这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后才会生成一个Makefile文件。
  2. make 使用这个命令会根据Makefile文件中预设的参数进行编译,这一步其实就是gcc在工作了。
  3. make install 安装步骤,生成相关的软件存放目录和配置文件的过程。

  3.32 具体步骤

1.下载源码包:建议把所有下载的源码包放到/usr/local/src/目录下,这个并不是必须的,只是一个约定。方便你和你的同事将来更好的去运维这台服务器。

PS:下载下来的源码包,可以使用md5sum校验工具,进行完整性校验,防止源码包被别人串改,校验方法:计算MD5校验和,并与官方提供的值相比较,判断是否一致,如果一个致,代表没有串改,如果不一致,就表明已被别人串改了。

2.解压源码包

3.配置相关的选项,并生成Makefile:使用./config --help 可以查看可用的选项。一般常用的有”–prefix=PREFIX “ 这个选项的意思是定义软件包安装到哪里。
常源码包都是安装在/usr/local/目录下的。

4.进行编译执行make命令:这一步操作,就是把源代码编译成二进制的可执行文件,这一步也是最漫长的一步,编译时间的长短取决于源代码的多少和机器配置

5.安装 — make install:在安装前,用echo $?先确认上一步操作是否成功完成

备注:make与make install命令可以合写成一行

  3.4 其他

   3.41 疑问:centos中使用rpm包或yum命令在线安装的软件默认是安装在哪个目录下?

这个不是 rpm 包管理器和 yum 命令决定的,而是软件包自身会选择安装到某个地方,通常会在这几个文件夹中。
1、/bin 可执行文件
2、/usr/bin 可执行文件
3、/sbin 可执行文件
4、/usr/local/bin 可执行文件
5、/usr/include 头文件
6、/usr/local/include 头文件
7、/lib 库
8、/usr/lib 库
9、/usr/local/lib 库
10、还有一些配置文件,在/etc下,或者/var下

   3.42 补充优秀文档

你可能感兴趣的:(linux,运维,服务器)