- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在为linux设备开发一个带有离线sdk的更新/升级服务。
其目的是将更新/升级linux服务复制到脱机设备中。“离线”设备能够访问“互联网”,但只能通过使用sdk的消息交换和其他设备(多跳)。设备来自不同的架构,因此具有“Internet”功能(网关)的设备必须能够请求和下载要升级到不同架构的包。网关设备必须能够缓存从更新中下载的请求包(充当cdn),从而避免repo请求。
脱机设备没有IP地址,通信方式也不相关,因为脱机的sdk保证了多跳网络的可访问性。
我需要什么-我需要有人给我提供一些关于Linux上更新/升级工作流程的帮助或指导。
到目前为止我发现:
更新
update命令加载/etc/apt/sources.list
不知道update如何解析/etc/apt/sources.list上的每一行,它似乎有一个函数,在其中加载与相应repo文件夹匹配的“deb”a“link”和“arguments”。
之后,它开始下载每个解析链接中的所有相应“包”文件。
升级
比较更新的本地“包”文件和repo中的“包”文件。
有更新/升级的源代码吗?
我在apt repos上做了一些web搜索,但是找不到更新/升级功能。
最佳答案
@关于网关的代理设置,它不符合我的目的。脱机设备向网关发出更新请求。我们可以假设网关没有Internet限制。我认为没有必要把大门变成一面镜子。我对将该进程复制到脱机sdk中的更新/升级机制更感兴趣。
目前,我的问题是脱机设备是ARM,网关是x64,当我从x64体系结构中的ARM请求sources.list更新时,更新二进制文件将返回一个错误的体系结构错误。
因此,我需要知道如何使网关忽略架构,并根据源下载包更新。列表我将其设置为加载,而不考虑架构。
@ BenjaminW。当我发布这个问题时,我开始着手下载apt源代码,并意识到apt-get会加载你提到的二进制文件(更新和升级)。谢谢你的小费。不过,我现在正试图更好地了解更新和升级机制的工作原理:
-我知道更新会加载/etc/apt/lists/sources.list
-我将sources.list从脱机设备(arm)传输到网关设备(x64)并在网关上启动更新。
-网关上的更新读取我从ARM放在那里的sources.list,当它开始解析时,显示错误“跳过配置文件的获取…不支持体系结构…”
我要做的是让网关忽略体系结构,并从arm中强制执行source.list。我只需要打包文件。
你还有其他想法或其他方法吗?
关于c - Linux“apt-get更新”工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45919115/
我一直在尝试让 yum 在代理设置后面工作 导出 https_proxy、http_proxy 和 ftp_proxy。 这对 apt-get 或 yum 不起作用,但当我在 /etc/apt/apt
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
为什么基于 Debian 的 Linux 发行版具有apt以及apt-get?apt是替换还是他们apt-get 有不同的目的?我们解释这两个命令之间的关系。 Debian 软件包管理系统 创建Lin
例如,当安装 lirc 包时,它会提供配置对话框屏幕。如何自动化以选择默认值(或可能提供特定值)并继续? 现在我有一个简单的脚本: #!/usr/bin/env python import a
我有一个 APT 处理器,在某些情况下会显示警告。我的项目正在使用 maven1 构建调用 ant:apt 如何让maven在满足警告条件时失败? (处理器可以修改) 谢谢。 最佳答案 注释处理器需要
我在 Windows 上使用 WSL。我无法使用 apt 或 apt-get 这是我在尝试使用 apt 或 apt-get 时收到的错误消息。 ~$ apt apt: error while load
我正在寻找一些命令行说明。我应该有带有 Python 2.7 的 Ubuntu Linux Server(为什么不能简单解释如何在你的 ULS 上获取 Python 2.7!)。 (编辑——显然 Py
当我尝试构建一个简单的docker映像时:。在Dockerfile中:。输出为:。我试过:。我之前构建了多个docker映像,一切都运行得很好。而现在,我总是会突然发现这个错误。
在 bash 脚本中,我想安装一个包。在理智地这样做之前,我需要检查是否没有其他 apt-get 实例。或 dpkg已经在工作。如果是这种情况,apt-get会失败,因为它已经锁定。 是否足以检查/v
这个问题有很多相关的问题,但没有一个回答我想知道的: 我通常是这样工作的: 安装 python 3.5+ sudo apt install virtualenv virtualenv -p/usr/b
我有一个很久以前安装的 Ubuntu 20.04。出于某种原因,即使我很确定我从未使用过它,我也安装了 OCaml。我试图通过卸载 OCaml sudo apt-get remove ocaml
我编写了一个 Ansible 剧本,其中包括运行 apt-get dist-upgrade。我确保在剧本的顶部有 become: true 和 become_user: root 以获得运行升级的 s
现在我的 Vagrantfile 中有以下内容: config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "cookboo
我使用 gitlab ci 来构建 docker 镜像,我想安装 python。当我构建时,以下是我的 gitlab-ci.yml: image: docker:stable stages: -
我正在尝试在 Ubuntu 16.04 中启动此容器,步骤之一是:RUN apt update && apt install -y sudo 此步骤因暂时无法解析某些存储库而失败。这是此错误的输出:
我卡在了一个点上,我无法进步,很抱歉这个愚蠢的问题。我为此进行了很多搜索,但我不知道我错过了什么。请帮助我。 我研究了 python 中的模块和类。现在我想使用 python 和 apt 进行一些操作
在linux based os的某些软件安装中,我们有时使用apt update,有时使用apt-get update。 linux终端究竟如何理解apt only和apt-get的含义? 最佳答案
我正在编写 Puppet list ,以便在我的机器上安装大量软件。 许多软件包仅具有 PPA 中最新版本的二进制文件,例如名为 AutoKey 的非常方便的服务。 . 要安装此最新版本的软件包,必须
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我正在编写我的 k8s 升级 ansible 剧本,其中我需要做 apt-mark unhold kubeadm .现在,我试图避免使用 ansible command或 shell调用模块apt如果
我是一名优秀的程序员,十分优秀!