当前位置: 首页 > news >正文

How to install a package in offline scenario in Ubuntu 24.04

概述

做过信创项目的兄弟们在工作上每天可能面对很多需要解决的问题,不过,有一类问题可能是大家经常遇的,比方说,有时候我们不得不硬着头皮在离线生产环境中安装某些软件包,相信很多兄弟被这种细碎的小事搞得焦头烂额。关于如何在离线生产环境中安装某些软件包,不同的操作系统、不同的应用场景,解决办法可能不尽相同。

今天,我们来给大家介绍一下如何在Ubuntu离线场景中基于apt-offline安装特定的软件包。这里,我们以如何安装openjdk-17为例予以说明。

实践

准备

在开始工作之前,我们准备了两个Ubuntu 24.04操作系统环境,具体如下面的表格所示:

host namealiasosoffline statusip
shaolin少林ubuntu server 22.04offline192.168.43.226
wudang武当ubuntu server 22.04online192.168.43.226

今天的实践是我们将借助主机少林来完成在主机武当上安装openjdk-17

安装apt-offline

在完成下面的实验之前,我们需要在主机少林武当上分别安装上apt-offline软件包,这里为了模拟真实场景,我们需要在主机少林上从以下地址下载包含了依赖的apt-offline软件包。

  • https://pkgs.org/download/apt-offline

在这里插入图片描述
我这边的主机是x64架构,所以这里选择下载amd64对应的软件包apt-offline_1.8.5-1_all.deb。下载完成以后,可以使用U盘复制一份到主机武当上,然后在主机少林武当上分别使用以下命令安装apt-offline

sudo dpkg -i apt-offline_*_all.deb

开始

创建临时目录

首先,我们需要在主机少林武当上的用户目录下面分别创建一个名称为local的目录,命令如下:

sudo mkdir -p ~/local

生成离线签名文件

接着,我们需要在目录local中生成openjdk-17对应的离线签名文件,命令如下:

sudo apt-offline set openjdk-17.sig --install-packages openjdk-17*

基于离线签名下载依赖包

上面,我们已经在主机武当用户当前目录下的local中生成了openjdk-17对应的离线签名文件openjdk-17.sig。这个时候,我们需要借助U盘复制文件openjdk-17.sig到主机少林的用户目录下的目录local中。接下来,我们依据签名文件在主机少林的用户目录下的目录local中下载并生成依赖软件包。

cd ~/local
sudo apt-offline get openjdk-17.sig --thread 2 --bundle openjdk-17.zip

离线安装

上面,我们已经成功的在主机少林的用户目录下的目录local中生成了openjdk-17.sig的依赖包openjdk-17.zip,这个时候,我们借助U盘将文件openjdk-17.zip复制到主机武当用户当前目录下的local中。

接下来,我们借助以下命令,将openjdk-17.sig的依赖包openjdk-17.zip导入本地apt数据库。

sudo apt-offline install openjdk-17.zip

接着使用如下命令完成openjdk-17的安装,。

sudo apt install openjdk-17*

安装完成以后,我们可以在命令行,借助如下命令查看openjdk-17是否生效。

java -version

如果能正常输出java版本,则说明安装成功。

小结

我们在上面的实践中,以借助在线主机少林在离线主机武当上安装openjdk-17为例,向大家介绍了如果基于apt-offline命令完成离线软件包的安装。这里需要注意以下几点事项:

  • 两台主机需要是相同的操作系统版本。
  • 需要能从主机武当上得到待安装软件的签名文件。
  • 需要在主机武当上事先安装好apt-offline

如果我们不能主机武当上事先安装好apt-offline,或者如果我们不能从主机武当上得到待安装软件的签名文件,在主机少林依然可以借助apt-offline完成软件包openjdk-17的下载。在人为可以保障主机少林武当操作系统版本一致,软件环境也一致的情况下,我们可以借助如下命令多次试探着完成软件包的安装。

sudo mkdir -p openjdk-17
sudo unzip -d openjdk-17/ openjdk-17.zip
cd openjdk-17/
sudo dpkg -i *.deb

正所谓条条大路通罗马,除了基于apt-offline来完成Ubuntu离线环境下的软件包的安装外,我们还可以采用如下方案完成相关尝试。

  • ISO文件本地镜像法

这种方案就是将Ubuntu安装包ISO文件挂载到本地环境,然后将本地软件镜像源切换为本地来完成相关软件包的安装。

  • 源码编译法

这种方案获取软件包的源码文件,在本地环境编译,生成相关的目标二进制可执行文件。

  • 二进制软件包法

有的软件包官网会提供已经编译好的二进制可执行文件包,通常以.gz.biz或者zip为后续,下载以后,将二进制可执行文件添加到环境变更path中,再依据官方操作手册对相关配置文件调整以后就完成了安装。

Reference

  • How to Use Apt-Offline to Install Debian or Ubuntu Packages

相关文章:

  • bean的加载过程
  • WPF从初学者到专家:实战项目经验分享与总结
  • Gymnasium Taxi‐v3 环境 与 Q-learning 算法 —— 强化学习入门 I
  • 2min搞定~Mac Pro 编译安装 Nginx 1.8.1
  • IP地址到地理地址查询的实现逻辑
  • 【Go】字符串相关知识点
  • ranger集成starrock报错
  • CTFshow 【WEB入门】信息搜集 【VIP限免】 web1-web17
  • 【第四节】windows sdk编程:windows 中的窗口
  • 隐藏的git文件夹
  • 【解决报错】:detected dubious ownership in repository at ‘D:/idea_code/xxx‘问题
  • 每日一题——两两交换链表中的节点
  • koltin在android 开发
  • 微电网管理 实现分布式能源的智能调度和管理
  • 【Java】并发编程实战:单例模式 + 阻塞队列的终极实现指南
  • 系统化战略管理国产软件的开创者与引领者
  • 【结构光相机的精度极限】
  • 【网络通信安全】子专栏链接及简介
  • 哪家LIMS厂商交付好?
  • Python 程序配置文件管理库介绍
  • 美国考虑让移民上真人秀竞逐公民权,制片人称非现实版《饥饿游戏》
  • 原核试验基地司令员范如玉逝世,从事核试验研究超40年
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 101岁陕西省军区原司令员冀廷璧逝世,曾参加百团大战
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 夜读丨什么样的前程值得把春天错过