Linux中的软件管理

2023-05-16

Linux中的软件管理

yum源头

定义:yum源是一个软件集合地,只需要搜索并安装你想要的软件。yum的全称是Yellowdog Updater Modified,是一个shell前端软件包管理器,基于RPM包管理。从指定的服务器下载RPM包并自动安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包,无需一次次频繁的下载和安装。

yum源的分类

本地yum源:光盘镜像里面一般会附带一些软件,这个时候就可以把光盘镜像当成本地源来安装软件。
网络yum源:例如aliyun的镜像网站,可以通过互联网下载软件并安装 。

配置本地yum源指向

实验大致过程:
给desktop一个安装软件的仓库,desktop才可以安装软件,先配置本地yum源只能安装官方软件
再搭建第三方仓库之后才可以安装第三方软件。
本实验是通过配置本地yum源来安装官方的软件。
实验步骤:
step1.挂载光盘镜像

挂载的目的:挂载就是把光盘镜像放在一个目录下,好让系统读取镜像里的资源。

注意:选择镜像资源时一定要选择和自己系统版本匹配的镜像资源版本,可用hostnamectl 查看系统版本

1|mkdir  /iso
2|scp root@172.25.254.2:/镜像路径   /iso  #把真机的镜像拷贝至虚拟机的/iso目录下,便于之后的挂载
1|cd /iso
2|ls
3|cd
4|mkdir /haha
5|mount  /iso/rhel-server-7.0-x86_64-dvd.iso /haha/  #挂载光盘镜像放在自定义的目录下,好让系统读取镜像里的资源
6|ls /haha/
7|mount
1|cd /haha/Packages/
2|ls        #可以看到仓库里的官方软件安装包,说明挂载成功

在这里插入图片描述
step2.设置系统安装源指向(指向刚才挂载的自定义的目录)
系统安装源指向实际上是一个命名以repo结尾的文件,里面存放的是本地yum源软件仓库的一些信息

1|cd /etc/yum.repos.d/
2|ls
3|vim haha.repo
4|在文件里面添加
5|[haha]  #仓库的名字
6|name=haha  #对仓库的描述,可以随便写
7|baseurl=file:///haha 
8|gpgcheck=0 不检测gpgkey,不让红帽检测虚拟机要下载的第三方软件是否授权。
9|enabled=1 使安装源语句生效

在这里插入图片描述
step3.设定永久挂载
使虚拟机重启之后依然有本地yum源
编辑以下的配置文件:
vim /etc/rc.d/rc.local
添加
mount /iso/rhel-server-7.3-x86_64-dvd.iso /haha

chmod 755 /etc/rc.d/rc.local

step4.检测是否配置成功

1|gpk-application  #图形化安装界面 
 或者
2| yum install dhcp -y  #-y表示执行过程中yes/no选择yes,避免之后的选择

在这里插入图片描述
给虚拟机配置好本地yum源之后,虚拟机就可以安装红帽公司官方的软件了。

yum命令大全汇总

1|yum clean all  #清除原有的yum缓存,才会使用新的yum源
2|yum repolist  #列出软件仓库信息
3|yum install softwarename #安装软件
4|yum update softwarename #更新
5|yum list softwarename #查看软件
6|yum list all #查看所有软件
7|yum installed #列出已经安装的软件
8|yum avaliable #列出可安装的软件
9|yum reinstall softwarename #重新安装
10|yum remove softwarename  #卸载软件
11|yum info softwarename #查看软件信息
12|yum search software信息   #根据软件信息查找软件
13|yum whatproviders file #根据文件信息找出包含此文件信息的软件 ,不管是否安装过
14|yum history #查看系统中软件管理信息
15|yum history info 数字  #对数字为id的信息进行显示
16|yum groups list #列出软件组
17|yum groups info #查看软件组的信息
18|yum groups install sfgroup #安装软件组
19|yum groups remove sfgroup #卸载软件组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

软件安装包名称详解

以 kolourpaint-4.10.5-4.el7.x86_64.rpm 为例:

kolourpaint软件名称
4.10.5版本
4.el7适用系统
x86_64架构
rpm适用rpm体系软件

部署共享型yum源

部署步骤
实验配置环境:一台虚拟机
step1.在一台已经配置好本地yum源的主机中安装httpd

 yum install httpd的路径 #httpd属于官方软件,有本地yum源就可以直接安装

在这里插入图片描述
step2.配置网络yum源
实现的条件:只有开启httpd服务,将desktop的本地yum源挂载在/var/www/html/下才能实现yum源共享,需要注意的是:desktop共享/haha/下的文件给其它主机时,必须关闭防火墙.

1|systemctl start httpd  #启动apache的服务httpd
2|systemctl enable httpd  #设置开机启动
3|systemctl stop firewalld  #关闭火墙
4|systemctl disable firewalld  #设置为开机自动关闭
5|systemct mask firewalld
6| mkdir /var/www/html/xixi  #var/www/html在apache安装后会自动产生
7|mount /iso/rhel-server-7.3-x86_64-dvd.iso  /var/www/html/xixi 

在这里插入图片描述
在这里插入图片描述
以上方法存在着一些局限性,配置的网络yum源是临时的,重启后设定就会消失

配置永久的网络yum源(与本地永久配置类似)

1| vim /etc/rc.d/rc.local 

在其中写入:mount /iso/rhel-server-7.3-x86_64-dvd.iso /var/www/html/xixi
在这里插入图片描述
在这里插入图片描述
3.测试
网页搜索 ip/xixi,出现以下的目录
在这里插入图片描述

在另一台主机里

1|cd /etc/yum.repo.d/
2| vim haha.repo

在其中写入:
[rhel7.3]
name=rhel.3
baseurl=http://ip/xixi
gpgcheck=0

Linux中安装第三方软件

第三方软件不可以直接yum安装的原因
因为不能识别有的第三方软件的依赖性 ,但是qq,wps(libpng12的依赖性,仓库解决了)等,例如画图软件 KolourPaint 系统解决不掉依赖性。
由于yum源软件仓库里面没有第三方软件的安装包。
只能先在官方浏览器里面下载第三方软件的安装包,然后再用yum命令安装
但是利用下载下来的第三方软件安装包安装第三方软件时要处理依赖性关系

依赖性关系就是安装软件1时会提醒你需要软件2,但安装软件2时,又提示需要安装软件1,陷入死循环。
当提示需要依赖性软件时,可以在跳过能跳过的,将不能跳过的,在浏览器中搜索rpmsearch

rpm命令的使用

1|rpm
2|-i    安装软件
3|-v    显示过程
4|-h    hash加密(MD5等对称加密)
5|-a    所有
6|-p    软件包
7|-e  删除软件
8|-ivh 建立软件
9|-qa 查看所有已经安装过的软件包
10|-ql 查看已经安装的软件拥有什么文件
11|-qc 查看已安装软件或者服务的配置文件
12|-qd 查看已安装软件或者服务的说明(帮助)文件
13|-qf 根据某个文件找出从出此文件属于哪个安装包
14|-qp 软件安装后会在系统中叫什么名字
15|-qlp 未安装的软件包如果安装会产生什么样的文件
16|--scripts 表示软件在安装或者卸载过程中会做什么动作  结合-pq使用 非常非常重要 
17|-Kv  检测软件是否被篡改过
18|--force  只是负责在重新安装已经安装过的软件时,强制安装,不忽略依赖性。
19|--nodeps   忽略依赖性

例如:
安装qq的软件
在这里插入图片描述
在这里插入图片描述

第三方软件仓库的搭建

搭建第三方软件仓库的原因

当我们在浏览器下载第三方软件后,有些软件在安装的时候需要处理依赖性的关系。此时无法利用yum命令进行安装。所以我们需要搭建第三方软件库,并且完成相应的配置使其可以自动地处理依赖性的关系,然后就可以使用yum命令来安装相应的软件。

实验

实验的目的
让虚拟机在安装有依赖性的第三方软件时,可以直接使用yum命令进行安装
实验的步骤
step1把需要安装的东西放到一个目录底下,例如创建一个software目录,放入其中
在这里插入图片描述
step2

1| createrepo -v /software

在这里插入图片描述
可以观察到software目录下出现repodata
在这里插入图片描述
step3 在本地yum源仓库指向的文件里添加第三方软件仓库的指向信息。也可以新建一个repo文件,不过/etc/yum.repo.d/目录下的repo文件都必须可用
在这里插入图片描述
step4 查看依赖性的关系 cd /software/repodata/
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
step5

1| yum install kolourpaint.x86_64

在这里插入图片描述
在这里插入图片描述
总结:
当执行完createrepo之后,/software升级为软件仓库了
生成的repodata目录中有primary.xml文件,文件中有软件的元数据,数据中有软件的依赖性

注意:共享第三方软件

把/software传入到其他机器的/var/www/html目录下

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

Linux中的软件管理 的相关文章

  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内

随机推荐

  • TCP 服务器程序突然中断 由于send函数导致

    最近在写tcp 客户端服务器操作 设置服务器为单线程多个客户端连入 开发过程中出现 服务器代码运行过程中 在send处突然中断情况 通过GDB调试发现send函数报错提示打开文件错误 由于测试过程纵单节点反复连入客户端 在client so
  • 我为什么选择Linux mint 21.1 “Vera“ ? Mint安装优化调教指南(分辨率DPI、主题美化)

    前言 xff1a 为什么是Mint 笔者算是Linux老用户了 xff0c 作为一个后端开发 xff0c 尝试了多种不同发行版 一开始是Manjaro这种Arch系 xff0c 但是其对于开发而言实在是太过不稳定 xff1b 每次滚动更新都
  • 常用主题建模方法简单对比LSA&PLSA&LDA&HDP

    几种常用的主题建模方法 潜在语义分析 LSA I 概率潜在语义分析 PLSA 潜在狄利克雷分布 LDA 层次狄利克雷过程 HDP LSA I存在的主要问题 SVD计算非常耗时 xff0c 尤其文本处理 xff0c 词和文本数都是非常大的 x
  • banner2.1新版的使用,图片加载方法

    新版banner没有了设置图片和加载图片的方法 xff0c 弄了好几天才发现要设置适配器才可以使用 使用banner setaAapter方法设置适配器 xff0c 里面创建一个匿名内部类 xff0c 然后继承BannerImageAdap
  • yum解决依赖问题巧用

    1 使用yum查找软件需要用到的依赖包 xff0c 需要使用的命令是 xff1a yum deplist 34 要查找的软件 34 例如要查找 安装 redis 需要 的依赖软件有哪些 xff1a yum deplist redis 2 假
  • ubuntu linux 下载的deb包存放位置

    var cache apt archives
  • VMware快捷启动虚拟机+开机自启动

    场景 需要快速启动vm中的虚拟机服务 实现 编写bat文件 xff08 新建txt文件写完改成 bat文件即可 xff09 span class token string 34 D Dev tools VMware span class t
  • Zookeeper思维导图

  • cnpminstall报错:Connecttimeoutfor5000ms踩坑

    问题 xff1a 安装Head插件 xff0c 执行cnpm install 报错 xff0c 报错如下 xff1a Get binary mirror config latest from https registry npm taoba
  • 解决执行grunt命令报错【Cannot find module 'coffeescript/register'】

    在使用grunt的插件执行grunt命令时报错 xff1a 如图 xff1a 报错信息 xff1a Cannot find module 39 coffeescript register 39 解决办法 xff1a 1 xff1a 删除项目
  • Linux命令(1)

    1 判断一个命令的类型 type xff1a 格式 xff1a type xff08 一个空格 xff09 命令 作用 xff1a 判断该类型是内部还是外部命令 还可以显示该命令文件路径 2 查看一个文件的类型 file 格式 xff1a
  • 关于单链表的理解

    链表是一种物理 存储单元上非连续 非顺序的 存储结构 xff0c 数据元素的逻辑顺序是通过链表中的 指针链接次序实现的 链表由一系列结点 xff08 链表中每一个元素称为结点 xff09 组成 xff0c 结点可以在运行时动态生成 每个结点
  • selinux is active unexpected inconsistency RUN fsck MANUALLY

    启动centos6 5时报错 xff0c 错误主要是 xff1a selinux is active unexpected inconsistency RUN fsck MANUALLY 原因是因为意外关机如断电 xff0c 或者虚拟机中强
  • Linux永久修改主机名

    hostnamectl set hostname xxx
  • 去除重复字母(Java实现)

    题目 去除重复字母 给你一个字符串 s xff0c 请你去除字符串中重复的字母 xff0c 使得每个字母只出现一次 需保证 返回结果的字典序最小 xff08 要求不能打乱其他字符的相对位置 xff09 示例1 输入 xff1a s 61 b
  • JDK介绍(笔记学习)

    JDK介绍 1 JRE和JDK xff08 记忆 xff09 JDK 称为Java开发工具 xff0c 包含了JRE和开发工具 JRE Java运行环境 xff0c 包含了JVM和Java的核心类库 xff08 Java API xff09
  • Collections类(笔记)

    1 Collections的常用功能 重点 import java util Collections java util Collections是集合工具类 xff0c 用来对集合进行操作 常用方法如下 xff1a public stati
  • 计算机网络原理学习笔记第一篇

    计算机网络的出现 世界上第一台电子计算机问世于1946年 xff0c 由于当时造价昂贵 体积极大等原因 xff0c 因此计算机的数量极少 计算机系统是高度集中的 xff0c 它的所有设备都安装在单独的机房中 xff0c 为了提高计算机的利用
  • mac下Tomcat启动成功后浏览器输入localhost:8080拒绝连接的解决办法

    今天根据大佬们的安装教程将Tomcat安装并成功启动 xff0c 而在浏览器中输入localhost xff1a 8080后却出现了 localhost拒绝了我们的连接请求 的字样 xff0c 网上的解决方案五花八门 xff0c 水平也是参
  • Linux中的软件管理

    Linux中的软件管理 yum源头 定义 xff1a yum源是一个软件集合地 xff0c 只需要搜索并安装你想要的软件 yum的全称是Yellowdog Updater Modified xff0c 是一个shell前端软件包管理器 xf