当前位置: 首页 > news >正文

内网Debian\Ubuntu服务器安装dep包,基于apt-rdepends下载相关依赖

文章目录

  • 背景
  • 一、下载依赖
  • 二、拷贝到内网
  • 三、 使用dpkg安装
  • 可能会遇到的问题

背景

由于生产服务器是Debian\Ubuntu系统且在内网环境(不联网),需要使用拷贝deb格式的包使用dpkg的方式进行安装。所以,需要现在联网的环境中将所需的软件包下载完之后,拷贝到内网环境。如果仅仅只是通过apt-get download的方式下载后,拷贝进内网直接安装,可能会安装不上,因为有些包存在依赖关系,例如A依赖B,我们只下了A,在内网安装的时候就会因为没有安装B而报错,而且有些软件包的依赖比较多,一个一个的报错再解决也不太现实。基于此,使用apt-rdepeneds工具用来分析依赖关系,一次性下载完所有依赖包之后,统一拷到内网安装。

如果有其他更好的建议,请留言指教!

一、下载依赖

如果联网环境的服务器apt-rdepends未安装,使用apt-get install apt-rdepends命令安装即可

相关文章:apt-rdepends使用

1 获取依赖项列表:首先,通过 apt-rdepends 获取所有依赖包的列表。假设你要查询包 mypackage 的依赖关系,命令如下:

apt-rdepends <包名1> <包名2>

apt-rdepends后面可以使用一个或者多个包名

2 过滤出包名apt-rdepends 的输出会包含包名和依赖关系的层级结构。你需要过滤掉重复的包名和无关信息,只保留唯一的包名列表。你可以使用 grepawk 来提取包名,并通过 sortuniq 去重:

apt-rdepends <包名1> <包名2> | grep -v "^ " | awk '{print $1}' | sort -u

3 转换为 apt-get download 命令:将上一步生成的包名列表转换为可以通过 apt-get download 下载的命令。通过 xargs 可以将包名传递给 apt-get download 进行批量下载:

apt-rdepends <包名1> <包名2> | grep -v "^ " | awk '{print $1}' | sort -u | xargs -I{} apt-get download {}

这段命令的工作方式:

  • apt-rdepends mypackage 输出包及其依赖项。
  • grep -v "^ " 过滤掉以空格开头的行(这些行通常是依赖关系的层级结构)。
  • awk '{print $1}' 提取包名。
  • sort -u 排序并去除重复项。
  • xargs -I{} sudo apt-get download {} 将每个包名传递给 apt-get download 进行下载。

这将会自动下载 mypackage 及其所有依赖项。

二、拷贝到内网

将上一步下载的依赖拷贝到内网服务器

三、 使用dpkg安装

在对应文件夹执行命令

dpkg -i *.deb

可能会遇到的问题

使用dpkg -i *.deb安装脚本时,在安装A的时候,必须有B,但是B对应的deb我们也已经下载完了

实际报错举例:A: apt_2.0.10_amd64.deb,B:ubuntu-keyring

在内网服务器安装A:apt时报错

Preparing to unpack apt_2.0.10_amd64.deb ...
Unpacking apt (2.0.10) over (2.2.4) ...
dpkg: dependency problems prevent configuration of apt:
apt depends on ubuntu-keyring; however:
Package ubuntu-keyring is not installed.
dpkg: error processing package apt (--install):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.31-13+deb11u3) ...
Errors were encountered while processing:
apt

这里的报错就是 在安装apt_2.0.10_amd64.deb时,由于没有ubuntu-keyring依赖,所以报错了

这种情况下先执行B的安装脚本即可,例如

dpkg -i B.deb
dpkg -i *.deb

也可以试试基于apt-cache depends的方式,初步试了一下,也是可以下载到对应的依赖包
https://blog.csdn.net/qq_41230149/article/details/128801103

相关文章:

内网Debian\Ubuntu服务器安装dep包,基于apt-rdepends下载相关依赖

文章目录 背景一、下载依赖二、拷贝到内网三、 使用dpkg安装可能会遇到的问题 背景 由于生产服务器是Debian\Ubuntu系统且在内网环境&#xff08;不联网&#xff09;&#xff0c;需要使用拷贝deb格式的包使用dpkg的方式进行安装。所以&#xff0c;需要现在联网的环境中将所需的…...

大模型——如何实现超长多轮对话

在自然语言处理的领域中&#xff0c;多轮对话系统是构建智能化交互应用的关键。无论是聊天机器人、虚拟助手&#xff0c;还是客户服务系统&#xff0c;能够保持连贯的对话并记住上下文信息是用户体验的核心。然而&#xff0c;大规模语言模型&#xff08;如GPT等&#xff09;的对…...

大数据面试-笔试SQL

一个表table: c_id u_id score&#xff1b;用SQL计算每个班级top5学生的平均分&#xff08;腾讯&#xff09; select class_id,avg(score) as score_avg from (select *,row_number() over(partition by class_id order by score desc) as score_rank from table ) t1 where t…...

希尔排序和直接插入排序

因为排序这些比较复杂点我就分几期给大家来讲~~~ 直接插入排序 直接插入排序是一种简单的排序算法&#xff0c;主要用于对少量数据进行排序。其基本思想是将待排序的元素逐个插入到已经排好序的部分中&#xff0c;从而形成一个有序序列。 具体步骤如下&#xff1a; 初始化&…...

IDEA 配置 Git 详解

本文将介绍在IntelliJ IDEA 中如何配置Git 没有安装配置 Git 的可以参考我的这篇文章&#xff1a;安装配置 Git 一、操作环境及准备 1.win 10 2.已安装且配置了Git 3.有Gitee账户 4.安装了IntelliJ IDEA 2023.2.1 5.全程联网 二、配置步骤 2.1 配置git 1.采用全局设置&…...

Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南

Docker 部署 Redis 监控系统实战&#xff1a;Redis Exporter 与 Prometheus 完整配置指南 文章目录 Docker 部署 Redis 监控系统实战&#xff1a;Redis Exporter 与 Prometheus 完整配置指南一 缓存简述二 redis exporter 部署三 环境变量配置四 修改文件权限五 验证 exporter …...

高级算法设计与分析-MaxFlow网络流基础知识

MaxFlow网络流 1 网络流基础概念 source:源点 sink:终点 Flow:流量 capacity:容量 Residual:残量 Residual Network:残量网络 Augmenting path:增广路径,表示从源点 s 到终点 t 不包含环的路径 Bottleneck capacity:瓶颈容量 2 最大流 2.1 基础概念 2.2 增广路算法 …...

Java项目实战II基于Java+Spring Boot+MySQL的桂林旅游景点导游平台(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 桂林&#xff0c;以其独特的喀斯特地貌、秀美的自然风光闻名遐迩&#xff0c;每年吸引着无数国内外游…...

C语言-输入输出

实验一&#xff1a;编写一个输出两行自定义字符的 C 程序 一、实验目的 熟悉 C 语言的基本结构和语法。掌握 printf() 函数的使用方法。了解在 Code::Blocks 中编写、编译和运行程序的过程。 二、实验内容 编写一个 C 程序&#xff0c;要求输出两行字符&#xff0c;内容自定…...

如何在GitHub上传自己的项目?(一文看懂,每一步的操作和解决常见错误的方法)

目录 步骤一&#xff1a;准备 Git 环境 1. 安装 Git 2. 配置 Git 步骤二&#xff1a;在 GitHub 创建一个新的仓库 1. 登录到你的 GitHub 账号。 2. 点击右上角的 号&#xff0c;然后选择 New repository。 3. 填写以下信息&#xff1a; 步骤三&#xff1a;将本地项目上…...

数据结构_day1

目录 大纲 1.数据结构基础知识 1.1 什么是数据结构 1.2 数据 1.3 逻辑结构 1.4 存储结构 1.4.1 顺序存储 1.4.2 链式存储 1.4.3 索引存储结构 1.4.4 散列存储 1.5 操作 2.算法基础知识 2.1 什么是算法 2.2 算法的设计 2.3 算法的特性 2.4 评价算法的好坏 大纲 数据结构、算法(理…...

c# using 声明进行资源管理

在 C# 8 中&#xff0c;using 声明引入了一种新的语法&#xff0c;称为 using 声明&#xff0c;它使得开发人员在处理资源时的代码更加简洁和清晰。主要的变化包括 使用声明 和 使用上下文&#xff08;using declaration&#xff09; 的引入。 使用语句的简化 在 C# 8 中&…...

Kafka之基本概念

1、Kafka是什么&#xff1f; Kafka是由Scala语言开发的一个多分区、多副本&#xff0c;基于Zookeeper集群协调的系统。 那这个所谓的系统又是什么系统呢&#xff1f; 回答这个问题要从发展的角度来看&#xff1a;起初Kafka的定位是分布式消息系统。但是目前它的定位是一个分布…...

倪师学习笔记-天纪-斗数简介

一、学习过程 学习->验证->思考 二、算命方法 算命方法特点铁板神数适合核对六亲子平法准确度一般紫微斗数天文地理融合最好&#xff0c;批六亲不准&#xff0c;配合相可以提升准确率 三、果 天地人三者一起影响果&#xff0c;天时地利人和促成成功1/31/31/31算命部…...

Python酷库之旅-第三方库Pandas(143)

目录 一、用法精讲 646、pandas.Timestamp.is_quarter_start属性 646-1、语法 646-2、参数 646-3、功能 646-4、返回值 646-5、说明 646-6、用法 646-6-1、数据准备 646-6-2、代码示例 646-6-3、结果输出 647、pandas.Timestamp.is_year_end属性 647-1、语法 647…...

细说QT各种线程锁的特点和用法

文章目录 QMutex特点用法QReadWriteLock特点用法QSemaphore特点用法QWaitCondition特点用法在Qt框架中,提供了多种线程同步机制,包括互斥锁(Mutex)、读写锁(Read-Write Lock)、信号量(Semaphore)和条件变量(Wait Conditions)。这些机制用于处理多线程编程中的数据一致性和线程…...

Caffeine+Redis两级缓存架构

CaffeineRedis两级缓存架构 在高性能的服务项目中&#xff0c;我们一般会将一些热点数据存储到 Redis这类缓存中间件中&#xff0c;只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时&#xff0c;也能降低数据库的压力。 但是在一些场景下单纯使用 Redis 的分布…...

kafka和zookeeper单机部署

安装kafka需要jdk和zookeeper环境&#xff0c;因此先部署单机zk的测试环境。 zookeeper离线安装 下载地址&#xff1a; zookeeper下载地址&#xff1a;Index of /dist/zookeeper 这里下载安装 zookeeper-3.4.6.tar.gz 版本&#xff0c;测试环境单机部署 上传服务器后解压缩 …...

别了,公有云!下云迁移真的是大趋势么?

【科技明说 &#xff5c; 科技热点关注】 不知道你们还有没有印象&#xff0c;早在2022年&#xff0c;IBM发布了《IBM 企业转型指数&#xff1a;云现状》中也反映了这一趋势&#xff1a;80%的企业已经考虑或正在考虑将已经部署到公有云上的工作负载迁回私有的基础设施。 然而&…...

网关在不同行业自动化生产线的应用

网关在不同行业自动化生产线的应用&#xff0c;展示了其作为信息与物理世界交汇点的广泛影响力&#xff0c;尤其在推动行业智能化、自动化方面发挥了不可估量的作用。以下是网关技术在污水处理、智慧农业、智慧工厂、电力改造及自动化控制等领域的深入应用剖析。 1. 污水处理 …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...