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在安装或升级、卸载一个软件包时,不检查与其它软件包的依赖关系(会导致软件无法使用)

实例:安装tree

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.hqwc.cn/news/298200.html

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

相关文章

Codeforces Round 917 (Div. 2)(A~D)(又是数学题)

A - Least Product 题意&#xff1a; 思路&#xff1a;若有奇数个负数&#xff0c;则不需要任何操作。若存在0&#xff0c;也不需要任何操作。其余情况将任意一个数改为0即可。 #include <bits/stdc.h> using namespace std; void solve() {int n;cin >> n;int …

Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

0. 引言 之前我们讲到nginx的一大核心作用就是实现企业安全防护&#xff0c;而实现安全防护的原理就是通过部署https证书&#xff0c;以此实现参数加密访问&#xff0c;从而加强企业网站的安全能力。 nginx作为各类服务的统一入口&#xff0c;只需要在入口处部署一个证书&…

详解Vue3中的插槽(slot)

本文主要介绍Vue3中的插槽&#xff08;slot&#xff09;。 目录 一、在普通写法中使用插槽&#xff08;slot&#xff09;作用域插槽默认插槽 二、在setup写法中使用插槽&#xff1a;注意事项 在Vue3中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于在父组件中向子组件…

Leetcode162. 寻找峰值

Every day a Leetcode 题目来源&#xff1a;162. 寻找峰值 解法1&#xff1a;STL 代码&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {return max_element(nums.begin(), nums.end()) - nums.begin();} };复杂度分析&#xff1…

【SD】差异值 生成 同一人物 制作 表情包 【1】

说明&#xff1a;只对AI生成的人物&#xff0c;效果稳定。 Reference差异值 生成表情 首先生成一张图片。 测试命令&#xff1a;1 man,chibi,full body, 模型&#xff1a;envyclarityxl02_v10.safetensors [f6c13197db] 种子&#xff1a;2704867166 》》测试命令&#xff1a…

基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 包围盒构建 4.2 点云压缩 4.3 曲面重建 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................…

【附三菱 MX OPC Server 6.04的安装包】MX-OPC下载以及用GX Works2和组态王进行仿真连接

使用MX-OPC来完成三菱和组态王的仿真连接。 文章目录 目录 文章目录 软件下载 1.OPC设置 2.GX Works 2 设置 3.GX Works 2 和OPC 连接测试 4.和组态王进行仿真连接 5.安装OPC后&#xff0c;GX Works2 无法打开 提示堆栈不足 6.收尾&#xff08;组态王变量的删除&#xff0…

Python - 深夜数据结构与算法之 Graph

目录 一.引言 二.图的简介 1.Graph 图 2.Undirected graph 无向图 3.Directed Graph 有向图 4.DFS / BFS 遍历 三.经典算法实战 1.Num-Islands [200] 2.Land-Perimeter [463] 3.Largest-Island [827] 四.总结 一.引言 Graph 无论是应用还是算法题目在日常生活中比较…

YOLOv7(目标检测)入门教程详解---检测,推理,训练

目录 一.前言 二.yolov7源码下载 三.detect&#xff08;检测&#xff09; 四.Train&#xff08;训练&#xff09; 数据准备&#xff1a; labellmg: 配置训练的相关文件 配置数据集文件 正式训练&#xff1a; 推理&#xff1a; 推理效果&#xff1a; 五.总结 一.前言 …

【C++练级之路】【Lv.5】动态内存管理(都2023年了,不会有人还不知道new吧?)

目录 一、C/C内存分布二、new和delete的使用方式2.1 C语言内存管理2.2 C内存管理2.2.1 new和delete操作内置类型2.2.2 new和delete操作自定义类型 三、new和delete的底层原理3.1 operator new与operator delete函数3.2 原理总结3.2.1 内置类型3.2.2 自定义类型 四、定位new表达…

docker笔记3-dockerfile定制镜像

dockerfile的组成 1.基础镜像信息&#xff0c;指定发行版本 FROM centos 2.制作镜像操作指令 RUN yum install openssh-server -y 3.容器启动指令执行 CMD [/bin/bash] dockerfile常用指令 指令 含义FROM指定基础镜像MAINTAINER指定维护人信息&#xff0c;可省略RUN基于基础…

靠谱免费的MAC苹果电脑杀毒软件CleanMyMac X2024

您是否曾经为Mac电脑的性能下降、存储空间不足而烦恼&#xff1f;是否希望有一个简单而高效的解决方案来优化您的Mac系统&#xff1f;那么&#xff0c;我向您介绍一款非常出色的工具&#xff1a;CleanMyMac X。它能够轻松处理这些问题&#xff0c;并让您的Mac恢复到最佳状态。 …