云计算【第一阶段(16)】安装及管理程序

目录

一、linux 应用程序基础

1.1、应用程序与系统命令的关系

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

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

二、RPM软件包管理工具

2.1、rpm命令的格式

2.2、安装,升级,卸载 rpm软件包

安装软件包

升级软件包

卸载软件包

查询软件包 

2.2.1、查询已安装的rpm软件信息

2.2.2、查询未安装的rpm软件信息

2.2.3、维护RPM数据库(不怎么用,了解)

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

四、源代码编译概述

4.1、编译安装过程

五、yum安装

5.1、本地源配置

5.1.1、流程步骤

5.1.2、具体步骤

5.2、配置阿里源

5.3、yum命令


一、linux 应用程序基础

当我们主机安装linux操作系统 时候,也会同时安装一些软件或网络服务等等,但是随着系统一起安装的软件包毕竟他是少数的,
能够实现的功能也是有限的,那么我们相拥为主机提供更多更丰富的功能的时候, 就需要安装新的程序了。

1.1、应用程序与系统命令的关系

在Linux操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下描述来对两者进行区别。

文件位置

  • 系统命令:应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中。对于内部命令,常集成在 Bash 程序内,而不是独立地执行文件;
  • 应用程序:应用程序的执行文件通常放在/usr/bin、/usr/sbin 和/usr/local/bin、/usr/local/sbin 等目录中

主要用途

  • 系统命令:命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理
  • 应用程序:应用程序一般需要在操作系统之外另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念

适用环境

  • 系统命令:命令只在字符操作界面中运行。
  • 应用程序:应用程序可能会用到图形界面,形式多样

运行格式

  • 系统命令:命令行大多适用于“命令字选项参数”形式的一般格式;
  • 应用程序:应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义

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

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

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

  • RPM 软件包:这种软件包文件的扩展名为“.rpm”,只能在使用 RPM(RPM Package Manager,RPM 软件包管理器)机制的 Linux 操作系统中安装,如 RHEL、Fedora、 CentOS 等。RPM 软件包一般针对特定版本的操作系统量身定制,因此依赖性较 强。安装 RPM 软件包需要使用操作系统中的 rpm 命令。 
  •  DEB 软件包:这种软件包文件的扩展名为“.deb”,只能在使用 DPKG(Debian Package,Debian 包管理器)机制的 Linux 操作系统中进行安装,
    如 Debian、Ubuntu 等。安装 DEB 软件包需要使用操作系统中的 dpkg 命令
  •  源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成“.tar.gz” 或“.tar.bz2”等格式的压缩包文件,因多数使用 tar 命令打包而成,
    所以经常被称为 “TarBall”。安装源代码软件包需要使用相应的编译工具,如 Linux 中的 C 语言编译 器 gcc。因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译
  • 附带安装程序的软件包:这种软件包的扩展名不一,但仍以 TarBall 格式的居多。 软件包中会提供用于安装的可执行程序或脚本文件,
    如 install.sh、setup 等,有时 候会以“.bin”格式的单个安装文件形式出现。安装时只需运行安装文件就可以根据 向导程序的提示完成安装操作。 开放源代码的自由软件绝大多数选择以 TarBall 的形式发布,而 RPM 软件包、DEB 软件包等则使用了二进制的文件格式,代码相对比较封闭。
文件类型保存目录说明
RPM软件包/var/lib/rpm扩展名为".rpm"
DEB软件包/var/lib/deb扩展名为“.deb”
源代码软件包/usr/src包含程序的原始代码,软件包的扩展名不一,以TarBall格式的居多
绿色免安装的软件包-在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用

二、RPM软件包管理工具

全称:Red-Hat Package Manager
由RedHat公司提出,被众多linux发行版所采用

  1. 建立统一的数据库文件
  2. 详细记录软件包安装,卸载等变化信息
  3. 自动分析软件包依赖关系

软件素材参考:http://www.rpm.org

2.1、rpm命令的格式

rpm命令能够实现几乎所有对rpm软件包的管理功能
执行 "man rpm"命令可以获得关于rpm命令的详细帮助信息

  1. 查询,验证rpm软件包的相关信息
  2. 安装,升级,卸载rpm软件包
  3. 维护rpm数据库信息等综合管理操作

rpm 【选项】 rpm包文件

2.2、安装,升级,卸载 rpm软件包

安装软件包

  • -i:安装一个新的软件包。
  • -v:详细模式,显示更多信息。
  • -h:显示安装进度。

升级软件包

  • -U 或 --upgrade:更新一个已安装的软件包到一个新版本,如果新版本不存在则不会安装旧版本。
  • -F 或 --freshen:仅当软件包的版本比已安装的版本新时才更新软件包。
  •  辅助选项

卸载软件包

  • -e 或 --erase:卸载指定的软件包。

查询软件包 

2.2.1、查询已安装的rpm软件信息

常用选项

  • -q
  • qi
  • -ql
  • -qc
  • -qd
  • -dR
  • -gd 
命令描述示例
rpm -q 软件名查询指定软件是否已安装rpm -q elinks lynx
rpm -qi 软件名显示已安装的指定软件的详细信息rpm -qi samba-client
rpm -ql 软件名显示已安装的指定软件的文件列表rpm -ql wget
rpm -qc 软件名列出已安装的指定软件的配置文件rpm -qc httpd
rpm -qd 软件名列出已安装的指定软件的软件包文档所在位置rpm -qd httpd
rpm -qR 软件名列出已安装的指定软件的依赖的软件包及文件rpm -qR wget
rpm -qF 文件或目录查询已安装的指定文件或目录属于哪个安装包rpm -qF yum
rpm -qa显示当前系统中以rpm方式安装的所有软件列表`rpm -qa

或者

rpm -qa | grep -i postfix         #查询软件postfix是否已安装
rpm -qf /usr/bin/passwd   #查看指定的文件或目录是哪个软件包所安装的

2.2.2、查询未安装的rpm软件信息
命令描述示例
rpm -qpi查询指定软件包的详细信息rpm -qpi /mnt/Packages/ethtool-4.8-10.el7.x86_64.rpm
rpm -qpl查询指定软件包的文件列表rpm -qpl /mnt/Packages/ethtool-4.8-10.el7.x86_64.rpm
rpm-qpc 查询指定软件包的配置文件rpm -qpc /mnt/Packages/elinks-0.12-0.37.pre6.el7.0.1.x86_64.rpm
rpm -qpd 查询指定软件包的软件包文档的位置rpm -qpd /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm
2.2.3、维护RPM数据库(不怎么用,了解)

1.重建RPM数据库
当RPM数据库发生损坏,可通过重建RPM数据库修复
    rpm --rebuilddb   或者   rpm --initdb

2.导入验证公钥
在没有导入用于数字签名验证的公钥文件之前,安装光盘中的一部分RPM软件包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件
mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-Centos-7

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

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

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

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

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

忽略依赖关系

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

四、源代码编译概述

使用源代码安装软件的优点

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

应用场合举例

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

Tarball封包

  • .tar.gz和.tar.bz2格式居多
  • 软件素材参考:http://sourceforge.net

完整性校验

  • md5sum校验工具

[root@localhost # md5sumhttpd-2.4.25.tar.gz

24fb8b9e36cf131d78caae864fea0f6a httpd-2.4.25.tar.gz

  • 确认源代码编译环境

需安装支持c/c++程序语言的编译器如:

gcc, gcc++, make,.......

4.1、编译安装过程

下载源代码安装包文件
步骤1:tar解包
用途:解压并释放源代码包到指定的目录
步骤2:./configure 配置
用途:设置安装目录,安装模块等选项
步骤3:make编译
用途:生成可执行的二进制文件
步骤4:make install 安装
用途:复制二进制文件到系统,配置应用环境
测试及应用,维护软件

下面具体分析

  • tar解包

习惯上将软件包释放到/usr/src/目录
解包后的源代码文件位置
/usr/src/软件名-版本号/
示例
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -c /usr/src/
解压源代码包,并指定释放目录

  • /configure配置

使用源码目录中的configure脚本
执行"/configure--help"可查看帮助
典型的配置选项
--prefix软件安装目录
示例
[root@localhost~]#cd/usr/src/httpd-2.4.25/
[root@localhost httpd-2.4.25]# /configure --prefix-lusr/locallapache
若不指定任何配置选
项,将采用默认值 17

  • make编译与安装

编译
执行make命令
安装
执行makeinstall命令
示例
[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]# make i install

  • 测试,应用,维护软件

使用前
[root@localhost httpd-2.4.25]# vim /usr/locallapache/conf/httpd.conf
启动apache
[root@localhost httpd-2.4.25]#/usr/locallapache/bin/apachectl start
运行lynx hx127.0.0.1查看本机apache运行状态

五、实验

安装httpd

yum remove /etc/httpd
cd /home
拉3个文件 httpd-2.4.25.tar.bz2  package.tar.gz apr-devel-1.4.8-7.el7.x86_64.rpm
tar -xjvf
tar -xzvf package.tar.gz
cd package/
rpm -Uvh *.rpm
cd ..
rpm  -ivh apr-devel-1.4.8-7.el7.x86_64.rpm
cd httpd-2.4.25/
./configure --prefix=/usr/local/apache
make -j 2 && make install
-----------------------------------
cd /usr/local/apache/bin
ls

五、yum安装

安装源代码软件包需要编译安装,需要安装支持c和c++程序语言的编译器,如gcc、gcc-c++、make如果使用rpm方式安装,则需要先安装多个依赖包,这样会很繁琐。这里可以使用 yum方式进行一键安装。

5.1、本地源配置

在局域网中我们无法上网,我们需要配置本地源,本地源(Local Repository)在Linux系统中通常指的是一个预先存储了软件包和依赖项的本地目录或文件系统,这些软件包和依赖项可以用于在没有网络连接或需要快速安装软件包的情况下进行安装。

安装CentOS后,可以将ISO文件挂载到一个目录,并配置该目录作为yum的本地源,那个ios包含了操作系统安装所需的所有软件包和依赖。

也就是CentOS-7.6-x86_64-DVD-1810.iso文件本身不包含源地址,但它包含的软件包可以被配置为本地yum源,从而在没有网络连接的情况下进行软件包的安装和管理。

5.1.1、流程步骤

1.先挂载sr0(和cdrom是一个东西)注意打开光驱

2.切换到yum.repos.d网络源下,转移到其他目录

3.编辑local.repo

4.删除缓存并且更新

5.1.2、具体步骤

mount /dev/cdrom  /mnt

挂载是将文件系统或存储设备连接到Linux目录结构的过程,挂载允许用户在不同的目录之间共享数据挂载是Linux系统中文件管理的一部分,通过挂载,硬件设备才能在Linux系统中被使用。

挂载点是一个特定的目录,通常位于/mnt/media目录下。

注意打开光驱

挂载之后原本在/mnt里数据还在,但是看不见了,不建议有数据,并且

一个挂载点同一时只能挂载一个设备
 

cd /etc/yum.repos.d/

mkdir repos.back

mv  *.repo   repos.back

yum.repos.d是yum仓库的配置文件,每个 .repo 文件都定义了一个或多个yum仓库。这些仓库可以是本地的(例如从本地ISO文件或目录),也可以是远程的(例如从互联网上的某个服务器)

当然初始的都是网络的,我们现在需要自己配置本地的

会将他们转移到一个其他文件在这里我们是转移到了repos.back

vim local.repo

我们写一个本地仓库

格式

[xxxxx]							#仓库类别
name=xxx						#仓库名称
baseurl=file:///mnt				#指定URL 访问路径为光盘挂载目录      本地yum源
enabled=1						#开启此yum源,此为默认项,可省略
gpgcheck=0						#不验证软件包的签名

因为我们将ios安装包什么的内容挂载到了/mnt

我们配置就mnt,前面file://是类似于http:// 后面是位置 /mnt

yum clean all && yum makecache        

最后需要刷新一下,删除yum缓存并更新

本地源不能更新,固定了。

我们可以安装一个

yum install tree -y 测试一下

5.2、配置阿里源

第一步:将创建的local.repo文件移动到local.bak目录下(也可以是别的备份目录)
第二步:将可以连外网的系统打开,执行

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

将阿里云镜像下载到/etc/yum.repos.d/目录下

第三步:刷新缓存,yum clean all && yum makecache #清理缓存并且生成新的缓存

然后就可以直接用阿里云仓库里的软件包安装文件了,都是最新的软件包,但是必须有网的环境下才可以使用。如果想在没有网的情况下也能使用yum仓库里的软件,就需要将阿里云仓库下载到本地,占用空间较高,可以自行参考其他内容。

5.2.1、配置优先级

当既有本地yum源又有aliyum源的时候,我们在装软件包的时候当然希望先用本地的yum源去安装,本地找不到可用的包时再使用aliyun源去安装软件,这里就涉及到了优先级的问题,
yum提供的插件yum-plugin-priorities.noarch可以解决这个问题

1.查看是否安装了yum-plugin优先级插件
rpm -qa |grep yum-plugin-

2.如果没有安装,就安装插件
yum -y install yum-plugin-priorities.noarch

3.查看插件是否启用
cat /etc/yum/pluginconf.d/priorities.conf

[main]:
enabled = 1 # 1为启动,0 为禁止

4.修改本地yum源优先使用
vi local.repo

[local]
name=local
baseurl=file:///mnt/
enabled=1
gpgcheck=1 
priority=1 #数字越小优先级越高[epel]
name=aliyum
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2

 5.验证安装包的数量
执行yum repolist all 可显示所有仓库包

5.3、yum命令

命令描述
yum -y install 软件名安装或升级软件包,-y 选项表示自动确认
yum -y remove 软件名卸载软件包,可自动解决其依赖关系
yum -y update 软件名升级软件包
yum list查询软件包列表
yum list installed查询系统中已安装的软件包
yum list available查询仓库中尚未安装的软件包
yum list updates查询可以升级版本的软件包
yum info 软件名查询软件包的描述信息
yum search [all] 关键词根据某个关键词来查找相关的软件包
yum whatprovides 命令查询命令属于哪个软件包
yum install 包名 -y --downloadonly --downloaddir=/tmp/下载 RPM 包到指定目录(例如 /tmp/

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

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

相关文章

Android OTA 升级基础知识详解+源码分析

前言: 本文仅仅对OTA升级的几种方式的概念和运用进行总结,仅在使用层面对其解释。需要更详细的内容我推荐大神做的全网最详细的讲解: https://blog.csdn.net/guyongqiangx/article/details/129019303?spm1001.2014.3001.5502 三种升级方式…

前端高级架构师课程(总共111门课程,1150GB)

由阿里P8前端架构师亲自精心筛选整理的全网最新最具价值的前端进阶学习课程! 培训机构原版教程! 课程知识点和一线大厂完美匹配! 所有课程资源完整成套,不残缺,不拼凑,不拆开乱发! 这系列课程包…

JavaScript-拓展简单和引用数据类型

学习目标: 掌握拓展简单和引用数据类型 学习内容: 拓展-术语解释拓展-基本数据类型和引用数据类型 拓展-术语解释: 拓展-基本数据类型和引用数据类型: 简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型…

如何快速在一台新电脑上安装 Python 环境

一、下载miniconda 1.下载 我们可以在清华大学开源软件镜像站下载最新版本的miniconda。如:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Windows-x86_64.exe 2.安装 双击exe文件安装,如果没有特殊的需求&#x…

UML详解

1.what is the UML UML 全称是 Unified Modeling Language(统一建模语言),它以图形的方式来描述软件的概念 2.它存在的目的 UML 的目标是通过一定结构的表达,来解决现实世界到软件世界的沟通问题。 3.什么是模,…

127.0.0.1与本机IP地址的区别

大家好,今天我们来聊聊一个在网络世界中常常被提及,但可能对于非专业人士来说还有些模糊的概念——127.0.0.1与本机IP地址。这两个地址在网络通信中都扮演着重要的角色,但它们之间又有着怎样的区别呢?让我们一起来探究一下。 一、…

《庆余年》在前,《玫瑰的故事》在后,阅文发现“新大陆”?

奋笔疾书的网文作家,即将迎来网络文学的高光时代。 近日,阅文集团于安徽省举办2024阅文创作大会。现场数据显示,2023年阅文活跃作家平均收入增长32%,创造近五年最大增幅。其中,中位数作家收入增幅达135%,已…

K8s的资源对象

资源对象是 K8s 提供的一些管理和运行应用容器的各种对象和组件。 Pod 资源是 K8s 中的基本部署单元,K8s通过Pod来运行业务应用的容器镜像 Job 和 CronJob 资源用于执行任务和定时任务,DaemonSet 资源提供类似每个节点上守护进程, Deployment…

Parallelize your massive SHAP computations with MLlib and PySpark

https://medium.com/towards-data-science/parallelize-your-massive-shap-computations-with-mllib-and-pyspark-b00accc8667c (能翻墙直接看原文) A stepwise guide for efficiently explaining your models using SHAP. Photo by Pietro Jeng on Unsplash Int…

【调试记录】:windows查看一个文件夹下(多个子文件夹)每个子文件夹中文件的数量分别是多少

查看文件夹小所有文件的数量,包括子文件中的文件的数量 Get-ChildItem -Path "C:\path\to\your\directory" -Recurse | Measure-Object查看一个文件夹下多个子文件每个子文件夹中文件的数量分别是多少 $targetFolder "C:\path\to\your\directory&…

jquey+mybatis-plus实现简单分页功能

这篇文章介绍一下怎么通过JQuery结合mybatis-plus的分页插件实现原生HTML页面的分页效果,没有使用任何前端框架,主要是对前端知识的应用。 创建Springboot项目 Intellij IDEA中创建一个Springboot项目,项目名为pager。 添加必须的依赖包 修…

【Linux】—MySQL安装

文章目录 前言一、下载官方MySQL包二、下载完成后,通过xftp6上传到Linux服务器上三、解压MySQL安装包四、在安装目录下执行rpm安装,请按顺序依次执行。五、配置MySQL六、启动MySQL数据库七、退出,重新登录数据库 前言 本文主要介绍在Linux环境…

创建Docker容器与外部机通信(独立IP的方式)

需求:希望外部可以直接通过不同IP地址访问宿主机上的Docker容器,而不需要端口映射(同一个IP不同的端口与外部通讯),这通常涉及到在宿主机的网络层面进行更高级的配置,比如使用IP伪装(IP masquer…

团队协同渗透测试报告输入输出平台部署

目录 简介 文章来源 部署环境 文件下载 开始安装 系统初始化 免责声明 结语 简介 因应监管部需求,国内访问Docker源pull镜像开始变得复杂且困难起来了,大佬github给的在线/离线安装脚本跑了很久也无法拉取到镜像,所以将以前的镜像打…

类的继承性(Java)

本篇学习面向对象语言的第二特性——继承性。 1 .为什么需要继承 我们来举个例子:我们知道动物有很多种,是一个比较大的概念。在动物的种类中,我们熟悉的有猫(Cat)、狗(Dog)等动物,它们都有动物的一般特征(比如能够吃…

【YOLOv9改进[注意力]】在YOLOv9中使用注意力CascadedGroupAttention(2023)的实践 + 含全部代码和详细修改方式

本文将进行在YOLOv9中使用注意力CascadedGroupAttention的实践,助力YOLOv9目标检测效果的实践,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 CascadedGroupAttention 二 在YOLOv9中使用注意力CascadedGroupAttention的实…

Rcmp: Reconstructing RDMA-Based Memory Disaggregation via CXL——论文阅读

TACO 2024 Paper CXL论文阅读笔记整理 背景 RDMA:RDMA是一系列协议,允许一台机器通过网络直接访问远程机器中的数据。RDMA协议通常固定在RDMA NIC(RNIC)上,具有高带宽(>10 GB/s)和微秒级延…

云计算 | (八)基本云架构

文章目录 📚负载分布架构🐇负载分布架构🐇单机系统🐇应用、数据库分离🐇应用服务集群🐇微服务🐇负载均衡分类🐇Nginx🐇负载均衡算法⭐️轮询法⭐️随机法⭐️源地址哈希法⭐️加权轮询法⭐️加权随机法⭐️键值范围法📚资源池架构📚动态可扩展架构📚弹…

Vatee万腾平台:智能科技的领航者

随着科技的飞速发展,数字化转型已成为企业、行业乃至整个社会不可逆转的趋势。在这个变革的浪潮中,Vatee万腾平台凭借其卓越的技术实力、前瞻的战略眼光和卓越的服务品质,成为了智能科技的领航者。 Vatee万腾平台致力于为企业提供全方位的数字…

java:spring actuator扩展原有info endpoint的功能

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89437506 # 项目代码 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId&…