安装,管理程序

news2024/11/24 20:45:52

文章目录

  • Linuxd应用程序基础
    • 应用程序与系统命令的关系
  • 典型应用程序目录
    • 常见的软件包装类型
  • rpm软件包管理工具
    • RPM软件包
      • rpm命令格式
      • 查询rpm软件包信息
        • 查询已安装的
        • 查询未安装的
      • 安装或升级rpm软件
      • 卸载指定rpm软件
        • 辅助选项
      • 维护RPM数据库
      • 解决软件包依赖关系方法
  • 源代码编译安装
    • 源代码编译概述1
    • 源代码编译概述2
      • Tarball封包
      • 完整性校验
      • 确认源代码编译环境
    • 编译器安装过程
      • 1.tar解包
      • 2..lconfigure配置
      • 3.make编译与安装
      • 4.测试、应用、维护软件

Linuxd应用程序基础

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

命令和应用程序并没有特别明确的区别,从使用习惯来区分
文件位置系统命令:应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中。对于内部命令,常集成在 Bash 程序内,而不是独立地执行文件
应用程序:应用程序的执行文件通常放在/usr/bin、/usr/sbin 和/usr/local/bin、/usr/local/sbin 等目录中


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


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


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

典型应用程序目录

普通执行程序文件---------------------------------/usr/bin

服务器执行程序文件和管理程序文件---------------/usr/sbin

应用程序配置文件----------------------------------/etc

日志文件-------------------------------------------/var/log

应用程序参考文档文件-----------------------------/usr/share/doc

应用程序手册页文件-------------------------------/usr/local/share/man

常见的软件包装类型

RPM软件包 扩展名为“.rpm”只能在使用 RPM(RPM Package Manager,RPM 软件包管理器)机制的 Linux 中安装,如 RHEL、Fedora、 CentOS

DEB软件包 扩展名为“.deb”只能在使用 DPKG(Debian Package,Debian 包管理器)机制的 Linux 操作系统中进行安装,如 Debian、Ubuntu 等。安装 DEB 软件包需要使用操作系统中的 dpkg 命令

**源代码软件包 ** 一般为“.tar.gz” 或“.tar.bz2”等格式的压缩包文件,因多数使用 tar 命令打包而成称为“TarBall”安装源代码软件包需要使用相应的编译工具,如 Linux 中的 C 语言编译 器 gcc,安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译

绿色免安装的软件包 这种软件包的扩展名不一,以 TarBall 格式的居多,在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用

rpm软件包管理工具

Red-Hat Package Manager

  • 由Red Hat公司提出,被众多Linux发行版所采用
  • 建立统一的数据库文件
  • 详细记录软件包安装、卸载等变化信息
  • 自动分析软件包依赖关系

RPM软件包

软件素材参考网站
http//;www.rpm.org
格式
image.png

rpm命令格式

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

image.png

  • rpm命令功能
    • 查询、验证RPM软件包的相关信息
    • 安装、升级、卸载RPM软件包
    • 维护RPM数据库信息等综合管理操作

查询rpm软件包信息

查询已安装的

格式
rpm -q+子选项 +软件名
选项
-q 查询指定软件是否已安装
-qa 显示当前系统中以 rpm方式安装的所有软件列表
-qi 显示已安装的指定软件的详细信息
-ql 显示已安装的指定软件的文件列表
-qf 查看指定的文件或目录是哪个软件包所安装的
-qF 查询已安装的指定软件属于哪个安装包(文件或者目录)
-qc 列出已安装的指定软件的配置文件位置
-qd 列出已安装的指定软件的软件包文档所在位置
-qR 列出已安装的指定软件的依赖的软件包及文件
例:rpm -q wget 查看wget(下载)是否安转,提示已安装
image.png
rpm -q httpd 查看httpd是否安装,提示未安装image.png
rpm -q elike 查看elike(正则表达式匹配)是否安装,提示未安装
image.png
rpm -q elinks 查看elinks是否安装,提示未安装
image.png
rpm -q elink lynx 查看elink lynx是否安装,提示未安装
image.png
rpm -qa samba-client 显示samba-client(共享服务,共享文件类似网盘命令)安装的详细信息
image.png
rpm -qi samba-client 显示已安装的指定软件samba-client 的详细信息
image.png
rpm -ql wget 显示已安装的指定软件wget的文件列表
image.png
rpm- qc wget 列出已安装的指定软件wget 的配置文件位置
image.png
rpm -qc httpd 列出已安装的指定软件httpd 的配置文件位置
image.png
rpm -qc yum 列出已安装的指定软件yum 的配置文件位置
image.png
rpm -qd httpd 列出已安装的指定软件httpd的软件包文档所在位置
image.png
rpm -qR httpd 列出已安装的指定软件httpd的依赖的软件包及文件
image.png
rpm -qF httpd 查询已安装的指定软件httpd属于哪个安装包(文件或者目录)
image.png
rpm -qR elinks 列出已安装的指定软件elinks的依赖的软件包及文件
image.png
rpm -qa postfix 显示当前系统中以 rpm方式安装的postfix所有软件列表
image.png
rpm -qa | grep -i postfix 查询软件postfix是否已安装
image.png
rpm -qf /usr/bin/passwd 查看指定的文件或目录/usr/bin/passwd是哪个软件包所安装的
image.png

查询未安装的

格式
rpm-qp+子选项 +rpm包文件
选项
rpm -qpi rpm包文件名 查询指定软件包的详细信息
rpm -qpl rpm包文件名 查询指定软件包的文件列表
rpm -qpc rpm包文件名 查询指定软件包的配置文件
rpm -qpd rpm包文件名 查询指定软件包的软件包文档的位置
挂载(解除挂载是unmount /dev/sr0)
image.png
卸载elinks
image.png
到/mnt/Packages下查看rpm -qpi /mnt/Packages/elinks-0.12-0.36.pre6.el7.x86_64.rpm
image.png
rpm -qpi samba-4.6.2-8.el7.x86_64.rpm 在Packages下用相对路劲查看samba
image.png
rpm -qpl /mnt/Packages/Samba*
image.png
image.png
rpm -qpc samba-4.6.2-8.el7.x86_64.rpm 查询指定软件包的配置文件
image.png
rpm -qpd tree-1.6.0-10.el7.x86_64.rpm 查询相对路径下指定软件包 tree的软件包文档的位置
image.png

安装或升级rpm软件

格式
rpm +选项 +rpm包软件
选项
-i 安装一个新的 rpm软件包
-U 升级某个软件包,若未安装过,则进行安装
-F 升级某个软件包,若未安装过,则放弃安装
例:rpm -ivh /mnt/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm安装软件并且显示安装过程,过程中以#号显示进度
image.png
rpm -U --force --nidep /mnt/Packages/elinks*.rpm 升级某个软件包,若未安装过,则进行强制安装,在安装时不检查与其他软件包的依赖关系
image.png

卸载指定rpm软件

格式
rpm -e 软件名
例:rpm -e elinks 卸载elinks 并且确认是否删除
image.png

辅助选项

–force 强制安装某个软件包,比如要安装版本更旧的软件包
–nodeps 在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系
-h 在安装或升级软件包的过程中,以“#”号显示安装进度
-v 显示软件安装过程中的详细信息

维护RPM数据库

重建RPM数据库(现在用的少)
[root@localhost ~]# rpm – rebuilddb[root@localhost ~]# rpm – initdb
导入验证公钥
[root@localhost ~]# rpm – import /media/cdrom/RPM-GPG-KEY-CentOS-7

解决软件包依赖关系方法

  • 安装有依赖关系的多个软件时
    • 被依赖的软件包需要先安装
    • 可同时指定多个.rpm包文件进行安装
  • 卸载有依赖关系的多个软件时
    • 依赖其他程序的软件包需要先卸载
    • 可同时指定多个软件名进行卸载
  • 忽略依赖关系
    • 结合“ – nodeps"选项,但可能导致软件异常

源代码编译安装

源代码编译概述1

使用源代码安装软件的优点
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
应用场合举例
安装较新版本的应用程序时
当前安装的程序无法满足需要时
需要为应用程序添加新的功能时

源代码编译概述2

Tarball封包

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

完整性校验

md5sum校验工具
[root@localhost ~]# md5sum httpd-2.4.25.tar.gz
24fb8b9e36cf131d78caae864fea0f6a httpd-2.4.25.tar.gz
使用MD5校验和

确认源代码编译环境

需安装支持C/C++程序语言的编译器,如:
gcc、gcc-c++、make、

编译器安装过程

image.png

1.tar解包

习惯上将软件包释放到/usr/src/目录
解包后的源代码文件位置
/usr/src/软件名-版本号/

[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
解压源代码包,并指定释放目录

2…lconfigure配置

使用源码目录中的configure脚本
执行“./configure – help"可查看帮助
典型的配置选项
– prefix=软件安装目录

[root@localhost ~]# cd /usr/src/httpd-2.4.25/
[root@localhost httpd-2.4.25]# ./configure – prefix=/usr/local/apache
若不指定任何配置选项,将采用默认值

3.make编译与安装

编译
执行make命令
安装
执行make install命令

[root@localhost httpd-2.4.25]# make
[root@localhost httpd-2.4.25]# make install

4.测试、应用、维护软件

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

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

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

相关文章

C#观察者模式应用

目录 一、什么是观察者模式 二、C#中观察者模式的实现 三、两种实现的用法 1、事件与委托 2、IObserver和IObservable 四、参考文献 一、什么是观察者模式 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当…

嵌入式中间件_3.嵌入式中间件的一般架构

根据嵌入式中间件的不同类型和其应用对象的不同,其架构也有所不同,通常嵌入式中间件没有统一的架构,这里仅仅列举两种中间件架构。 1.消息中间件 1.1消息中间件原理架构 消息中间件是消息传输过程中保存消息的一种容器。它将消息从它的源中…

Swift开发——索引器扩展

扩展用于向已存在的类型(例如,类、结构体、枚举和协议等)中添加新的功能,扩展甚至可以向系统类型(包括无法查阅代码的类型)中添加新的功能,但是扩展不能覆盖原类型中已有的方法,扩展也不能向类中添加新的存储属性。 01、索引器扩展 扩展可为类、结构体等类型添加索引器。程序段…

【热门开源项目推荐】满足不同程序员的需求与关注点

目录 前言一、热门开源项目介绍二、使用开源热门项目的优势(一)经济方面(二)技术方面(三)社区支持及协作方面 三、程序员选择项目模型建议(一)关键步骤(二)示…

技术点梳理0618

ann建库,分布式建库,性能优化,precision recall参数优化 hnsw,图索引 1. build a)确定层:类似跳表思路建立多层,对每一个插入的节点,random层号l,从图的起始点search_…

【CVPR2021】LoFTR:基于Transformers的无探测器的局部特征匹配方法

LoFTR:基于Transformers的局部检测器 0. 摘要 我们提出了一种新的局部图像特征匹配方法。我们建议先在粗略级别建立像素级密集匹配,然后再在精细级别细化良好匹配,而不是按顺序进行图像特征检测、描述和匹配。与使用成本体积搜索对应关系的密…

vcruntime140_1.dll文件【安装包】【压缩包】【文件】【下载】

安装程序时有时候出现 类似无法启动程序,缺少vcruntime140_1.dll的提示,我们找到该文件并放到对应目录就可以;获取方法有很多,下面介绍两种:(方法二更简便,不过建议两种方法都试试) …

Java开发的构建神器:Maven以及如何安装部署Maven

目录 一、Maven引言1.1 Maven的核心概念✍. POM (Project Object Model)✌. 依赖管理✍. 生命周期与构建阶段✌. 插件系统 1.2 Maven的工作流程✍. 读取POM文件:✌. 依赖解析:✍. 构建生命周期:✌. 插件执行:✍. 构建输出&#xf…

shell编程中的运算符的讲解

在Linux操作系统中也可以使用expr来进行一些数值的运算,expr接受表达式作为参数,并打印计算结果。 对于某些复杂的表达式或早期不支持内嵌算术表达式的Shell环境,expr 仍然是一个可行的选择。 如上图所示,是使用变量sum来承接加和…

基于minhook的Windows HOOK

MinHook是一个基于微软Detours技术的可移植Hook库,它允许开发者在运行时更改函数定义,而无需修改原始函数代码。以下是关于MinHook的详细介绍: 基本概念 定义:MinHook使用内存污染和跳转技术来实现Hook,使得开发者能…

【windows|002】WEB服务和域名介绍

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…

【记录46】【案例】echarts 柱状图

echarts环境4.1.0 <template><div id"threefour"></div> </template> <script> import * as echarts from "echarts" export default {name:"",components:{},data(){return {}},methods:{getdata(){var myChart…

【Java】解决Java报错:SocketTimeoutException during Network Communication

文章目录 引言一、SocketTimeoutException的定义与概述1. 什么是SocketTimeoutException&#xff1f;2. SocketTimeoutException的常见触发场景3. 示例代码 二、解决方案1. 合理设置超时时间2. 使用重试机制3. 使用NIO和异步通信4. 使用高层次的网络通信库 三、最佳实践1. 合理…

使用vscode插件du-i18n处理前端项目国际化翻译多语言

前段时间我写了一篇关于项目国际化使用I18n组件的文章&#xff0c;Vue3 TS 使用国际化组件I18n&#xff0c;那个时候还没真正在项目中使用&#xff0c;需求排期还没有定&#xff0c;相当于是预研。 当时就看了一下大概怎么用&#xff0c;改了一个简单的页面&#xff0c;最近需…

Matplotlib(小案例)

1、3D表面形状的绘制 from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np import matplotlib as mplfigplt.figure() axfig.add_subplot(111,projection3d)unp.linspace(0,2*np.pi,100) vnp.linspace(0,np.pi,100) x10*np.outer(n…

python+unity手势控制地球大小

效果图如下 具体操作如下 1 在unity窗口添加一个球体 2 给球体添加材质,材质图片使用地球图片 地球图片如下 unity材质设置截图如下 3 编写地球控制脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class test : MonoBehavio…

codeforces round 953 div2

A Alice and books 题目&#xff1a; 思路&#xff1a;编号最大的肯定会被读到&#xff0c;所以在编号最大的这一组书中不能存在除去最大编号的外书外页数最大的书&#xff0c;并且在另一堆中这本书的编号也应该是最大值 代码&#xff1a; #include <iostream>using…

从“小IPD”到“大IPD”

IPD体系实施或变革是一个长期的系统工程&#xff0c;业界经常有从“小IPD”到“大IPD”的说法。 像华为当年就是从“产品开发流程”开始推行&#xff0c;算是很小范围的“小IPD”了&#xff0c;后面逐步扩大为“大IPD”&#xff0c;如上图所示。其中前端的市场管理&#xff08;…

【讲解下Pip换源】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

高危CNVD|用友-U8-OA基础版存在文件上传漏洞getshell

漏洞描述 用友U8-OA基础版存在任意文件覆盖写入漏洞 漏洞说明&#xff1a;用友U8-OA基础版因为代码问题&#xff0c;存在任意文件覆盖写入漏洞&#xff0c;可以覆盖写入系统中存在的文件&#xff0c;可getshell。FOFA指纹: body"致远" && "/yyoa/&quo…