2017-08-30 70 views
0

我们(我的工作场所)拥有基于NVIDIA TK1的嵌入式产品,该产品正在运行针对ARM的Ubuntu定制版本。作为我们产品安装例程的一部分,我们有一个自定义脚本,可以从网上下载大量的软件包和存档,并提取并安装它们。Ubuntu Linux - 从本地仓库安装软件包

理想的情况下我们所希望做的是,预先下载这些包和档案变成了“本地”库,使我们的产品采用已知版本与我们的应用程序。软件包的自动更新被禁用,最终产品无论如何都很少能够访问互联网,我们只是想确保所使用软件包的版本对于所有出货的产品都保持不变。

举个例子,这里有更新脚本的部分:

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 

显然,大量的包都会有很大的依赖性,所以如果有下载所有需要的软件包和ALL的一种方式需要依赖到本地软件包存储库,并更改我的脚本,以便从那里安装,这将是理想的。

我不确定哪种方式是最好的方法来解决这个问题。

我已经安装的所有程序包到基础产品,然后“克隆”的文件系统,将其推到其他模块,但是我真的不知道这样做的优点/缺点的建议。

UPDATE

好了,因为我已经发现了大量的/var/cache/apt/archives/文件夹的包,这似乎都涉及到什么是从我们的脚本安装。

是否可行/安全安装全部采用sudo dpkg -i *.deb这些包的?

+0

https://askubuntu.com/questions/974/how-can-i-install-software-or-packages-without-internet-offline – pacholik

回答

0

好事是使用某种debootstrap建立一个自定义图像,然后闪它的设备上。

要高速缓存apt-getapt-cacher。我没有尝试,但其缓存可以冻结。

对于本地资源库 - reprepro