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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

注意力机制和Transformer模型各部分功能解释

文章目录 Transformer1、各部分功能解释2、通过例子解释a.输入预处理位置编码b.Encoder 的处理c.Decoder的输入Decoder的工作流程d.输出预测总结 Attention代码和原理理解 Transformer 运行机理: (1)假设我们需要进行文本生成任务。我们将已…

Java17 --- redis7缓存双写一致性

一、缓存双写一致性 如果redis中有数据:需要和数据库中的值相同。如果redis中没有数据:数据库中的值要是最新值,且准备回写redis。只读缓存。读写缓存:①、同步直写策略:写数据库后也同步写redis缓存,缓存…

计算机网络(谢希仁第六版)| 课后习题与答案 | 物理层 | 题目知识点详细分析

计算机网络(谢希仁第六版)课后习题与答案 物理层 博客只对老师给的重点进行整理,完整的课后习题答案见Gitee下载:《计算机网络教程(第6版)(微课版)》习题答案 2-5 请画出数据流1 0 1…

Java基础学习-流程控制语句-顺序结构-分支结构-循环结构

目录 顺序结构: 分支结构: if语句: 第一种格式: if第二种格式: 案例练习 if第三种格式: switch语句: 格式: switch其他知识点: 循环结构: for循环…

软件测试面试题:性能测试关注哪些指标?

问题 在工作中,使用JMeter做压力测试时,需要关注其中的哪些指标? 性能测试关注哪些指标? 考察点 面试官想了解: 是否用过 JMeter 指标进行分析 技术点 涉及的技术点: JMeter 结果分析 回答 性能指…

基于 Vitis HLS 的单个乘法 DSP 映射研究

文章目录 1 自媒体账号2 引言3 整数乘法4 定点乘法5 浮点乘法6 总结 1 自媒体账号 目前运营的自媒体账号如下: 哔哩哔哩 【雪天鱼】: 雪天鱼个人主页-bilibili.com 如果觉得有所收获的话,可以点击我的主页 -> 充电 -> 自定义充电 支持一下&#…

2024加密软件排行榜|最新企业常用加密软件推荐

安秉网盾加密软件: 专注于企业级的透明加密解决方案,确保公司内部文件在公司环境外无法被访问。 审批机制灵活,支持多种审批方式,方便管理。 广泛应用于多个行业,拥有丰富的企业环境适配经验。 适合对内部数据安全有严…

设置角色运动的动画

(1) 打开Assets-UnityTechnologies-Animation-Animators,Create-Animation-Controller,命名为JohnLemon (2) 打开JohnLemon,出现下图 (3) 依次将Assets-UnityTechnologies-Animation-Animation中的JohnIdle和JohnWalk拖放到Base Layer窗口中 (4) 右击Idl…

分享由AI制定一个商城网站的开发计划及推荐的开发语言

商城网站开发计划 一、项目概述 本商城网站开发计划旨在创建一个功能齐全、用户友好的在线购物平台,为顾客提供商品浏览、搜索、购物车管理、订单跟踪、在线支付等服务。商城将支持多种商品分类,包括但不限于电子产品、家居用品、服饰鞋帽等。 二、开…

Nginx缓存之代理缓存配置

Nginx 的缓存功能是集成在代理模块中的,当启用缓存功能时,Nginx 将请求返回的响应数据持久化在服务器磁盘中,响应数据缓存的相关元数据、有效期及缓存内容等信息将被存储在定义的共享内存中。当收到客户端请求时,Nginx 会在共享内…

联邦学习周记|第四周

论文:Active Federated Learning 链接 将主动学习引入FL,每次随机抽几个Client拿来train,把置信值低的Client概率调大,就能少跑几次。 论文:Active learning based federated learning for waste and natural disast…

全新AI图像擦处理工具上线,手机电脑版资源合集下载

下载地址: 安卓手机版: 点击下载 苹果手机版: 点击下载 电脑版(支持Mac和Windows): 点击下载 图像处理技术在当今迅速发展,为了满足广大用户的需求,我们推出了一款强大的图像优化…

京东健康·全球医疗AI创新大赛开启!32万奖金池等你来拿!

京东健康全球医疗AI创新大赛是由京东健康发起,以探索医疗行业前沿技术与创新应用为导向、携手产学研各界力量,通过AI创新促进医疗服务行业高质量发展的一场大赛。 本次大赛聚焦“睡眠监测智能算法”与“医疗大模型创新应用”两个课题方向,面…

【ARM-Linux篇】POSIX消息队列

System V消息队列POSIX 消息队列主 要 函 数#include <sys/msg.h> int msgget(key_t key, int oflag) int msgsnd(int msqid, const void * ptr, size_t length, int flag) ssize_t msgrcv (int msqid, void *ptr, size_t length, long type, int flag) int msgctl(int m…

HTML入门教程:深度解析HTML,开启你的前端技术之旅

一、引言 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是前端开发的基础&#xff0c;它负责构建网页的结构和内容。作为前端技术栈的基石&#xff0c;HTML的掌握程度直接影响到网页的开发效率和用户体验。本教程将带你从零开始&#xff…

计算机网络——传输层重要协议(TCP、UDP)

一、常见名词解释 IP地址&#xff1a;IP地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址&#xff0c;即IP地址用于定位主机的网络地址&#xff1b; IP地址是一个32位的二进制数&#xff0c;通常被分割为4个 8位⼆进制数&#xff08;也就是…

vite项目配置高德api定位功能

项目场景&#xff1a; 用vite项目集成了一个H5页面的小程序&#xff0c;需要调用高德的定位API&#xff0c;在浏览器中测试的时候&#xff0c;出现了一系列定位失败的情况。 问题1 Get ipLocation failed、Geolocation permission denied 本地http访问下&#xff0c;定位失败…

切割游戏介绍

简介 上大学时&#xff0c;在学校实验室里玩过一个貌似使用VC写的小游戏&#xff0c;一个小球在界面上四处游荡&#xff0c;玩家使用鼠标切割背景&#xff0c;将背景切割剩余到一定的百分比后&#xff0c;就胜利了&#xff0c;后边的背景图会全部展示出来。 使用qt的qml技术&a…

C++类与对象、类的6个默认成员函数、构造函数、析构函数等的介绍

文章目录 前言一、类的6个默认成员函数二、构造函数1. 概念2. 特性1. 无参构造函数2. 带参构造函数3. 编译器默认生成的无参构造函数 3. 构造函数的初始化4. 默认构造函数 三、析构函数1. 概念2. 特性3. 编译器默认生成的析构函数的作用4. 构造函数的使用 总结 前言 C类与对象…

Scikit-Learn支持向量机回归

Scikit-Learn支持向量机回归 1、支持向量机回归1.1、最大间隔与SVM的分类1.2、软间隔最大化1.3、支持向量机回归1.4、支持向量机回归的优缺点2、Scikit-Learn支持向量机回归2.1、Scikit-Learn支持向量机回归API2.2、支持向量机回归初体验2.3、支持向量机回归实践(加州房价预测…