Linux应用程序管理(RPM安装、yum安装、源码安装)

一、Linux应用程序基础

当我们主机安装Linux操作系统时候,也会同时安装一些软件或网络服务等等,但是随着系统一起安装的软件包毕竟他是少数的,能够实现的功能也是有限的,如果需要实现更丰富的功能,那就需要安装应用程序。

1、应用程序和系统命令的关系

角色系统应用程序
文件位置一般在/bin和/sbin目录中,或为shell内部指令通常在/usr/bin和/usr/sbin目录中
主要用途完成对系统的基本管理工作,例如IP配置工具完成相对独立的其它辅助任务,例如网页浏览器
适用环境一般只在字符操作界面中运行。(终端程序)根据实际需要,有些程序可在图形界面中运行
运行格式一般包括,命令字、选项和命令参数通常没有固定格式

两者的用途区别:

  • 系统命令: 命令文件一般在安装操作系统一起安装,用于辅助操作系统本身的管理。

  • 应用程序: 应用程序一般需要在操作系统之外另行安装,提供相对独立操作系统的功能,有时候等同于“软件“的概念。

2、典型的应用程序的目录结构

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件/usr/sbin
应用程序配置文件/etc
日志文件/var/log
应用程序参考文档文件/usr/share/doc(主要存放软件说明文档)
应用程序手册文件/usr/local/share/man

3、常见的软件包封装类型

对于各种应用 程序的软件包,在封装时可以采用各种不同的类型,不同类型的软件包其安装方法也各不相同。

文件类型保存目录
RPM软件包扩展名为“.rpm”(常用操作系统:EHEL,Fedora、CentOS)
DEB软件包扩展名为“.deb”(常用操作系统:DeBian、Ubuntu)
源代码软件包一般为“tar.gz”、“tar.bz2”等格式的压缩包
包含程序的原始代码
绿色免安装的软件包软件包的扩展名不一,以TarBall格式居多
在压缩包内提供已编译好的执行程序文件
解开压缩包后的文件可直接使用

二、RPM包管理工具

1、RPM概述

Red-Hat Package Manager

  • 由Red Hat公司提出,被众多Linux发行版所采用

  • 建立统一的数据库文件

  • 详细记录软件包安装、卸载等变化信息

  • 自动分析软件包依赖关系

RPM软件包格式

使用RPM机制封装的软件包文件拥有约定俗称的命名格式

  • 一般命令格式:bash-4.12-15.el6_4.x86_64.rpm

(软件名:bash,软件版本:4.12,发布次数 :15,操作系统类型:el16_4,硬件架构类型 :x86_64 ,后缀名:rpm格式)

image-20220511222609404

2、RPM命令格式

RPM命令能够实现几乎所有对RPM软件包的管理功能

执行“man rpm” 命令可以获得关于rpm命令的详细帮助信息

rpm命令功能

  • 查询、验证RPM软件包的相关信息

  • 安装、升级、卸载RPM软件包

  • 维护RPM数据库信息等综合管理操作

3、查询RPM软件包的信息

3.1 查询已安装的RPM软件信息

格式: rpm -q【子选项】 软件名

常用子选项

选项功能
rpm -q 软件名查询指定软件是否已安装
rpm -qa显示当前系统中以rpm方式安装的所有软件列表
rpm -qi 软件名显示已安装的指定软件的详细信息
rpm -ql 软件名显示已安装的指定软件的文件列表
rpm -qc 软件名列出已安装的指定软件的配置文件
rpm -qd 软件名列出已安装的指定软件的软件包文档所在位置
rpm -qR 软件名列出已安装的指定软件的依赖的软件包及文件
rpm -qF 文件或目录查询已安装的指定软件属于哪个安装包
rpm -qf 文件或目录查看指定的文件或目录时哪个软件包所安装的

实例1:查看指定软件是否安装:rpm -q 软件名

image-20220511224512415

实例2:显示当前系统中以RPM方式安装的所有软件:rpm -qa 或rpm -qa 软件名

image-20220511225337497

实例3:显示已安装的指定软件的详细信息:rpm -qi 软件名

image-20220511225541831

实例4:查看已安装的指定软件的文件列表:rpm -ql 文件名

image-20220511230508891

实例5:查看已安装的指定软件的配置文件所在位置: rpm -qc 文件名

image-20220511230712153

实例6:查看已安装的指定软件的文档所在位置:rpm -qd 文件名
image-20220511230949644
实例7:查看已安装的指定软件的依赖的软件包及文件 :rpm -qR

image-20220511231205561 **实例8:查看已安装的指定软件属于哪个安装包:rpm -qF 软件名** image-20220511231333976

实例9:查看指定的文件或目录是哪个软件包所安装的:rpm -qf 绝对路径
image-20220512181015593

3.2 查询未安装的RPM软件包的文件中的信息

格式:rpm -qp【子选项】 RPM包文件名(绝对路径的软件包名)

常用子选项

选项功能
rpm -qpi RPM包文件名查询指定软件包的详细信息
rpm -qpl RPM包文件名查询指定软件包的文件列表
rpm -qpc RPM包文件名查询指定软件包的配置文件的位置
rpm -qpd RPM包文件名查询指定软件包的文档的位置

实例1:查询指定软件包的详细信息:rpm -qpi 绝对路径的软件包名称

image-20220512110845640

实例2:查询指定软件包的文件列表:rpm -qpl 绝对路径的软件包名

image-20220512111028598

实例3:查询指定软件包的配置文件的位置:rpm -qpc 绝对路径的软件包名

image-20220512111331163

实例4:查询指定软件包的帮助文档的位置:rpm -qpd 决对路径的软件包名

image-20220512111502618

4、安装、升级、卸载RPM软件包

格式:rpm 【选项】 RPM包文件

常用选项

选项功能
-i安装一个新的RPM软件包
-v显示软件安装过程中的详细信息
-e卸载指定名称的软件包
-h在安装或升级软件过程中,以“#”号显示安装进度
-U升级某个软件包,若未安装过,则进行安装
-F升级某个软件包,若未安装过,则放弃安装
–force强制安装某个软件包,比如要安装版本更久的软件包
–nodeps在安装或升级、卸载一个软件包时,不检查与其它软件包的依赖关系(会导致软件无法使用)

实例:安装一个软件包:rpm -ivh 绝对路径加软件包名

注意:如果有依赖包的话,它会给你显示出来,但是不会帮你安装,需要自己手动安装依赖包。

image-20220512112112396

实例:卸载一个软件包 :rpm -evh 软件名
image-20220512112311016

5、维护RPM数据库

5.1、 重建RPM数据库,当RPM数据库发生损坏,可通过重建RPM数据修复

基本格式:

rpm --rebuilddb 或rpm --initdb

5.2 导入验证公钥,在没有导入用于数字签名的公钥文件之前,安装光盘中的一部分RPM软件包时会报错,需要向RPM数据库中导入位于光盘跟目录下的公钥文件。

基本格式:

mount /dev/cdrom /mnt/ #先挂载cdrom

rpm --import /mnt/RPM-GPG-KEY-CentOS-7 #导入公钥

6、解决软件包依赖关系的方法

6.1 安装有依赖关系的多个软件时

  • 被依赖的软件包需要先安装
  • 可同时制定多个 .rpm包文件进行安装

6.2 卸载有依赖关系的多个软件时

  • 依赖其他的程序的软件包需要先卸载
  • 可同时制定多个软件名进行卸载

6.3忽略依赖关系

  • 结合“ - -nodeps”选项,但可能会导致软件异常

三、yum安装

1、什么是yum

  • yum(Yellow dog Updater Modified)是一个在Fedora和RedHat以及SUSE中的shell前段软件包管理器。

  • 基于RPM包管理,能够从制定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,不需要频繁地一次次下载安装。

  • yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁又好记。

2、配置本地yum源仓库

配置步骤: 因为是需要创建本地源,所以需要进行将硬盘挂载到本地目录/mnt:mount /dev/sr0 /mnt ,再进入/etc/yum.repos.d/ 目录,在创建一个备份目录:mkdir ydq.bak ,创建好备份目录后,那就需要将网络源的配置进行移动备份,mv *.repo ydq.bak 。备份之后再使用vim进行编辑创建本地源配置:[ydq] name=ydq baseurl=file:///mnt enabled=1 gpgcheck =0,配置好后保存退出后进行删除更新缓存:yum clean all && yum makecache.

配置思路: yum如果需要使安装包的话,使用的安装包都是从网络源进行下载下来的,如果有没网络,就无法下载网络源的安装包,所以需要进行本地源的配置。

当我们进行下载的时候,会在缓存中进行下载,当网络断开时,无法进下载。配置了本地源后,会进行删除更新缓存。然后再进行安装时,就会从本地源安装。

3.1 配置虚拟机,要将已连接勾选上,这样才可以刻入光盘到指定目录。

image-20220512141059244

3.2 挂载磁盘到指定目录下

查看挂载点:df -h

将某个盘挂载到目录下面:mount /dev/sr0 /mnt/ (j将硬盘sr0挂载到目录/mnt目录下)

注意:最好挂载的目录是空的,原来的数据被隐藏,一个挂载点同时只能挂载一个设备。

image-20220512142227471

3.3 切换到 yum.repo.d目录,新建一个文件夹,再将自带的仓库移走

image-20220512142955249

3.4 新建yum仓库

image-20220512144303193

3.5 删除yum缓存并更新(至此,yum本地源已创建完成)

image-20220512144613634

注意:生产环境中安装服务没有本地源也没有在线源,你怎么去安装带有依赖包的服务?下载需要网络源才可以下载。基本初始的linux都是具有网络源,前面有配置本地源的步骤,将上述步骤还原就是网络源。注意上处的yum缓存并更新

yum   -y  install   包名   --downloadonly    --downloaddir=/home/ydq     

#下载RPM包到指定目录

image-20220512170557959

image-20220512170614385

3、yum常用命令使用

yum   -y   install   软件名                 #安装、升级软件包,“ -y ”选项表示自动确定下载依赖

yum   -y    remove    软件名             #卸载软件包,可自动解决其依赖关系

yum   -y    update      软件名           #升级软件包

实例1:下载lynx软件

image-20220512170903380

实例2:下载lynx软件

image-20220512171140593

实例3:升级lynx软件

image-20220512171516593
yum   list                 #查询软件包列表

yum   list   installed            #查询系统中已安装的软件包

yum   list   available            #查询仓库中尚未安装的软件包

yum   list    updates             #查询可以升级版本的软件包

实例:逐个显示各种软件包。

image-20220512171932143
yum     info   软件名                    #查询软件包的描述信息

实例:查询lynx的软件包描述信息

image-20220512172105838
yum     search   [all]  关键词                    #根据某个关键词来查找相关的软件包

实例:根据lynx关键字来查询相关的包

image-20220512172328929
yum    whatprovides     命令                     #查询命令属于哪个软件包

实例:查询ifconfig命令属于哪个软件包

image-20220512172558410

四、源代码编译安装

1、源代码编译概述

使用源代码优点

  • 获得最新的软件版本,及时修复bug
  • 根据用户需要,灵活定制软件功能

应用场合举例

  • 安装较新版本的应用程序时
  • 当前安装的程序无法满足需求时
  • 需要为应用程序添加新的功能时

2、编译安装的基本过程

image-20220512174051103
  • 前提:下载好源代码安装的包文件

  • 第一步:tar解包

使用解压命令:

tar -zxvf / jxvf   解压的文件   -C   解压到的路径
  • 第二步: 进入解压后的包的目录,配置软件模块(安装路径、开启或关闭模块功能、管理服务进程的用户设定)
./configure  --prefix=目标路径(此软件安装到哪里去)
  • 第三步:编译(将源代码转换为可执行的程序)

使用make将源代码翻译成二进制语言

  • 第四步:安装

make install 进行安装

3、案例:编译安装apache服务

3.1 准备工作

3.1.1 关闭防火墙和核心防护

①关闭防火墙

image-20220514220854707

②关闭核心防护

image-20220514221715804

image-20220514221827075

3.1.2 上传压缩包

可以选择直接拉进shell,或者使用命令进行上传压缩包。上传下载的包为:lrssz,查看是否下载,没有下载可使用yum进行下载,下载之后使用rz命令(sz为下载)进行上传apache服务相关的安装包。

image-20220514222655142

3.2 解压

将上传的压缩包进行解压到指定目录:/usr/local/ 目录下

image-20220514223957240

进入到/usr/local 目录下,将解压的两个配置环境的文件夹剪切到httpd文件的srclib目录下,并且更改相应的名称(名称不要随意,跟跟下面一样)。

image-20220514224445188

3.2 配置

在开始配置之前需要进行安装运行环境,以及依赖包。(必须要配,否则后面每一步都会报错)

image-20220514225615064

进入到httpd-2.1.25目录下,使用脚本 ./configure 进行配置到指定目录。

image-20220514231116398

3.3 编译和安装

进行编译和安装

image-20220514230241396

3.4 测试验证

安装好后在local中会生成apache文件夹

image-20220514233057829

开启apache服务,验证apache服务是否成功运行

image-20220514233514917
或直接在浏览器中搜索ip地址
image-20220514233621935

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值