48-安装软件并管理服务

news2025/7/28 0:46:42

48-安装软件并管理服务

  • RPM的概念和操作命令
    • RPM软件包管理
    • RPM软件包管理优缺点
    • RPM命令常用参数
  • DNF的该您概念和操作命令
    • DNF工具的产生
    • DNF工具概述
    • DNF管理软件包
    • DNF-软件源服务
    • DNF配置文件-/etc/dnf/dnf.conf
    • 配置DNF-修改配置参数
    • 创建本地软件源仓库
    • 添加软件源
    • 启用和禁用软件源
    • 管理软件包
    • 列出软件包清单
    • 显示RPM包信息
    • 下载、安装和删除RPM包
    • 管理软件包组
    • 显示软件包组信息
    • 安装和删除软件包组
    • 检查并更新
  • 源代码软件及其安装方法
    • 源代码软件安装概述
    • 源代码软件安装优缺点
    • 源码安装软件步骤
    • 下载解压源码包-示例
    • 查看README文件-示例
    • 生成Makefile文件-示例
    • 源码安装软件-示例
  • Systemd管理服务
    • Systemd简介
    • Systemd unit概念
    • Systemd特性
    • 管理系统服务
    • Systemctl-显示服务
    • Systemctl-显示服务状态
    • Systemctl - 相关操作
    • Systemctl -其他操作

RPM的概念和操作命令

RPM软件包管理

  • RPM是一种用于互联网下载包的打包和自动安装工具,会生成.RPM扩展名的文件,可以用来管理应用程序的安装、卸载和维护。
  • RPM软件包命名格式:
    name-version-release.arch.rpm
    在这里插入图片描述
    版本号:x.y.z(x : 主版本号 , y : 次版本号 , z : 修正版本号)
    发行版本号:第几次编译产生的
    处理器架构: 表示这个RRMP包适用的硬件平台(I386,I586,I686),出现noarch表示在任何平台上都可以安装
    .rpn : 表示已经编译好的二进制包,直接用rpn命令来安装
    .src.rpn : 表示这个包是源代码包,安装时要对源代码进行编译,产生rpn包

RPM软件包管理优缺点

  • RPM软件包管理优点:
    简单便捷,兼容版本;
    参数信息记录在数据库中,便于查询、升级或卸载软件时使用。
  • RPM软件包管理缺点:
    安装环境需与打包环境一致;
    具有很强的依赖关系,卸载软件时需要对依赖性软件优先处理,否则会导致其他软件无法正常使用。

RPM命令常用参数

  • RPM常用于安装、删除、升级、刷新和查询的场景。
  • 语法: rpm [OPTION…]。
    ·其中的命令选项说明如下:
    -i : 指定安装的软件包
    -h : 使用“#(hash)”符显示rpm详细的安装过程及进度
    -v : 显示安装的详细过程
    -U : 升级指定的软件包
    -e : 删除软件
    -q : 查询系统是否已安装指定的软件包或查询指定rpm包内容信息
    -a : 查看系统已安装的所有软件包
    -V : 查询已安装的软件包的版本信息
    -c : 显示所有配置文件
    -p : 查询/校验一个软件包的文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

DNF的该您概念和操作命令

DNF工具的产生

  • Linux系统的软件管理工具yum是基于rpm包管理,可以从指定的服务器自动下载RPM服务器并进行安装,yum可以作为软件仓库对软件包进行管理,相当于一个“管家”,同时能够解决软件包间的依赖关系,提升了效率既然如此,为什么还会出现DNF工具呢?
  • yum工具性能差、内存占用过多、依赖解析速度变慢等问题长期得不到解决,同时yum工具过度依赖yum源文件,若是源文件出现问题,yum相关操作可能会失败,针对这种情况,DNF工具应运而生,DNF工具克服了YUM软件管理工具的一些瓶颈,提升了用户体验、内存占用、依赖分析及运行速度等方面的内容。

DNF工具概述

  • DNF(Dandified YUM)作为Linux软件包管理工具,可以用来管理RPM软件包。
  • DNF可以查询软件包的信息,从指定软件库去获取所需软件包,并通过自动处理依赖关系来实现安装、卸载以及更新。
  • DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供的APl。
  • DNF的使用需要管理员(root)权限。

DNF管理软件包

在这里插入图片描述

DNF-软件源服务

  • 软件源(Software Sources)是Linux系统免费的应用程序安装仓库。
  • 软件源可以是网络服务器、是光盘、甚至是硬盘上的一个目录。
  • Linux软件源的好处:
    需要用到一个软件的时候,可以通过工具自动地下载并自动地安装;
    软件源可以让你及时获取重要的安全更新,解决安全隐患;
    解决软件依赖的复杂关系、提高软件安装效率。

DNF配置文件-/etc/dnf/dnf.conf

  • DNF的主要配置文件是/etc/dnf/dnf.conf,该文件中“main”部分保存着DNF的全局配置。
  • 通过cat命令,可以查看“main”的具体参数: cat /etc/dnf/dnf.conf。
  • 其中的参数说明如下:
    cachedir : 缓存目录,该目录用于存储RPM包和数据库文件;
    best : 升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装。默认值为True;
    installonly_limit : 设置可以同时安装“installonlypkgs”指令列出包的数量。默认值为3,不建议降低此值;
    clean_requirements_on_remove : 删除在dnf remove期间不再使用的依赖项,如果软件包是通过DNF安装的,而不是通过显式用户请求安装的,则只能clean_requirements_on_remove删除软件包,即它是作为依赖项引入的。默认值为True。

配置DNF-修改配置参数

  • repository允许用户定义定制化的软件源仓库,需要注意的是各个仓库的名称不能相同,会引起冲突,用户可以通过添加一个或多个“repository”部分来修改需安装软件源位置。
  • 通过vim命令,可以在文件中添加一个或多个“repository": vim /etc/dnf/dnf.conf。
  • 其中的参数说明如下:
    name=repository_name:软件仓库(repository )描述的字符串
    baseurl=repository_url:软件仓库((repository )的地址。使用http协议的网络位置:例如http://path/to/repo; 使用ftp协议的网络位置:例如ftp://path/to/repo; 本地位置:例如file:///path/to/local/repo。

创建本地软件源仓库

  • 创建软件源仓库具体步骤:
  1. 安装createrepo (root权限下)∶
    dnf install createrepo
  2. 将需要的软件包放置在目录下,比如/mnt/local_repo/;
  3. 执行命令创建软件源。
    createrepo --database /mnt/local_repo

添加软件源

  • 用户定义定制化的软件源仓库,除了可以在/etc/dnf/dnf.conf 文件中添加一个或多个
    "repository”外,还可以选择在/etc/yum.repos.d/目录下添加“.repo”文件。
  • 添加“.repo”文件的方式需要在root权限下进行。
    成功执行以下命令后会在/etc/yum.repos.d/目录下生成对应的repo文件。
    dnf config-manager --add-repo repository_url
    repository_url : 是软件仓库的地址

启用和禁用软件源

  • 添加好软件源之后,需要在root权限下启用软件源(其中的repository为新增.repo文件的repo id),启用命令如下:
    dnf repolist #查看新增.repo文件的repo id
    dnf config-manager --set-enable repository(软件仓库的repo id)
  • 若是软件源不再被使用,可以通过命令行禁用该软件源,需要在root权限下禁用,禁用命令如下:
    dnf repolist #查看新增.repo文件的repo id
    dnf config-manager --set-disable repository

管理软件包

  • DNF能够便捷的对软件包进行安装、查询和删除。
    用户可以通过rpm包名称、缩写和描述来搜索所需软件包,具体命令如下:
    dnf search term
    在这里插入图片描述

列出软件包清单

  • DNF可以通过命令列出已安装和可用的RPM软件包,具体命令如下:
    dnf list all
    dnf list glob_expression… #查看指定RPM包信息
  • 示例:
    在这里插入图片描述

显示RPM包信息

  • 通过DNF命令行能够查看RPM包的相关信息,具体命令如
    dnf info package_name…
  • 示例:
    在这里插入图片描述

下载、安装和删除RPM包

  • 通过DNF命令行能够下载、安装和删除RPM包,具体命令如下
    dnf download package_name
    dnf install package_name
    dnf remove package_name…
  • 示例:
    在这里插入图片描述

管理软件包组

  • 软件包集合是将一组具有共同目的的软件包集合在一起,比如系统工具。
    用户可以通过dnf命令查看所有已安装及可用的软件包组,具体命令如下:
    dnf groups summary
    dnf group list#可列出软件包组和对应组ID
    在这里插入图片描述

显示软件包组信息

  • 通过dnf命令列出一个软件包组中必须安装的软件包及可选包,具体命令如下:
    dnf group info glob_expression…
  • 示例:
    在这里插入图片描述

安装和删除软件包组

  • 每一软件包组都具有对应的名称和id,在安装和删除软件包组时,可以通过名称或id来进行安装和删除。
    dnf group install group_name/groupid
    dnfgroup remove group_name/groupid
  • 示例:
    在这里插入图片描述

检查并更新

  • DNF命令可以检查系统中的软件包/软件包组是否需要更新,并且可对所有需要更新的软件包/软件包组或特定的软件包进行升级。
    用户可以通过rpm包名称、缩写和描述来搜索所需软件包,具体命令如下:
    dnf check-update
    dnf update package_name / dnf group update group_name
  • 示例
    在这里插入图片描述

源代码软件及其安装方法

源代码软件安装概述

  • 通过源代码安装软件是除了rpm软件包安装外的又一种安装软件的方式。Linux下许多软件是通过源码包方式发行的,相对于二进制软件包来说,源码包的移植性较好,仅需发布一份源码包,不同用户经过编译即可正常运行,但是其配置和编译过程较为繁琐。
  • openEuler中会优先选择rpm来进行软件安装,但也会存在需要使用源码安装的场景:
    rpm软件包版本太旧,编译参数不适用于当前业务;
    欲安装的软件无现成rpm软件包可用;
    rpm软件包缺乏某些特性;
    优化编译参数,提升性能。

源代码软件安装优缺点

  • 源码安装优点:
    编译过程可以根据自身需求设置参数进行软件安装,灵活性好;
    经过本机编译,使得源码安装的软件与本机兼容性最好。
  • 源码安装缺点:
    配置及编译过程较为繁琐;
    可能由于安装软件过新或其他问题,导致没有对应的依赖包,软件升级较为复杂,得不偿失。

源码安装软件步骤

步骤:

  1. 下载源码包并解压(校验包完整性)
  2. 查看README和INSTALL文件(记录了软件的安装方法及注意事项)
  3. 创建Makefile文件-通过执行./configure脚本命令生成
  4. 编译-通过make命令将源码自动编译成二进制文件
  5. 安装软件-通过make install安装命令来将上步编译出来的二进制文件安装到对应的目录中去,默认的安装路径为/usr/local/,相应的配置文件位置为/usr/local/etc或/usr/local/***/etc

下载解压源码包-示例

  • 以Python软件安装为例演示源码安装软件的整体步骤:
  • 下载源码包并解压(校验包完整性)
    wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz(下载)
    tar -zxvf Python-3.7.7.tgz(解压)
    在这里插入图片描述

查看README文件-示例

  • 以Python软件安装为例演示源码安装软件的整体步骤:
    进入源码目录,查看README文件:
    cat Python-3.7.7/README.rst
    在这里插入图片描述

生成Makefile文件-示例

  • 以Python软件安装为例演示源码安装软件的整体步骤:
    执行./configure命令,生成Makefile文件:
    ./configure -prefix=/usr/local/Python
    (-prefix 指定编译的程序所存放的位置)
    在这里插入图片描述

源码安装软件-示例

  • 以Python软件安装为例演示源码安装软件的整体步骤:
    执行Make命令进行编译:
    make/make clean(后者在多次调试时使用)
    在这里插入图片描述
    执行make install命令进行软件的安装:
    make install
    (注意,在安装时可能会缺乏相关环境组件,可通过yum工具来进行组件的下载安装)

Systemd管理服务

Systemd简介

  • 在Linux中,systemd是与SysV和LSB初始化脚本兼容的系统和服务管理器,开启systemd服务可以提供基于守护进程的按需启动策略。
  • systemd服务支持快照和系统状态恢复,维护挂载和自挂载点,使得各服务之间基于从属关系实现更为精细的逻辑控制,具有更高的并行性
    能。

Systemd unit概念

  • systemd服务的开启和监督系统是基于unit的概念,unit由一个与配置文件对应的名称和类型组成,unit通常有以下几种类型:
    Service unit:系统服务
    Target unit:一组systemd units
    Automount unit:文件系统挂载点
    Device unit:内核识别的设备文件
    Mount unit:文件系统挂载点
    Path unit:在一个文件系统中的文件或目录
    Scope unit:外部创建的进程
    Snapshot unit: systemd manager的保存状态

Systemd特性

systemd具备以下特性:
更快的启动速度
提供按需启动能力
采用cgroup特性跟踪和管理进程的生命周期启动挂载点和自动挂载的管理
实现事务性依赖关系管理与SysV初始化脚本兼容
能够对系统进行快照和恢复

管理系统服务

  • systemd可以通过systemctl命令来对系统服务进行运行、关闭、重启、显示、启用或禁用的操作。
  • systemctl命令与sysvinit命令的功能相似,但是建议用systemctl来进行系统服务管理。
  • Systemctl和sysvinit的区别这里做一个简单对比:
    在这里插入图片描述

Systemctl-显示服务

  • 若是用户需要查看当前正在运行的服务,可以通过如下命令来进行查看:
    systemctl list-units --type service #若是要查看所有服务,需要在命令行后添加-a参数
    在这里插入图片描述

Systemctl-显示服务状态

  • 若是用户需要查看某个服务的状态,可以通过如下命令来进行查看:
    systemctl status name.service
    ·其中的命令参数说明如下:
    Loaded : 说明服务是否被加载,同时显示对应的绝对路径是否启用
    Active:说明服务是否正在运行,并显示时间节点
    Main PID:相应系统服务PID值
    CGroup:相关控制组的其他信息

Systemctl - 相关操作

  • systemctl命令可以对系统服务进行运行、关闭、重启、显示、
    启用或禁用等操作,命令如下:
    运行服务:
    systemctl start name.service
    关闭服务:
    systemctl stop name.service
    重启服务:
    systemctl restart name.service
    启用服务:
    systemctl enable name.service
    禁用服务:
    systemctl disable name.service

Systemctl -其他操作

  • Systemd亦可通过systemctl命令对系统进行关机、重启、休眠等操作,具体命令如下:
    关闭系统:
    systemctl poweroff #关闭系统并下电
    systemctl halt #t关闭系统但不下电
    重启系统:
    systemctl reboot
    系统待机:
    systemctl suspend
    系统休眠:
    systemctl hibernate
    systemctl hybrid-sleep #使系统待机并处于休眠状态

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

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

相关文章

BFS广度优先

题目描述如下: 使用邻接矩阵实现BFS: 输入 8,10 1 2 3 4 5 6 7 8 1,2 1,5 2,6 3,6 3,4 3,7 4,7 4,8 6,7 7,8 2 输出 请输入顶点数和边数:请输入顶点本身的数据: 请输入边的数据: 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0…

Winsoft Office Component Suite

Winsoft Office Component Suite Winsoft Office组件套件是由Winsoft发布的海豚和CBuilder公司的集合。这些计算机可用于在microsoft office集合中实现自动化和自动操作。从2010年到2019年,这些活动几乎支持了Office的所有现代版本,并提供了两种软件和氧…

掌控安全学院SOL注入靶场

掌控安全学院SOL注入靶场靶场地址Pass-01 显错注入Pass-02Pass-03Pass-04Pass-05 POST注入Pass-06Pass-07 Head注入Pass-08Pass-09Pass-10 布尔盲注Pass-11Pass-12Pass-13 延时注入Pass-14Pass-15 宽字节注入Pass-16Pass-17总结靶场地址 http://inject2.lab.aqlab.cn Pass-01…

[Python] Django ORM与执行原生SQL实现操作数据库

前言 系列文章目录 [Python]目录 文章目录前言🍉 ORM🍉 shell🍉 模型类与数据的准备🍒 模型类🍒 数据🍉 查询数据🍒 查询集🍓 查询集的特性🍎 惰性执行🍎 缓存…

PDF文件如何设置密码保护?

接近年底,各种总结报告越来越多,很多时候我们都会将报告做成PDF文件格式,对于重要的内容,往往还需要设置密码保护。 根据不同的需要,可以给PDF文件设置两种保护模式。 如果文件内容只分享给特定的人看,不…

qt调用python脚本中的函数

开发环境: qt 5.9.9 vs2015 python 3.6 例程下载: qt调用python脚本例程.rar 步骤一:创建python脚本文件 创建文本文件myPythonFile.py,内容如下: 步骤二:创建qt widget测试例程并运行 新建qt wi…

请不要忽略软件测试的业务能力

在日常的测试工作中,不知道大家是否会有梳理自己测试业务的习惯。我个人觉得这个事情是值得做的,最好还可以培养成一个习惯。一、为什么要梳理业务?因为在业务测试中,作为测试人员,熟悉负责的业务是非常重要的&#xf…

ats 6.2.3中diags.log日志滚存遇到的assert崩溃问题并解决

现在线上ats 6.2.3现在都开启了diags.log日志回滚的功能,采用下面的配置方法 CONFIG proxy.config.diags.logfile.rolling_enabled INT 3 CONFIG proxy.config.diags.logfile.rolling_interval_sec INT 86400 CONFIG proxy.config.diags.logfile.rolling_size_mb…

Web前端——立体相册的制作

文章目录笔记&#xff1a;CSS的特殊样式作业&#xff1a;用CSS的特殊样式制作立体相册笔记&#xff1a;CSS的特殊样式 media查询 常⽤于响应式布局&#xff0c;是⽬前使⽤最多的适配⻚⾯的技术。他会根据⻚⾯的尺⼨的不同&#xff0c;⽽是⽤不同的样式。 <style>media…

LeetCode50天刷题计划第二季(Day 31 — 两数之和 II - 输入有序数组(11.10-11.20)分数到小数(11.30-12.30)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、题目两数之和 II - 输入有序数组示例提示二、思路三、代码四、题目分数到小数示例提示五、思路六、代码前言 没看出来跟 两数之和 I 有什么区别 一、题目 …

码农死磕这份Java高级开发文档,成功‘挤‘进一线大厂,这也太强了吧

前言 很多程序员一开始在学习上找不到方向&#xff0c;但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显&#xff0c;工作的方向也会逐渐变得清晰起来。 但是没过多久&#xff0c;能了解到的资料就开始超过每天学习的能力&#xff0c;像是买了没看的书、…

内网渗透神器CobaltStrike之重定向服务配置(二)

重定向服务的概念 "重定向"是一个在CS服务器与目标主机进行网络传输之间的服务器, 不仅能保护CS服务器, 还能增强与目标网络传输的稳定性, 例如某一台重定向服务器倒塌了, 但是CS服务器还是能通过其他重定向服务器与目标网络进行信息传输 环境拓扑 域名: team.comD…

ELSEVIER期刊论文投稿全流程实例讲解

Elsevier期刊模板下载 从ELSEVIER搜索要投的期刊&#xff0c;进入期刊主页 https://www.elsevier.com/search-results?queryFuel

【附源码】Python计算机毕业设计体育场馆预定网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

1.理论部分 随机森林(Random Forest),顾名思义,就是由很多决策树模型融合在一起的算法。 随机森林是一种运用了集成学习(ensemble learning)的决策树分类器。 随机森林是一种基于Bagging框架的模型融合算法,如图1.2所示。它通过多个基础的决策树模型进行训练,如何通过…

Android App事件交互中区分点击和长按动作以及识别手势滑动方向的讲解及实战(附源码 可直接使用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、区分点击和长按动作 区分点击和长按动作&#xff0c;只要看按压时长是否超过500毫秒即可&#xff0c;没超过的表示点击动作&#xff0c;超过了的表示长按动作。其实除了按压时长之外&#xff0c;按压力度也是一个重要的…

Isaac-gym(5):关于强化学习

官方链接&#xff1a; https://github.com/NVIDIA-Omniverse/IsaacGymEnvs 1、环境建立示例 import isaacgym import isaacgymenvs import torchenvs isaacgymenvs.make(seed0, task"Ant", #对应执行时用到的名称num_envs2000, sim_device"cuda:0"…

智芯传感-工业雷管禁售在即,电子雷管的大发展已然到来!

在我国重点支持发展的基础设施建设领域中&#xff0c;民爆行业是一个相对小众、但是非常重要的行业。在“十四五”规划中&#xff0c;国家大力推进电子雷管替代工业雷管&#xff0c;持续加强激励与引导&#xff0c;推进生产工艺及装备向安全可靠、绿色环保、智能制造方向发展&a…

Makefile 基础(二)—— Makefile 自动推导+ Makefile伪目标

目录 1、Makefile 自动推导&#xff08;隐含规则&#xff09; (1) 依赖项都在当前目录下 (2) 一部分依赖项不在当前目录下 2、Makefile 伪目标 1、Makefile 自动推导&#xff08;隐含规则&#xff09; 所谓隐含规则指的是&#xff0c;我们在Makefile文件中不使用 gcc/g 命…

openTCS 5.2 学习记录一(避坑)

openTCS5.2 学习记录一 初学者记录 一、学习背景 最近领导安排学习AGV相关调度方面的东西&#xff0c;我司使用的是openTCS来做AGV调度管理。本文主要记录最简单的启动&#xff0c;并且记录使用过程中的各个坑。 二、参考资料 openTCS官网 https://www.opentcs.org/en/ind…