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

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

http://www.kler.cn/a/582856.html

相关文章:

  • OpenAI Agent 工具包深度解析:重塑 AI 代理开发的未来图景
  • 【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer
  • SQL Server 列存储索引:大幅提升查询性能的利器
  • Spring Boot + MySQL + MyBatis:企业级应用开发实战
  • Git 的详细介绍及用法
  • TensorFLow深度学习实战(11)——风格迁移详解
  • 数字IC/FPGA校招笔试题解析(一)
  • C# NX二次开发:模型导入和向量及点位的使用
  • useEffect的执行是异步的
  • 【学写LibreCAD】 2.1 pdf_print_loop文件
  • Spring的基础事务注解@Transactional
  • C++零基础LeetCode热题100- 128.最长连续序列
  • 大模型微调|使用 LLaMA-Factory 微调 Llama3-8B-Chinese-Chat 完成知识问答任务
  • [高阶技术了解]WebRPC详解
  • Linux错误(5)程序fork子进程后访问内存触发缺页中断(COW)
  • 四、子串——11. 滑动窗口最大值
  • 交换机、路由器、网关、MAC地址——从入门到实战
  • 计算机网络:计算机网络的分类
  • 《HTML + CSS + JS 打造炫酷轮播图详解》
  • Cursor初体验:excel转成CANoe的vsysvar文件