类型 | 管理工具 | 发行版本 | 特点 |
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 | 跨发行版的包管理系统,提供自包含的运行时环境 |
大多数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平台 |
一个Linux应用程序的软件包中可以包含两种不同内容:
tar | rpm | |
1 | 获取应用程序:官网下载 | 操作系统:RedHat(Red Hat/Fedora) |
2 | 解压缩文件:tar -xzvf | 安装rpm包的命令是“rpm -参数” |
3 | 执行“./configure”命令为编译做好准备 |
包管理工具 yum |
4 | 执行“make”命令进行软件编译 | |
5 | 执行“makeinstall”完成安装 | |
6 | 执行“makeclean”删除安装时产生的临时文件 | |
7 | 运行应用程序 | |
8 | 卸载 |
理解 | 优点 | 缺点 | |
yum | 订餐点外卖 (做好的饭 筷子) yum安装软件 简单快捷 | 解决软件依赖问题 | 不能灵活定制化,实时更新最新版 |
rpm | 买半成品 (速冻饺子 加工) rpm安装软件 需要有软件安装包 |
单独安装软件 | 不能解决软件依赖 |
tar | 自己做饭 (食材 做饭) 编译安装软件 可以灵活调整 |
个性化定制安装软件 | 不能解决软件依赖 |
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安装包内包含的文档文件列表
最常用的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 软件名:列出指定软件包的信息
在linux下面安装一个源码包是最常用的。安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。
3.31 编译源代码流程
用源代码安装软件的优点:
configure、Makefile.in一般是项目管理器自动生成的,而gcc编译器需要安装,使用yum命令安装。
安装一个源码包,通常需要三个步骤:
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.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 补充优秀文档