十二、Linux系统中的软件管理

2023-11-03

十二、Linux 系统中的软件管理-rpm、dnf命令 软件仓库的搭建

12.1、Linux中软件包的类型

1、DEB                            #UBlinux DEBlinux
2、RPM                           #redhat centOS fadora
3、bz2 | gz | xz                #1、需要源码,安装直接编译
                                        #2、绿色软件,直接使用
                                        #ntfs-3g_ntfsprogs-2017.3.23.tgz 需要编译“configure”
                                        #Firefox-latest-x86_64.tar.bz2 绿色
注:在rhel8中只能使用绿色软件,源码编译软件和rpm软件

12.2、软件包的名称结构

[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]
            1               2          3        4           5
1、软件名称
2、软件版本
3、软件的授权协议版本
4、软件架构
5、软件类型后缀

12.3、rpm命令管理软件包

rpm   -ivh         #安装参数组合  -i install -v verbose  -h hash
      -a           #所有
      -f           #文件
      -p           #软件包
      -q           #查询linux系统中安装软件   
                   #rpm -q dhcp-severice  #查询是否安装dhcp-severice软件
                   #rpm -qa      #查询已安装的所有软件
      -l           #软件安装文件列表
      -e           #卸载
      -c           #配置文件
                   #rpm -qc openssh-server 查看sshd的配置文件
      -d           #说明
      --info       #软件信息
      --force      #强制。用于删除某些软件的配置文件导致软件不能正常运行,则可强制安装一次。
      --nodeps     #忽略依赖性
      --scripts    #查询软件在安装或卸载过程中的运行脚本
      -Kv          #检测软件md5校验码
      -V           #检测已安装软件在系统中的文件被修改信息

12.4、本地软件仓库的搭建

(1)新建本地目录mkdir /westos
(2)挂载镜像文件mount /root/rhel-8.0-x86_64-dvd.iso /westos
在这里插入图片描述
(3)cd /etc/yum.repos.d/ 然后执行vim fake.repo
文件内容为
在这里插入图片描述
注:gpcheck为是否检测key,检测为1,不检测为0。
fake1和fake2为仓库名字,执行dnf repolist可以查看
在这里插入图片描述
(4)执行dnf clean all清除之前读取的数据,清除数据所在目录为 /var/cache/dnf/
(5)dnf install gcc
在这里插入图片描述
安装完成。
(6)若要删除安装gcc,执行dnf remove gcc -y
在这里插入图片描述
卸载完成。
(7)删除实验记录

rm -fr /etc/yum.repos.d/*
umount /westos
rm -fr /westos

12.5、如何开机启动挂载镜像

(1)把开机启动镜像挂载写入开机自动运行脚本
vim /etc/rc.d/rc.local把挂载指令加入开机启动脚本
在这里插入图片描述
(2)执行sh /etc/rc.d/rc.local查看挂载是否成功
在这里插入图片描述
(3)授予可执行权限

chmod +x /etc/rc.d/rc.local

(4)reboot重启
(5)恢复

vim /etc/rc.d/rc.local #删除开机挂载命令
chmod a-x  /etc/rc.d/rc.local #删除权限

12.6、部署共享型软件仓库

多台服务器挂载一个镜像,可以减少存储。
(1)安装软件
dnf install httpd -y
httpd功能:共享文件,提供超文本传输协议
(2)关闭火墙,打开httpd服务,该服务共享文件的位置在/var/www/html

systemctl disable --now firewalld
systemctl enable --now httpd

vim /var/www/html/fake 输入内容为hello,world保存退出
通过浏览器访问当前主机ip下的192.168.1.4/fake
在这里插入图片描述
(3)结束之前的挂载,并把镜像挂载到/var/www/html/fake

mkdir /var/www/html/fake
umount /westos
mount /root/rhel-8.0-x86_64-dvd.iso /var/www/html/fake

(4)通过浏览器访问192.168.1.4/fake
此时网址变成软件仓库。
在这里插入图片描述
(5)cd /etc/yum.repos.d/让后vim fake.repo
内容为:

[fake1]
name=AppStream
baseurl=http://192.168.1.4/fake/AppStream
gpgcheck=0
enabld=1

[fake2]
name=BaseOS
baseurl=http://192.168.1.4/fake/BaseOS
gpgcheck=0
enabld=1

(6)浏览器中访问http://192.168.1.4/fake/AppStream

在这里插入图片描述
共享型软件仓库搭建成功
(8)设置开机启动镜像
vim /etc/rc.d/rc.local 然后加入
mount /root/rhel-8.0-x86_64-dvd.iso /var/www/html/fake
在这里插入图片描述

12.7、dnf命令的使用方法

12.7.1、管理仓库中的软件

dnf    repolist        #列出仓库信息
       clean all       #清除系统中已经加载的仓库缓存信息
                       #清除目录为:/var/cache/dnf/
       list available  #列出未安装软件
       list installed  #列出已安装软件
       install         #安装
       remove          #卸载   
                       #加上-y卸载不提示
       reinstall       #重新安装
       search          #搜索
       wahtprovides    #搜索包含文件的软件包,即查询某个文件属于哪个软件
       history         #dnf执行历史
       history info    #dnf执行历史详细信息
       group list      #列出软件组
       group list --installed    #列出已安装软件组
       group list --hidden       #列出隐藏软件组
       group install   #列出软件组
       group info      #查看软件组信息

dnf whatprovides /bin/ls 查询/bin/ls属于哪个软件
在这里插入图片描述
dnf history #查看历史
dnf info 2 #查看安装的第2条详细信息
在这里插入图片描述
dnf info dhcp-server #查询dhcp-server安装信息
在这里插入图片描述

12.7.2、下载安装包

(1)执行dnf whatprovides */yumdownloader找到文件
在这里插入图片描述

(2)安装软件dnf install dnf-utils-4.0.2.2-3.el8.noarch
(3)安装之后可以执行yumdownloader指令

yumdownloader    #下载软件包到本机指定位置
yumdownloader httpd   #下载仓库中指定软件的安装包到当前目录
yumdownloader --destdir=/mnt   #下载仓库中指定软件的安装包到指定的/mnt目录
yumdownloader httpd --destdir=/mnt --resolve   #下载仓库中指定软件安装包和软件依赖性到/mnt目录

12.8、第三方软件仓库的搭建

可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享
步骤:
(1)建立共享目录

mkdir /var/www/html/software

(2)把所有的第三方软件存放到/var/www/html/software中
注:/var/www/html/software 中只能存放rpm类型的文件,压缩包不能使用dnf管理。
(3)采集第三方软件数据生成repodate目录

dnf install createrepo -y  #安装采集工具
cd /var/www/html/software  #进入到共享目录
createrepo .               #对共享目录中进行扫描生成repodate数据目录

(4)在测试主机中指定第三方共享源
vim /etc/yum.repos.d/fake.repo

[software]
name=software
baseurl=http://192.168.1.4/software
gpgcheck=0
enabld=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十二、Linux系统中的软件管理 的相关文章

  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed

随机推荐

  • React中import的用法

    import defaultcomponent a b c from XXX eg import React Component from react 导入 react 文件里export的一个默认的组件 将其命名为React以及Compo
  • redis 主从模式以及哨兵模式

    一 redis主从模式 master slave 1 作用 1 防止单点故障 一台redis宕机 整个redis不能用 2 可以进行读写分离 一台redis主机进行写操作 其他机子进行读操作 提高使用效率 1 2实现 1 规划图 主从规划图
  • MySQL——子查询

    来一篇 MySQL 子查询 记录一下这个美好的时光 学习记录篇 下文中所有SQL 语句 均可在 MySQL DB 学习Demo 此处下载SQL语句执行 有相关DB 与 表 1 需求分析与问题解决 1 1 实际问题 现有解决方式一 SELEC
  • jira通过使用synapseRT插件实现对需求、测试用例、测试计划等的管理

    jira是可以实现对测试用例的管理的 而且还可以实现需求与测试用例 测试计划等的链接 这样就只使用一款jira软件串起整个流程了 下面说一说插件synapseRT插件的安装与破解 首先 需要下载破解包 链接如下 是我的csdn下载链接 ht
  • Python 数据分析学习路线

    Python 数据分析学习路线 第一阶段 Python语言基础 第二阶段 数据采集和持久化 第三阶段 数据分析 第四阶段 数据挖掘与机器学习 书籍介绍 参与方式 第一阶段 Python语言基础 在学习数据分析之前 首先需要掌握Python语
  • [Java]在数组中查找一个数字并返回其下标值

    此代码仅用于数组为非递减序列 二分查找 public class BinarySearch public static int binarySearch int array int target int left 0 int right a
  • PTA8(python)

    python程序设计选做题集 函数题和编程题 6 1 用类来计算圆面积 10 分 6 2 统计商品总价 20 分 6 3 定义商品类 特殊方法 30 分 6 4 学生成绩管理 30 分 6 5 设计一个股票类 高教社 Python编程基础及
  • STM32F429点亮led实验

    一 调用的函数 在stm32f429中点亮led通过控制引脚的高低电平来实现 在f429的hal库中控制引脚高低电平的函数 void HAL GPIO WritePin GPIO TypeDef GPIOx uint16 t GPIO Pi
  • 笔记-CDN

    转自 http www jianshu com p df806e04b204 转自 http blog qiniu com archives 6221 从 CDN 到 LiveNet 随着基础设施的升级 我们从文字时代演进到读图时代 又从读
  • nb传输协议和服务器的连接,NB-iot网络架构介绍_NB-iot的数据传输方式

    一 NB iot网络架构 整个NB IoT网络架构分为五个部分 终端 无线网络 核心网络 EPC IoT支持平台和应用服务器 二 NB iot网络架构简介 1 终端 主要通过空中接口连接到基站 终端方面主要包括工业终端和NB IoT模块 工
  • Node.js程序如何访问MySQL数据库呢?Sequelize操作MySQL数据库详解

    使用Sequelize 访问MySQL 当我们安装好MySQL后 Node js程序如何访问MySQL数据库呢 访问MySQL数据库只有一种方法 就是通过网络发送SQL命令 然后 MySQL服务器执行后返回结果 我们可以在命令行窗口输入my
  • 以太坊未来的 POS 协议:Casper

    以太坊未来的 POS 协议 大家好 我是Vlad 2014年9月份我开始了研究和设计以太坊POS proof of stake 权益证明 架构的工作 目前Vitalik和我对于Serenity阶段的POS协议应该长什么样已经有了许多共识 只
  • 证券市场的法律法规体系

    前言 作为金融公司的一员 这个证券从业资格证还是要拿到手 虽然我是技术人员 但这方面的知识还是要加强 要懂法 哈哈 已经报名了6月24号的考试 还有50天左右的时间 从今天起就记录下 我自己的学习笔记吧 Come on 证券市场法律法规体系
  • iis 配置多域名,多https

    当一个https的请求到达IIS服务器时 https请求为加密状态 需要拿到相应的服务器证书解密请求 由于每个站点对应的证书不同 服务器需要通过请求中不同的主机头来判断需要用哪个证书解密 然而主机头作为请求的一部分也被加密 最终IIS只好使
  • DAS、NAS、SAN、iSCSI 存储方案概述

    目前服务器所使用的专业存储方案有DAS NAS SAN iSCSI几种 存储根据服务器类型可以分为 封闭系统的存储和开放系统的存储 1 封闭系统主要指大型机 2 开放系统指基于包括Windows UNIX Linux等操作系统的服务器 开放
  • 鱼眼图像的全景矫正

    1 球面透视投影与展开 鱼眼镜头的成像通常首先要进行球面透视投影 即将三维空间中的点沿着经过镜头光学中心的直线投影到以光心为原点的单位半径球体 内表面 上 从而球面上的每一个点 可通过相应的经纬度来表示 如图 1 所示 以镜头光学中心为原点
  • vue2.x自定义v-loading指令

    vue3 x自定义v loading思路类似 directive js import Loading from loading import Vue from vue const loadingDirective inserted el b
  • 排查Javascript内存泄漏案例(一)

    Chrome DevTools里的Performance面板和Memory面板可以用来定位内存问题 如何判断应用发生内存泄漏 为了证明螃蟹的听觉在腿上 一个专家捉了只螃蟹并冲它大吼 螃蟹很快就跑了 然后捉回来再冲它吼 螃蟹又跑了 最后专家把
  • Linux 创建用户并限制其访问目录,设置密码为永不过期

    创建用户及访问目录 useradd sou d tmp sou M 设置用户密码 passwd sou Tip 输入命令后 会提示输入密码 修改密码为永不过期 chage M 99999 sou 将访问目录和所有子目录权限全部赋予用户 ch
  • 十二、Linux系统中的软件管理

    十二 Linux 系统中的软件管理 rpm dnf命令 软件仓库的搭建 12 1 Linux中软件包的类型 1 DEB UBlinux DEBlinux 2 RPM redhat centOS fadora 3 bz2 gz xz 1 需要