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

news2025/1/11 15:02:27

一、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

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

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

相关文章

OpenAI 600万天价年薪震惊网友,全美顶尖AI公司薪酬大曝光!

最近,一张美国科技大厂的薪酬表曝出,OpenAI以500万起薪领衔。初创公司给出的薪酬,竟然超过了所有大型科技公司。不过初级码农,时薪却低至85元。 顶级公司的AI工程师能挣多少钱? 最近,这张美国科技大公司的…

“非遗+全身动作捕捉设备”如何打造交互式叙事新消费场景?

在数字化时代,非遗传承渠道逐渐数字化、科技化,利用“虚拟人全身动作捕捉设备”技术提升了非遗文化的社会能见度,让非遗文化重新吸引年轻人的目光。 “虚拟人全身动作捕捉设备”,可以让虚拟人化身虚拟主持人、虚拟主播、虚拟嘉宾…

图-多叉树的直径(hard)

目录 一、问题描述 二、解题思路 1.存储结构 2.算法描述 三、代码实现 四、刷题链接 五、参考 一、问题描述 二、解题思路 1.存储结构 使用邻接表结构来存储无向图,边结点存储结构为[终点,边长(也就是权重)] 2.算法描述 从某一个结点(…

STM32开发过程中碰到的问题总结 - 3

文章目录 前言1. keil5升级到最新版本使用armV6编译工具链编译不通过2. 最新的keil用Jlink调试失败3. 移动了目录后跑不起来了4. 串口兼容了GNU 和arm只会,编译出来的成果物,串口输出不正常5.STM32下哪些IO口可以作为中断触发去使用6. 触发GPIO10的外部中…

Python机器学习完整流程:从数据清洗到推理落地

目录 一、引言 二、数据清洗 数据加载与初步探索 缺失值处理 异常值处理 特征编码与转换 数据集划分 三、模型训练 四、模型文件生成 五、模型部署与推理落地 六、总结 一、引言 在当今数据驱动的时代,机器学习已成为解决复杂问题的有力工具。而…

Django期末重点

思维导图 一、Djanog框架基础 MVT设计模式(model模型【操作数据库】、template模板【页面展示】、view视图【处理请求和调用模型模板】) 二、Django项目框架搭建 创建项目骨架 django-admin startproject 项目名启动服务 (1)p…

Eigne库安装及使用教程

文章目录 1.Eigne库介绍2.Eigne库安装3.Eigne库使用4.some examples5.参考文献 1.Eigne库介绍 Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C库,它里面包含了很多算法。它的License是MPL2。它支持多平台。 Eigen采用源码的方式提供给用户使用,在…

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日,北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单,其中北京环球赛乐科技有限公司(简称赛氪网)脱颖而出,再度展现其在创新领域的卓越实力! 作为早已跻身“高企之光”行列的佼佼…

【x264】滤波模块的简单分析

【x264】滤波模块的简单分析 1. 滤波模块概述1.1 自适应边界1.2 自适应样点级滤波器1.3 滤波过程 2. 函数入口(fdec_filter_row)2.1 去块滤波(x264_frame_deblock_row)2.1.1 强滤波函数(deblock_edge_intra&#xff09…

Ubuntu20.04-ROS:Noetic安装

根据Ubuntu系统来选择对应的ros版本,在Ubuntu20.04上安装ROS-Noetic为例说明下如何安装ros 一 设置ROS源 / 终端输入 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.lis…

语言大模型:开启自然语言处理的新篇章

随着人工智能技术的飞速发展,自然语言处理(NLP)领域取得了显著的成果。其中,语言大模型(Language Models)作为近年来崛起的一种新型神经网络模型,已经在文本生成、机器翻译、情感分析等多个NLP任…

计算机专业毕设-校园二手交易平台

1 项目介绍 基于SpringBoot的校园二手交易平台:前端Freemarker,后端 SpringBoot、Jpa,系统用户分为两类,管理员、学生,具体功能如下: 管理员: 基本功能:登录、修改个人信息、修改…

Web应用安全测试-综合利用(三)

Web应用安全测试-综合利用(三) XML注入 漏洞描述 可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进…

内行人说真话,家用空气净化器对灰尘、毛絮的作用到底如何?

在日常生活中,打扫房间常常令人头疼,尤其是地面和家具上那些似乎永远清理不完的浮灰和毛絮。有时候,即使我们用吸尘器、扫地机器人等不断清扫,灰尘和毛絮仍旧存在。特别对于养宠物的家庭来说,清洁工作更是一项挑战&…

gitlab 身份验证手机号验证没86

处理方案 在浏览器中摁 【F12】打开控制台,选择网络模块,找到手机号列表的请求,请求是 https://gitlab.com/-/countries,右击数据区域点击【替换内容】如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/di…

三分钟了解链动3+1模式

在电商领域的营销策略中,链动31模式以其独特的魅力和优势,吸引了众多商家的目光。下面,我们将对这一模式进行深度剖析,并探讨其相较于链动21模式的优势所在。 一、身份设置与奖励机制 链动31模式在身份设置上分为三种&#xff1…

【React】Table表头纵向展示

默认表格展示: 展示目标: 环境 antd: ^5.14.1react: ^18 拟定数据 - columns const columns [{title: "品牌",dataIndex: "brand",key: "brand",width: 100,},{title: "Star",dataIndex: "star&quo…

VS C++常用错误与解决方法

无法找到 v143 的生成工具(平台工具集 “v143”) 若要使用 v143 生成工具进行生成,请安装 v143 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标…

HarmonyOS 开发知识:一个基于 emitter 封装了一个便捷的 EventBus 事件通知

引言 鸿蒙提供提供了在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。 ohos.events.emitter Emitter 封装前使用:e…

红黑树插入数据的底层详解

红黑树定义 1. 每个结点不是红色就是黑色 2. 根节点是黑色的 3. 如果一个节点是红色的,则它的两个孩子结点是黑色的 4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑色节点 5. 每个叶子结点都是黑色的(此…