Linux 操作系统 10 - 软件安装管理

Hello~大家好!我是今越,本文内容来源于平时的学习笔记,希望对大家有所帮助。鉴于个人水平有限,文中难免会有不足之处,欢迎留言评论。需要转载的朋友,请注明出处。感谢点赞和收藏。一起加油!:)

往期文章回顾
Linux 操作系统 01 - 目录篇
Linux 操作系统 02 - 文件篇
Linux 操作系统 03 - 用户和组管理
Linux 操作系统 04 - 权限管理
Linux 操作系统 05 - 定时任务调度
Linux 操作系统 06 - 磁盘管理
Linux 操作系统 07 - 进程管理
Linux 操作系统 08 - 服务管理
Linux 操作系统 09 - 网络配置

软件包主要分为两类,第一类是源码包,包括脚本安装包,第二类是二进制包,包括 RPM 包,系统默认包。

一、RPM

RPM 是用于互联网下载包的打包及安装的工具,它包含在某些 Linux 发行版中。它生成具有 .RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似于 Windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。Linux 的发行版本都有采用,例如 suse, redhat, centos 等,算是公认的行业标准了。

1.1 安装

包全名:操作的包是没有安装的软件包,使用包全名,即包全路径名称;
包名:操作已经安装的软件包时,使用包名,是搜索 /var/lib/rpm 中的数据库;

rpm 安装分为 rpm 手工安装和 rpm yum 在线安装。

功能描述:安装 rpm 包

rpm -ivh 包全名

选项

-i 安装(install)
-v 显示详细信息(verbose)
-h 显示进度(hash)
--nodeps 不检测依赖性(该选项实际工作中不允许使用)

1.2 升级与卸载

功能描述:升级 rpm 包

rpm -Uvh 包全名

选项

-U 升级(upgrade)
-v 显示详细信息(verbose)
-h 显示进度(hash)

功能描述:卸载 rpm 包

rpm -e 包名

选项

-e 卸载(erase)
--nodeps 不检测依赖性(该选项实际工作中不允许使用)

说明

1)如果其它软件包依赖于要卸载的软件包,卸载时会产生错误信息;
2)如果一定要删除,可以增加参数 --nodeps,强制删除,但是不推荐;

1.3 查询

# 查询rpm包是否安装
rpm -q 包名

# 查询安装的所有rpm包
rpm -qa
rpm -qa | more
rpm -qa | grep 包名

# 查询软件包详细信息
rpm -qi 包名

# 查询软件包中文件的安装位置
rpm -ql 包名

# 查询文件属于哪个rpm包
rpm -qf 文件全路径名

# 查询软件包依赖性
rpm -qR 包名

选项

-q 查询(query)
-a 所有(all)
-i 查询软件包信息(information)
-p 查询未安装包信息(package)
-l 列表(list)
-f 查询系统文件属于哪个rpm软件包(file)
-R 查询软件包的依赖性(requires)

1.4 校验

功能描述:校验 rpm 包

rpm -V 包名

选项

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

功能描述:rpm 包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

选项

-i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程

说明

1)rpm2cpio 将 rpm 包转换为 cpio 格式的命令;
2)cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件;

二、YUM

YUM 是一个 Shell 前端软件包管理器,基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

2.1 yum 基本命令

查询

功能描述:查询 yum 服务器所有可用软件包列表

yum list

功能描述:查询 yum 服务器是否有需要安装的软件

yum list | grep 关键字
yum search 关键字

安装

功能描述:安装软件包

yum [选项] install 包名

选项

-y 自动确认安装(yes)

说明

1)yum 安装只需写包名即可,不同于 rpm 安装;

案例

1)安装 gcc 编译器 yum -y install gcc

升级(慎用!!

功能描述:升级软件包

yum [选项] update 包名

选项

-y 自动确认升级(yes)

卸载

功能描述:卸载已经安装的 yum 包

yum [选项] remove 包名

选项

-y 自动确认卸载(yes)

注意

1)rpm 包安装时,有依赖性;同样卸载时也有依赖性,所以原则上尽量不卸载;
2)服务器使用最小化安装,用什么软件安装什么软件,尽量不卸载;

2.2 yum 软件组管理命令

功能描述:列出所有可用的软件组列表

yum grouplist

注意

1)使用 xshell 终端工具输入命令时软件组名是中文显示的;
2)使用 Linux 本机输入命令时软件组名是英文显示的;

功能描述:安装指定软件组,组名可以由 grouplist 查询出来

yum groupinstall 软件组名

注意

1)此处软件组名必须是英文;
2)使用 xshell 终端工具设置中英文:LANG=en_US LANG=zh_CN.utf8

功能描述:卸载指定软件组

yum groupremove 软件组名

三、源码包安装

3.1 源码包和 RPM 包区别

1)安装之前的区别:概念上的区别;
2)安装之后的区别:安装位置不同;

源码包安装在指定位置当中,一般是 /usr/local/软件名/,因为源码包没有卸载命令,所以必须指定安装位置。

安装位置不同带来的影响

RPM 包安装的服务可以使用系统服务管理命令 service 来管理,例如 RPM 包安装的 apache
启动方法有两种

1)/etc/rc.d/init.d/httpd start
2)service httpd start service 命令搜索的目录实际上就是 etc 目录

源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中,只能使用绝对路径进行服务管理。

/usr/local/apache2/bin/apachectl start

3.2 源码包安装过程

1)安装准备

安装 c 语言编译器,Linux 下源文件都是用 c 语言编写的;
下载源码包,例如 apache 源码包下载地址:http://mirror.bit.edu.cn/apache/httpd/

2)安装注意事项

源码包保存位置:/usr/local/src/
软件安装位置:/usr/local/

如何确定安装过程报错?
安装过程停止,并且出现 error、warning 或 no 的提示。

3)源码包安装过程

第一步:下载源码包;

第二步:解压缩下载的源码包;

第三步:进入解压缩目录(不是可选项,必须要执行);

第四步:./configure 软件配置与检查

./configure --prefix=/usr/local/apache2 #指定apache安装位置

a. 定义需要的功能选项;
b.检测系统环境是否符合安装要求;
c. 把定义好的功能选项和检测系统环境的信息都写入 Makefile 文件,用于后续的编辑;

第五步:make 编译

make clean #如果编译时出现报错,使用此命令清除编译时的缓存文件

第六步:make install 编译安装

这一步骤如果报错,需要删除 /usr/local/apache2 目录

第七步:启动服务

prefix/bin/apachectl start #prefix=/usr/local/apache2

4)源码包的卸载

不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。


慢慢来,保持专注,一点一点进步!
文章持续更新,感谢大家的点赞、收藏和评论,我是今越,我们下期再见:)

你可能感兴趣的:(Linux,1024程序员节,linux,centos,运维)