下载 deb 安装包及其依赖包

news/2025/2/21 9:30:59/文章来源:https://www.cnblogs.com/sinodragon21/p/18724521

转载自:https://blog.biofan.org/2020/04/apt-download/

 

这两天要为离线的 arm 服务器安装几个 deb 包,因为这些包都有许多上游的依赖包,得 一起把它们下载到本地。

这里以 ubuntu 18.04 (bionic) 为例,下载 arm64 架构的几个包。

首先就是配置安装源,因为本地环境不是 ubuntu,需要先搞一个 ubuntu 的环境,可以 考虑使用 docker 或者 debootstrap。这里选择使用后者,操作起来要更简单。

配置 ubuntu 18.04 amd64 环境

sudo debootstrap bionic rootfs http://mirrors.aliyun.com/ubuntu

这里用的是阿里云的安装源,系统目录位于 rootfs

安装好基本系统之后,需要 chroot 进行,修改和配置。

$ sudo chroot rootfs

之后,先修改安装源,将以下内容保存到 /etc/apt/sources.list中:

deb [arch=amd64] http://mirrors.aliyun.com/ubuntu bionic main restricted multiverse universe
deb [arch=amd64] http://mirrors.aliyun.com/ubuntu bionic-updates main restricted multiverse universe
deb [arch=amd64] http://mirrors.aliyun.com/ubuntu bionic-backports main restricted multiverse universe
deb [arch=amd64] http://mirrors.aliyun.com/ubuntu bionic-security main restricted multiverse universedeb [arch=arm64] http://ports.ubuntu.com/ bionic main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ bionic-updates main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ bionic-backports main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ bionic-security main restricted multiverse universedeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted multiverse universe
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports bionic-security main restricted multiverse universe

这里,使用的 arm64 架构的源是 Ubuntu 官方 ports 源。

接下来打开 multiarch,支持 arm64架构:

# dpkg --add-architecture arm64

之后更新包列表:

# apt update

下载 arm64 的安装包

为了尽可能下载所需要的依赖,我们使用 apt-rdepends 工具做依赖检查,首先将它安装到 系统中:

# apt install apt-rdepends

之后,使用下面的脚本(可命名为 doenload_deb.sh)下载需要的 deb 包及其依赖:

#!/bin/bashreadonly TARGET=$1
for pkg in $(apt-rdepends ${TARGET} | grep -v "^ " | grep -v "^libc-dev$"); doapt-get download ${pkg}:arm64 | apt-get download ${pkg}:all
done

以上脚本中,会一直追踪包的上游依赖,直到 libc-dev。另外,考虑到有些包,比如好多 python 的包,都是支持多种架构的,我们就先尝试下载 arm64 版本的包,如果失败了, 再尝试下载通用架构的包。

使用方法也很简单,比如下载 ansible 和 vim 这两个包的话,可以:

# ./download_deb.sh ansible
# ./download_deb.sh vim

安装

将下载好的这些 deb 包,同步到待安装的离线 arm 服务器上,然后直接安装即可:

$ sudo dpkg -i *.deb

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新扣子(Coze)案例教程:DeepSeek 图像生成,用扣子应用打造超萌表情包生成器,手把手教学,完全免费教程

上一篇文章和大家分享了如何把DeepSeek-R1接入到扣子智能体中进行使用,这篇教程让我们来应用一下DeepSeek,使用DeepSeek结合工作流中的图像生成节点,打造一个表情包生成器的应用。 应用作用:输入一个人物或动物主题,生成一组表情包。 首先我们来看一下生成后的效果: 图像…

我悟了!原来本地图片预览还能这样搞

在网页开发中,经常会遇到需要让用户上传图片并在上传前进行预览的需求。这样做的好处显而易见:用户可以立即看到自己选择的图片是否正确,避免了不必要的上传和服务器资源浪费,提升了用户体验。Hey, 我是 Immerse 本文首发于 【沉浸式趣谈】,我的个人博客 https://yaolifen…

octave画高通滤波、超前,滞后补偿器的幅频响应图

octave代码非常简单:pkg load control s=tf(s); k=0.5; sysG1=k*(0.005*s)/(0.005*s+1); sysG2=k*(0.8*s+1)/(0.1*s+1); sysG3=k*(s+1)/(5*s+1); figure bode(sysG1) figure bode(sysG2) figure bode(sysG3)也可以借助循环,看如下代码:1 pkg load control2 s=tf(s);3 k=0.5;…

frame切换/窗口切换

frame切换/窗口切换 切换到frame点击这里,边看视频讲解,边学习以下内容 请大家点击这里,打开这个链接 如果我们要 选择 下图方框中 所有的 蔬菜,使用css选择,怎么写表达式? 当然,要先查看到它们的html元素特征大家可能会照旧写出如下代码:from selenium import webdriv…

选择元素的基本方法

选择元素的基本方法点击这里,边看视频讲解,边学习以下内容对于百度搜索页面,如果我们想自动化输入 白月黑羽 ,怎么做呢? 这就是在网页中,操控界面元素。 web界面自动化,要操控元素,首先需要 选择 界面元素 ,或者说 定位 界面元素 就是 先告诉浏览器,你要操作 哪个 …

操控元素的基本方法

操控元素的基本方法 点击这里,边看视频讲解,边学习以下内容选择到元素之后,我们的代码会返回元素对应的 WebElement对象,通过这个对象,我们就可以 操控 元素了。 操控元素通常包括 点击元素在元素中输入字符串,通常是对输入框这样的元素获取元素包含的信息,比如文本内容…

CClink IEF Basic设备数据 转EthernetIP项目案例

VFBOX协议转换网关支持PLC,modbus,EthernetIP,Profinet,CCLink,EtherCAT,IEC61850,IEC104,bacnet,DLT645,HJ212,opc ua,opc da,DNP3。目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集CCLINK IEF BASIC数据 2 5 使用ETHERNETIP转发数据 5 6 案例…

SciTech-EECS-BigDataAIML-NN(神经网络): Forward NN(前向传播算法)

SciTech-EECS-BigDataAIML-NN(神经网络): Forward NN(前向传播算法)

微信小程序-实现微信授权自动登录功能

显示效果 授权前界面授权弹框界面 采用了wx.getUserProfile API申请用户信息,若基础库版本过高,例如3.7.7,则不会显示弹窗,默认为允许状态。若基础库版本降低,例如2.25.4,则会显示弹窗,如下图所示授权后界面前端部分 基础封装 新建utils文件夹,在该文件夹下新建login.j…

为DeepSeek添加本地知识库

为什么要尝试给DeepSeek添加本地知识库呢?作为一个程序员,以前也用过很多AI产品,直到春节DeepSeek爆火,成功在自己的电脑上把AI模型跑起来的时候才真正感受到AI已近在咫尺。未来很多应用和项目都离不开这个工具。或许在我们OA系统中会出现一个AI小助手,我们会问它差旅费报…

SciTech-EECS-Circuits-Digital(数字电路): Latch(锁存器) + Flip/Flop(触发器) + 记忆存储电路

SciTech-EECS-Circuits-Digital(数字电路) Latch(锁存器)Flip/Flop(触发器)记忆存储电路

山石网科阿里云通义灵码,开启研发“AI智造”新时代

近日,山石网科正式宣布全面接入阿里云通义灵码企业专属版,这标志着山石网科在研发智能化、自动化领域迈出重要一步,为研发工作注入强大的AI动力,实现多维度的效率飞跃。近日,山石网科正式宣布全面接入阿里云通义灵码企业专属版,这标志着山石网科在研发智能化、自动化领域…