【日常积累】RPM包依赖下载及私有yum仓库搭建

news2024/11/26 8:44:00

概述

某些时候,我们需要下载某个RPM包依赖的依赖。如某些内网环境,就需要自行准备rpm包。可以通过能上互联网的服务器进行相应的rpm包下载,然后在拷贝到相应的服务器安装,或者搭建自己的内容rpm包仓库。

查看*.rpm 包依赖:

#可以任意找一个rpm包测试
[root@k8s-m1 ~]# find  / -name *.rpm
/root/kernel-lt-5.4.186-1.el7.elrepo.x86_64.rpm
[root@k8s-m1 ~]# rpm -qpR /root/kernel-lt-5.4.186-1.el7.elrepo.x86_64.rpm
warning: /root/kernel-lt-5.4.186-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA256 Signature, key ID baadae52: NOKEY
fileutils
module-init-tools >= 3.16-2
initscripts >= 8.11.1-1
grubby >= 8.28-2
dracut >= 001-7
linux-firmware >= 20100806-2
/usr/sbin/new-kernel-pkg
/usr/sbin/new-kernel-pkg
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1

查找RPM依赖

安装*.rpm 包时,如果缺少依赖,报错信息中会打印出缺少的依赖:
rpm -ivh [package]

然后通过查询 https://pkgs.org/ 来查询包的依赖关系。如查找centos7下net-tools所需的依赖
在这里插入图片描述

通过此种方法下载rpm包的依赖有时候很麻烦,因为很可能包的依赖是连锁的,适合依赖包比较少的环境。如果所依赖的rpm包很复杂,推荐以下方法。

下载RPM依赖

centos7为例:
通过yum install --downloadonly --downloaddir=[download_dir] [package] 来只下载包不安装包,然后通过缓存来在不能连接互联网的服务器上安装。下载时,最好服务器的系统类型和版本一致,避免版本不兼容的情况发生。

#下载某个rpm包的缓存
[root@k8s-m1 ~]# rpm -qpR  /tmp/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm |xargs yum install --downloadonly

#缓存已有rpm包的依赖
[root@k8s-m1 ~]#  rpm -qpR /var/cache/yum/x86_64/7/*/packages/*.rpm |xargs yum install --downloadonly

[root@k8s-m1 ~]#  cd /var/cache/yum/x86_64/7
[root@k8s-m1 ~]#  rpm -qpR  */packages/*|egrep "<|>=" |egrep -v "\(|\)"|awk -F " >= " '{print $1}'|xargs yum install --downloadonly

或者修改yum的配置文件/etc/yum.conf,如下,需要在本服务器下载并安装:

#修改配置
[root@k8s-m1 ~]#  vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever  #缓存下载目录,这是默认位置
keepcache=1   #keepcache为0表示不缓存,为1 表示缓存
......

#安装所需yum包
[root@k8s-m1 ~]#  yum install docker-ce-18.06.0.ce-3.el7 -y
....

然后到相应的目录查看并拷贝所依赖的rpm包,centos7 目录如下:

[root@k8s-m1 ~]#  ll /var/cache/yum/x86_64/7/*/packages/*.rpm
-rw-r--r-- 1 root root 42643244 Jul 28  2020 /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-18.06.0.ce-3.el7.x86_64.rpm
-rw-r--r-- 1 root root    40816 Jul  6  2020 /var/cache/yum/x86_64/7/extras/packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
-rw-r--r-- 1 root root    78256 Aug 23  2019 /var/cache/yum/x86_64/7/os/packages/audit-libs-python-2.8.5-4.el7.x86_64.rpm
-rw-r--r-- 1 root root   302068 Nov 12  2018 /var/cache/yum/x86_64/7/os/packages/checkpolicy-2.5-8.el7.x86_64.rpm
-rw-r--r-- 1 root root    67720 Aug 23  2019 /var/cache/yum/x86_64/7/os/packages/libcgroup-0.41-21.el7.x86_64.rpm
-rw-r--r-- 1 root root   115284 Nov 12  2018 /var/cache/yum/x86_64/7/os/packages/libsemanage-python-2.5-14.el7.x86_64.rpm
-rw-r--r-- 1 root root    50076 Apr 13  2017 /var/cache/yum/x86_64/7/os/packages/libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
-rw-r--r-- 1 root root   468316 Apr  4  2020 /var/cache/yum/x86_64/7/os/packages/policycoreutils-python-2.5-34.el7.x86_64.rpm
-rw-r--r-- 1 root root    32880 Jul  4  2014 /var/cache/yum/x86_64/7/os/packages/python-IPy-0.75-6.el7.noarch.rpm
-rw-r--r-- 1 root root   635184 Nov 12  2018 /var/cache/yum/x86_64/7/os/packages/setools-libs-3.3.8-4.el7.x86_64.rpm

私有yum仓库搭建

使用了http服务作为访问方式。

[root@k8s-m1 ~]# cat create_repo.sh
#注意baseurl中的IP地址
#!/bin/bash
yum install -y httpd createrepo 
mkdir -p /var/www/html/data/yum
createrepo -pdo  /var/www/html/data/yum /var/www/html/data/yum
find /var/cache/yum/  -name *.rpm -exec cp {} /var/www/html/data/yum  \;
createrepo --update /var/www/html/data/yum
systemctl start httpd
cat >>/etc/yum.repos.d/test.repo <<EOF
[test_yum]
name= test_yum
baseurl=http://192.168.2.140/data/yum
gpgcheck=0
EOF
#yum clean all
#yum makecache
#yum repolist all

通过指定yum仓库进行安装,为验证效果,可以先将其他repo源进行重命名或者移至其他文件夹。

[root@k8s-m1 ~]# cd /etc/yum.repos.d/
[root@k8s-m1 ~]# mkdir repo
[root@k8s-m1 ~]# mv CentOS-* docker-ce.repo  repo/
[root@k8s-m1 ~]# yum install docker-ce-18.06.0.ce-3.el7  --enablerepo=test_yum -y
#实验效果是能正常安装

更多关于Linux的知识请前往博客主页查看。

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

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

相关文章

修改el-tooltip组件的背景色

修改el-tooltip组件的背景色 // 提示气泡的背景色 .el-tooltip__popper{background-color: pink !important; } .popper__arrow {border-top-color: pink !important; } .popper__arrow:after {border-top-color: pink !important; }

基于通达信量化接口会实现自动交易吗?(股票自动下单接口)

通常情况下&#xff0c;在开发股票交易接口时&#xff0c;会包含多个接口功能的研发&#xff0c;因此通达信量化接口可以实现自动化交易。即通过通达信的API接口&#xff08;股票自动下单接口&#xff09;&#xff0c;可以实现与交易所的连接和交互&#xff0c;包括下单、撤单、…

Vue3 引用第三方Swiper内容触摸滑动简单应用

去官网查看更多教程→&#xff1a;Swiper官网 → 点击教程在vue中使用Swiper→ 在Vue中使用Swiper cd 到项目 安装Swiper&#xff1a; cnpm install --save swiper 安装指定版本 cnpm install --save swiper8.1.6 9.4.1 10.1.0…

【CI/CD】Rancher K8s

Rancher & K8s Rancher 和 K8s 的关系是什么&#xff1f;K8s 全称为 Kubernetes&#xff0c;它是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用。而 Rancher 是一个完全开源的企业级多集群 Kubernetes 管理平台&#xff0c;实现了 Kubernetes 集群在混合…

OpenCV图像处理——边缘检测

目录 原理Sobel检测算子方法应用 Laplacian算子Canny边缘检测原理 原理 Sobel检测算子 方法 应用 sobel_x_or_ycv.Sobel(src,ddepth,dx,dy,dst,ksize,scale,delta,borderType)import numpy as np import cv2 as cv import matplotlib.pyplot as pltimgcv.imread(./汪学长的随堂…

Python学习 -- 常用函数与实例详解

在Python编程中&#xff0c;数据转换是一项关键任务&#xff0c;它允许我们在不同数据类型之间自由流动&#xff0c;从而提高代码的灵活性和效率。本篇博客将深入探讨常用的数据转换函数&#xff0c;并通过实际案例为你展示如何巧妙地在不同数据类型之间转换。 数据类型转换函…

红日ATT&CK VulnStack靶场(三)

网络拓扑 web阶段 1.扫描DMZ机器端口 2.进行ssh和3306爆破无果后访问web服务 3.已知目标是Joomla&#xff0c;扫描目录 4.有用的目录分别为1.php 5.configuration.php~中泄露了数据库密码 6.administrator为后台登录地址 7.直接连接mysql 8.找到管理员表&#xff0c;密码加密了…

日常BUG—— SpringBoot项目DEBUG模式启动慢、卡死。

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 我们调试程序时&#xff0c;需要使用DEBUG模式启动SpringBoot项目&#xff0c; 有时候会发…

【C++入门到精通】C++入门 —— list (STL)

阅读导航 前言一、list简介1.概念2.特点 二、list的使用1.list的构造2.常见的操作⭕std::list类型的增、删、查、改 三、list与vector的对比温馨提示 前言 文章绑定了VS平台下std::list的源码&#xff0c;大家可以下载了解一下&#x1f60d; 前面我们讲了C语言的基础知识&…

如何做好一名网络工程师?具体实践?

预防问题 – 资格与认证 在安装线缆或升级网络时测试线缆是预防问题的有效方式。对已安装布线进行测试的方法有两种。 资格测试确定布线是否有资格执行某些操作 — 换言之&#xff0c;支持特定网络速度或应用。尽管“通过”认证测试也表明按标准支持某一网络速度或应用的能力…

国企的大数据岗位方向的分析

现如今大数据已无所不在&#xff0c;并且正被越来越广泛的被应用到历史、政治、科学、经济、商业甚至渗透到我们生活的方方面面中&#xff0c;获取的渠道也越来越便利。 今天我们就来聊一聊“大屏应用”&#xff0c;说到大屏就一定要聊到数据可视化&#xff0c;现如今&#xf…

vue自定义穿梭框支持远程滚动加载

分享-2023年资深前端进阶&#xff1a;前端登顶之巅-最全面的前端知识点梳理总结&#xff0c;前端之巅 *分享一个使用比较久的&#x1fa9c; 技术框架公司的选型(老项目)&#xff1a;vue2 iview-ui 方案的实现思路是共性的&#xff0c;展现UI样式需要你们自定义进行更改&#…

大数据课程J1——Scala的概述

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点&#xff1b; ⚪ 了解Scala的开发环境搭建&#xff1b; ⚪ 了解Scala的开发工具&#xff1b; 一、概述 1.简介 Scala既是面向对象的语言&#xff0c;…

大数据大屏的分析

今天又进行了大屏的训练&#xff0c;就是很多的报表头是最难的&#xff0c;因为确定了头&#xff0c;就确定了大屏的风格了。 今天的还是有点丑但是也是学习了。报班报班~~~~

高等数学教材啃书汇总重难点(二)导数与微分

本帖更新第二章的重点知识。对于数学一中的证明题&#xff0c;主要集中在第三章的各种中值定理&#xff0c;而其他章节的证明&#xff0c;重要程度较低。因此在日常学习的过程中&#xff0c;学有余力时可以死磕一些不重要的证明题&#xff0c;而压力较大时建议着重攻克。 本章…

c++复习--类和对象

目录 一、 类和对象(熟练掌握) 1. 面向对象和面向过程的理解 2. 面向对象三大特性是什么&#xff1f; 2.1. 封装 2.2 继承 2.3 多态 3. 8个默认成员函数 ​3.1 构造和析构 3.1.1构造函数 3.2 拷贝构造和拷贝赋值 3.2.1 拷贝构造 3.2.2 拷贝赋值 3.3 移动构造和移动赋…

[HDLBits] Exams/m2014 q4b

Implement the following circuit: module top_module (input clk,input d, input ar, // asynchronous resetoutput q);always(posedge clk or posedge ar) beginif(ar)q<1b0;elseq<d;end endmodule

【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态SQL

【JavaEE】MyBatis框架要点总结&#xff08;3&#xff09; 文章目录 【JavaEE】MyBatis框架要点总结&#xff08;3&#xff09;1. 多表查询1.1 映射表resultMap1.2 只有部分属性跨表查询1.2.1 依照常规去写代码1.2.2 用标签去实现接口 1.3 分多步的解决方案1.4 与多线程的结合 …

案例研究|大福中国通过JumpServer满足等保合规和资产管理双重需求

“大福中国为了满足安全合规要求引入堡垒机产品&#xff0c;在对比了传统型堡垒机后&#xff0c;发现JumpServer使用部署更加灵活&#xff0c;功能特性丰富&#xff0c;能够较好地满足公司在等保合规和资产管理方面的双重需求。” ——大福&#xff08;中国&#xff09;有限公…

【C/C++】STL queue 非线程安全接口,危险!

STL 中的 queue 是非线程安全的&#xff0c;一个组合操作&#xff1a;front(); pop() 先读取队首元素然后删除队首元素&#xff0c;若是有多个线程执行这个组合操作的话&#xff0c;可能会发生执行序列交替执行&#xff0c;导致一些意想不到的行为。因此需要重新设计线程安全的…