【发布时间】:2018-02-07 20:14:34
【问题描述】:
我们(我的工作场所)有一个基于 NVIDIA TK1 的嵌入式产品,该产品运行用于 ARM 的定制版本的 Ubuntu。作为我们产品设置例程的一部分,我们有一个自定义脚本,它可以从 Web 下载大量包和档案,提取并安装它们。
理想情况下,我们希望将这些包和存档预下载到“本地”存储库中,以便我们的产品使用与我们的应用程序一起使用的已知版本。软件包的自动更新被禁用,最终产品无论如何都很少能够访问互联网,我们只想确保所使用的软件包版本对于每个发货的产品都保持相同。
例如,以下是更新脚本的部分内容:
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 安装所有这些软件包是否可行/安全?
【问题讨论】:
标签: linux ubuntu deployment packages apt