运维大佬们,如何在一台离线 Ubuntu 服务器上安装有复杂依赖的软件包

2023-02-20 22:50:01 +08:00
 orangie
具体来说,我部门有一台用于跑重要数据模型的离线服务器已经位于数据提供方机房里,管理严格,不能拆出来带走配好再放进去,将要全新安装升级到 Ubuntu 22 LTS Server ,并且希望安装上以下几个软件包:

1.xrdp ,用于使用 GUI 以及快速预览模型结果图
2.xfce4 ,用于使用 GUI
3.Anaconda ,这个好说,挺好装的
4.其他工具软件,比如用于后台运行的 screen 之类的,软件包小,依赖简单,应该容易安装

可以插上 U 盘装系统,装软件包,但是对于 xrdp 和 xfce4 这样依赖项比较多的软件包很难找到方便的离线安装方法。

目前尝试过用创建离线源的方式,比如下面的两个方法
https://gist.github.com/jeanlescure/084dd6113931ea5a0fd9
https://www.he-yin.cn/archives/ubuntuapt
但是下载的依赖项似乎都不全,跟联机用 apt 安装的软件包依赖有不同。

比如联机安装 xrdp 的时候会一同安装 xorgxrdp 这个标记为 recommend 的包,但是链接的两个方法下载依赖包都不会下载 xorgxrdp 。好在 xrdp 只有 xorgxrdp 这一个需要手动补全的依赖,我再下载 xorgxrdp 及其依赖包就行了。难点在于 xfce4 ,它的直接依赖就有几十个甚至破百,不能手动一个个下载了。

目前的办法是虚拟机联机安装过程输出里找到 xfce4 的依赖的列表,写了个 python 脚本逐个用 github gist 里的方法下载,但是也会有很多包找不到 candidate ,比如 deb-cnf-2.0 。

由于机器放在数据提供方的机房里,不方便直接克隆几个 TB 的软件源再搭建内网源服务器,所以只能用这些下载软件包并制作离线源的方法。

不知道有没有运维大佬知道什么好方法能配好软件环境。
3796 次点击
所在节点    Ubuntu
29 条回复
LLaMA2
2023-02-21 10:16:39 +08:00
无所谓,虚拟机会出手!

纯属没用的想法:我装好虚拟机,配置好所有的东西,虚拟机给你整过去。
adrianzhang
2023-02-21 10:24:31 +08:00
办法倒是有,但是会打破安全篱笆。
把 GPU 服务器整个 os ,倒腾成一个文件,拷贝到 u 盘。
然后在一台联网机器上,恢复这个文件为 os ,然后联网安装需要的包,再把完事后的 os 倒腾到文件,用 u 盘送到 GPU 服务器,恢复。

这个过程的难点在于,你得在第一步的时候,排除所有敏感数据。
buffzty
2023-02-21 10:53:31 +08:00
最简单快速的方式: 在公网环境装一台机器 带过去硬盘覆盖
orangie
2023-02-21 11:33:14 +08:00
目前没有找到除了搭建代理扒镜像源之外的比较干净又全面的方法。

现在虚拟机本地测试能安装好 xrdp 和 xfce4 地方法是 14 楼用 archives 的方法,配合本贴链接的 github gist 做成本地仓库。其中关于 Ubuntu 22 有几点要注意,1:要编辑 /etc/apt/apt.conf.d/里边的关于自动删除缓存的和保留缓存的 01 和 20 开头的两个配置文件 2:在线安装来下载缓存的时候不要使用 apt ,而使用 apt-get ,否则会莫名其妙不缓存,也可能是之前配置不对,总之用 apt-get 就好

至于迁移系统的方式,考虑过,但是因为服务器硬件和我这里现在能用的机器差别太大,特别担心硬件配置导致的更复杂的问题,所以不做这方面的尝试。
pxiphx891
2023-02-21 13:35:27 +08:00
还是 docker 好
xiaoranj
2023-02-21 14:24:48 +08:00
@orangie mkdir ~/{$pkg}
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances $pkg | grep -v amd64| grep "^\w" | sort -u)
cd ~/{$pkg}
dpkg -i *.deb
最好一个软件一个目录
orangie
2023-02-21 14:55:11 +08:00
@xiaoranj 就是 https://www.he-yin.cn/archives/ubuntuapt 的方法,但是这个方法下载 xrdp 会忽略被列为 recommend 的 xorgxrdp ,而一般在线安装却会自动安装 xorgxrdp 。
hack
2023-02-21 15:18:17 +08:00
让机房部署更新源好了
nemo95
2023-02-21 22:10:06 +08:00
我一直觉得机房应该提供内网 ssh 接入方式和包括 yum 、pip 等等的内网更新源,但是去过的机房都是让抱笔记本进去坐地上调试,反倒是往服务器上插无线网卡没人管

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917763

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX