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

一.Linux应用程序基础

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

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

两者的用途区别:

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

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

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

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

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

二.rpm包管理工具

1.rpm概述

Red-Hat Package Manager

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

建立统一的数据库文件

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

自动分析软件包依赖关系

rpm软件包格式

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

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

2.rpm命令格式

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

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

rpm命令功能:

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

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

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

3.查询rpm软件包的信息

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

格式: rpm  -q  [子选项]  软件名

常用子选项

选项功能
rpm  -q对已安装的软件进行查询
rpm  -ql  软件名查看某软件的所有安装目录
rpm  -qc  软件名查看软件的配置文件     
rpm  -q  软件名查看软件是否安装
rpm  -qa(all)

显示当前系统中以 rpm 方式安装的所有软件列表

rpm  -qi  软件名

查看指定软件包的名称、版本、许可协议、用途描述等详细信息

rpm  -qd  文件名列出已安装的指定软件的软件包文档所在位置
rpm  -qf(file)  文件名

查看指定的文件或目录是由哪个软件包所安装的

rpm  -qF  文件名查询已安装的指定软件属于哪个安装包
3.2查询未安装的rpm软件的文件中的信息

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

选项说明
rpm  -qpd查询未安装指定软件包的文档位置
rpm   -qpi查询未安装指定软件包的完整名称详细信息
rpm   -qpl查询未安装指定软件包的文件列表
rpm  -qpc查询未安装指定软件包的配置文件位置

4.安装、升级、卸载rpm软件包

格式:rpm  [选项]  rpm包文件

常用选项

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

5.维护rpm数据库

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

基本格式:

rpm --rebuilddb 或rpm --initdb

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

基本格式:

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

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

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

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

被依赖的软件包需要先安装

可同时制定多个 .rpm包文件进行安装

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

依赖其他的程序的软件包需要先卸载

可同时制定多个软件名进行卸载

③忽略依赖关系

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

三.yum安装

1.什么是yum

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

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

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

2.如何实现安装服务

元信息是一个文件 里面记录了安装包的路径  安装包的依赖关系

  1. 客户端根据配置文件找到服务端
  2. 客户端将元信息下载到本地仓库(元信息:安装包的位置,以及安装的依赖关系)
  3. 根据元信息去下载对应的安装包到本地后,然后安装
  4. 安装完成后再删除安装包

3.配置本地yum源仓库

1.先挂载

2.切换到指定目录 ,新建一个文件夹,将自带的仓库移走,目的是减少网络源的干扰

3.新建yum仓库

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

5. 检验是否安装成功

4.yum常用命令使用

指令用途
yum  -y  install 软件名安装升级软件包
yum  -y  remove  软件名卸载软件包,可自动解决其依赖关系
yum  -y  update  软件名 升级软件包  

“ -y ” 选项表示自动确定

指令用途
yum   list查询软件包列表
yum  list   installed查询系统中已安装的软件包
yum  list  available查询仓库中尚未安装的软件包
yum  list  updates查询可以升级版本的软件包

指令用途
yum  info  软件名查询软件包的描述信息
yum  search  all(关键字)  软件名根据某个关键字来查找相关的软件包
yum  whatprovides  命令查询命令属于哪个软件包

四.源代码编译安装

1.源代码编译概述

使用源代码优点

获得最新的软件版本,及时修复bug

根据用户需要,灵活定制软件功能

应用场合举例

安装较新版本的应用程序时

当前安装的程序无法满足需求时

需要为应用程序添加新的功能时

2.编译安装的基本过程

源码编译安装

./configure

安装准备工作

1.选择装在哪里

2.检查编译环境

3.选择安装模块,默认安装,额外的一些软件功能

./configure  --help  看到可以安装的模块

make   make  -j 2 代表使用两核cpu编辑

将所有的源代码翻译成二进制,会形成一个绿色的可执行的文件

make install

将执行的文件,及相关的一些依赖文件拷贝到之前的指定的目录中

关闭防火墙和防护

实操下载nginx

1.创建并切换到data下,下载nginx安装包

2.解压源码包

3.切换目录到他下面

4.安装编译环境需要的包

5.配置安装路径

6.编译和安装

7.简化操作,关闭防火墙和防护

8.开启服务,然后检测服务是否开启

9.测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建数字化金融生态系统:云原生的创新方法

内容来自演讲:曾祥龙 | DaoCloud | 解决方案架构师 摘要 本文探讨了金融企业在实施云原生体系时面临的挑战,包括复杂性、安全、数据持久化、服务网格使用和高可用容灾架构等。针对网络管理复杂性,文章提出了Spiderpool开源项目,…

The Cherno C++笔记 03

目录 Part 07 How the C Linker Works 1.链接 2.编译链接过程中出现的错误 2.1 缺少入口函数 注意:如何区分编译错误还是链接错误 注意:入口点可以自己设置 2.2 找不到自定义函数 2.2.1缺少声明 2.2.2自定义函数与引用函数不一致 2.3 在头文件中放入定义 …

git入门以及如何推送代码到云端

Gitee(码云)是开源中国于2013年推出的基于Git的代码托管平台、企业级研发效能平台,提供中国本土化的代码托管服务。 地址: Gitee - 基于 Git 的代码托管和研发协作平台 步骤1:创建远程仓库 在Gitee上创建一个新的远…

c# OpenCV 检测(斑点检测、边缘检测、轮廓检测)(五)

在C#中使用OpenCV进行图像处理时,可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测(Blob) 斑点检测是指在图像中找到明亮或暗的小区域(通常表示为斑点)&#…

java类和对象的思想概述

0.面向对象Object OOP——名人名言:类是写出来的,对象是new出来的 **> 学习面向对象的三条路线 java类以及类成员:(重点)类成员——属性、方法、构造器、(熟悉)代码块、内部类面向对象特征&…

【论文解读】CNN-Based Fast HEVC Quantization Parameter Mode Decision

时间:2019 年 级别:SCI 机构:南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展,远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高&#xff0…

bugku-misc-这是一张单纯的图片

附件:图片 1、查看属性 2、010 whex打开看看 可以看到html编码,将文件后缀,改成html,打开 即可

华为设备命令行操作基础

熟悉VRP命令行并且熟练掌握VRP配置是高效管理华为网络设备的必备基础。 设备初始化启动 管理员和工程师如果要访问在通用路由平台VRP上运行的华为产品,首先要进入启动程序。开机界面信息提供了系统启动的运行程序和正在运行的VRP版本及其加载路径。启动完成以后&am…

鸿蒙-ArkUI 常用布局容器对齐方式

概念 主轴:在布局容器中,默认存在两根轴,分别是主轴和交叉轴,不同的容器中主轴的方向不一样的。 在Column容器中主轴的方向是垂直方向。在Row容器中主轴的方向是水平方向。在Flex容器中可以通过direction参数设置主轴的方向&…

MySQL数据库 触发器

目录 触发器概述 语法 案例 触发器概述 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的soL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录&am…

分布式搜索elasticsearch概念

什么是elasticsearch? elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容 目录 elasticsearch的场景 elasticsearch的发展 Lucene篇 Elasticsearch篇 elasticsearch的安装 elasticsearch的场景 elasticsear…

【SpringMVC】REST(Representation State Transfer)ful开发

REST全称Representation State Transfer,表现形式状态转换 文章目录 1. 为什么提出了REST?2. RESTful入门案例案例代码修改请求方式修改成RESTful风格,并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody,Reques…

Linux下编写zlg7290驱动(3)-键盘驱动编写

2.3. 数据处理实现 执行上述代码后系统中就注册了我们的input设备,接下来我们要做的是活得键盘的键值,zlg7290多可以支持64个按键,每个按键按下后都会产生一个中断,我们写驱动是可以使用轮询不断检测是否有按键也可以触发中断来判…

云原生之深入解析基于FunctionGraph在Serverless领域的FinOps的探索和实践

一、背景 Serverless 精确到毫秒级的按用付费模式使得用户不再需要为资源的空闲时间付费。然而,对于给定的某个应用函数,由于影响其计费成本的因素并不唯一,使得用户对函数运行期间的总计费进行精确的事先估计变成了一项困难的工作。以传统云…

git分支解析

1、概述和优点 在版本控制过程中,同时会推进多个任务,为此,就可以为每个任务创建单独的分支。开发人员可以把自己的任务和主线任务分离开来,在开发自己的分支的时候不会影响主分支。 分支的好处: 同时推进多个功能开发…

CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem:Webpack5 升级后相关插件和配置更新说明

前言 项目对应的 webpack5 版本如下: npm i webpack5.89.0 -D npm i webpack-cli5.1.4 -D升级插件 说明一下,我更喜欢固定版本号,这样随机bug会少很多,更可控~ npm i postcss-loader6.1.1 -D npm i postcss-pxtorem6.0.0 -D配…

Postman创建及删除workspace工作空间

文章目录 一、Postman创建workspace工作空间二、Postman删除workspace工作空间 一、Postman创建workspace工作空间 打开Postman 点击 Workspaces → Create Workspaces 如图所示操作 工作空间创建完成 二、Postman删除workspace工作空间 点击 Workspaces → 选择要删除…

Milvus数据一致性介绍及选择方法

1、Milvus 时钟机制 Milvus 通过时间戳水印来保障读链路的一致性,如下图所示,在往消息队列插入数据时, Milvus 不光会为这些插入记录打上时间戳,还会不间断地插入同步时间戳,以图中同步时间戳 syncTs1 为例&#xff0…

uniapp使用colorUI

colorUI 微动画 | ColorUI 使用文档 1&#xff1a;把colorui里三个文件复制到自己项目中去 App.vue </script> <style> import url(colorui/icon.css); import url(colorui/main.css); import url("colorui/animation.css");-webkit-keyframes show {…

Struts2 S2-061 远程命令执行漏洞(CVE-2020-17530)复现

漏洞简介 Struts2框架是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java Servlet API&#xff0c;鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心&#xff0c;吸收了Struts框架的部分优点&#xff0c;提供了一个更加整洁的MV…