linux - Ubuntu Linux - 从本地存储库安装软件包

标签 linux ubuntu deployment package apt

我们(我的工作场所)有一个基于 NVIDIA TK1 的嵌入式产品,该产品正在运行针对 ARM 的自定义构建的 Ubuntu。作为我们产品设置例程的一部分,我们有一个自定义脚本,它可以从网络上下载大量的包和文件,提取并安装它们。

理想情况下,我们要做的是将这些包和存档预下载到“本地”存储库中,以便我们的产品使用可与我们的应用程序一起使用的已知版本。包的自动更新被禁用,最终产品无论如何都很少访问互联网,我们只是想确保所使用的包版本对于每个发货的产品保持相同。

例如,以下是更新脚本的部分内容:

sudo apt-get install -y linux-firmware
sudo apt-get install -y '.*libxcb.*' libxrender-dev libxi-dev libfontconfig1-dev libudev-dev libx11-dev libx11-xcb-dev libext-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install -y gcc-4.9 g++-4.9
sudo apt-get install -y ros-indigo-desktop
# This one is shortened as its a long URL
wget cuda-repo-l4t-r21.1-6-5-prod_6.5-14_armhf.deb
sudo dpk -i cuda-repo-l4t-r21.1-6-5-prod_6.5-14_armhf.deb 

显然,大量的包会有很多依赖项,所以如果有一种方法可以将所有必需的包和所有必需的依赖项下载到本地包存储库并更改我的脚本以便从那里安装它们,那将理想。

我不确定哪种方式是解决此问题的最佳方式。

我曾建议将所有软件包安装到基础产品上,然后“克隆”文件系统并将其推送到其他模块上,但我真的不知道这样做的利弊。

更新

好的,所以我在 /var/cache/apt/archives/ 文件夹中发现了大量的包,它们似乎都与我们的脚本安装的内容有关。

使用 sudo dpkg -i *.deb 安装所有这些包是否可行/安全?

最佳答案

一个好办法是使用某种debootstrap 来构建自定义镜像,然后将其闪存到设备上。

要缓存 apt-get,可以使用 apt-cacher。我没试过,但是它的缓存是可以卡住的。

对于本地存储库 - reprepro

关于linux - Ubuntu Linux - 从本地存储库安装软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45954915/

相关文章:

linux - 如何检查我的系统中是否安装了特定的库?

java - 在Linux环境中用Java计算直到午夜的分钟数

linux - 如何在 Mac OS X 中打开 Linux `.so` 文件

node.js - Node-sass 错误(尝试重新安装)

php - 在ubuntu容器上添加mysql数据库

php - 如何在 nginx (Ubuntu 16.04) 上配置基本的 FastCGI 缓存

azure - 在 Azure 应用服务上部署 FastAPI 和 uvicorn

deployment - 使用 Capistrano 部署时如何升级 Wordpress 和插件?

ruby-on-rails - 当 Rails 出现 500 错误状态时需要通知邮件列表

linux - 为 2.4.0 内核、i586 架构构建二进制文件 (telnet)