Ubuntu 离线部署的常见操作

Ubuntu 离线安装的常见操作

**说明:**很多情况下,生产环境都是离线环境,然而开发环境都是互联网的环境,因此部署的过程中需要构建离线安装包;

1. 下载但是不安装

# 例如使用 apt 下载 wireshark 安装包
sudo apt download wireshark
# 下载多条的时候直接使用 空格 分割即可
sudo apt download vim sshpass 

image-20230731102438425

会下载安装包到当前的目录下面;

问题引出:在联网的环境中通常下载的时候不仅仅会安装当前的安装包,而且还会安装对应的依赖项;

2. 下载所有的依赖项

查询包的直接依赖项

# 查询包的直接依赖
sudo apt-cache depends vim

image-20230731103345117

查询所有的依赖项

# 命令可以递归地列出软件包及其所有依赖项。这对于了解软件包的完整依赖关系非常有用。
sudo apt-cache depends --recurse
# 查看wireshark 的所有依赖
sudo apt-cache depends --recurse wireshark

image-20230731104107313

使用上述的命令会查询大量的依赖包,也包含建议安装的包,和增强的包。继续为命令添加上更多的参数,进行精准的查询;

如果你想在使用 apt-cache 命令时忽略建议、建议的依赖项、冲突、中断、替代、增强和预先依赖项,可以通过添加对应的选项来实现。

以下是对应选项的说明:

  • --no-recommends:忽略建议的依赖项。
  • --no-suggests:忽略建议的软件包。
  • --no-conflicts:忽略冲突。
  • --no-breaks:忽略中断。
  • --no-replaces:忽略替代。
  • --no-enhances:忽略增强。
  • --no-pre-depends:忽略预先依赖项。
# 查找依赖包, 并且忽略冲突等信息
sudo apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts  --no-breaks --no-replaces --no-enhances --no-pre-depends wireshark

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tSSCXdnQ-1690775935036)(assets/image-20230731105524993.png)]

image-20230731104657728

此时查询到的输出基本上符合我们的要求,只要我们去除依赖: licxxx即可,此时使用grep命令进行过滤;

grep -v "^ "  # 命令用于在文本中过滤掉以空格开头的行。这对于从结果中排除空行或空格行非常有用。

进行命令的编写

# 获取到所有的依赖包
sudo apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts  --no-breaks --no-replaces --no-enhances --no-pre-depends wireshark |grep -v "^ "

image-20230731105718055

此时将下载命令和查询依赖命令结合即可下载所有的依赖包,第一个为我们要直接下载的包;

sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts  --no-breaks --no-replaces --no-enhances --no-pre-depends 包名 |grep  -v "^ ")# 下载过程中如果出现无法定位软件包的位置,则需要更换源,更换方法百度即可

3. 数据包的安装

# 切换到下载安装包的目录
dpkg -i *.deb
# 权限不足的时候, 加上 sudo
sudo dpkg -i *.deb

4. shell脚本的编写

将上述下载的命令,进行整合,因为安装只有一条命令,且是在生产环境中使用无需进行 shell 脚本的整合

#!/bin/bash#$1     pkg
get_all_depends()
{apt-cache depends --no-pre-depends --no-suggests --no-recommends \--no-conflicts --no-breaks --no-enhances\--no-replaces --recurse $1 | awk '{print $2}'| tr -d '<>' | sort --unique
}for pkg in $*
doall_depends=$(get_all_depends $pkg)echo -e "所有依赖共计"$(echo $all_depends | wc -w)"个"echo $all_dependsi=0for depend in $all_dependsdoi=$((i+1))echo -e "\033[1;32m正在下载第$i个依赖:"$depend "\033[0m"apt-get download $dependdone
done

脚本运行

bash 脚本名称.sh 包名

5. Python 第三方包下载但不安装

前提:已经导出了 requirement.txt

pip freeze > requirement.txt  # 导出所有的安装包,已经包含了依赖以及版本
pip download -d \home\packs -r requirement.txt
# -r requirement.txt 可以替换成为单个包名

此处下载的是一些whl文件;

将下载的文件打包后放到生产环境的服务器中,执行如下的命令;

pip install --no-index --find-links=PIPDIR -r requirements.txt
# --find-links就是存放安装文件的目录
# -r是指按照requirements.txt这个文件去安装文件目录中找需要的安装包

继续努力,终成大器!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】无头+单向+非循环链表(SList)(增、删、查、改)详解

一、链表的概念及结构 1、链表的概念 之前学习的顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;而链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的&#xff0c;可以实现更加…

下载离线版的VS Visual Studio 并下载指定的版本

一、先下载引导程序 下载地址VS VisualStudio官网 在这个页面翻到最下面 在这里下载需要的版本 下载引导程序 二、下载离线安装包 写一个批处理文件&#xff08;vs.bat&#xff09; 命令格式如下 <vs引导程序exe> --layout <离线安装包下载的路径> --add <功能…

1、Tomcat

java介绍 Java语言和平台由以下几个主要部分组成&#xff1a; 1、Java编程语言(Java Language)&#xff1a;这是Java的核心部分&#xff0c;包括Java语法、关键字、数据类型、运算符、控制结构等。程序员使用Java语言来编写应用程序的源代码。 2、Java开发工具包(Java Developm…

Android Layout大点兵

原文链接 Android Layout大点兵 智能手机催生了移动互联时代&#xff0c;现如今移动应用越来越成为最为核心的终端。而GUI页面是移动互联终端的标配&#xff0c;做好一个GUI页面&#xff0c;是非常重要的&#xff0c;能极大的提升用户体验和用户满意度。安桌生态&#xff0c;自…

kotlin 编写一个简单的天气预报app(五)增加forcast接口并显示

参考资料 OpenWeatherMap提供了一个/forecast接口&#xff0c;用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口&#xff0c;并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数&#xff1a; URL: http://api.openwe…

K8s安全配置:CIS基准与kube-bench工具

01、概述 K8s集群往往会因为配置不当导致存在入侵风险&#xff0c;如K8S组件的未授权访问、容器逃逸和横向攻击等。为了保护K8s集群的安全&#xff0c;我们必须仔细检查安全配置。 CIS Kubernetes基准提供了集群安全配置的最佳实践&#xff0c;主要聚焦在两个方面&#xff1a;主…

C语言指针进阶-2

本篇文章带 1. 数组传参和指针传参 2. 函数指针 3. 函数指针数组 的相关知识详细讲解&#xff01; 如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作动力的源泉&#xff0c;让我们一起加油&#xff0c;一起奔跑&#xff0c;让我们顶峰相见&…

(文章复现)梯级水光互补系统最大化可消纳电量期望短期优化调度模型matlab代码

参考文献&#xff1a; [1]罗彬,陈永灿,刘昭伟等.梯级水光互补系统最大化可消纳电量期望短期优化调度模型[J].电力系统自动化,2023,47(10):66-75. 1.基本原理 1.1 目标函数 考虑光伏出力的不确定性&#xff0c;以梯级水光互补系统的可消纳电量期望最大为目标&#xff0c;函数…

kernel32.dll如何修复,快速解决kernel32.dll缺失的方法

Kernel32.dll是Windows操作系统中一个重要的系统文件&#xff0c;对于系统的正常运行至关重要。然而&#xff0c;由于各种原因&#xff0c;用户可能会遇到kernel32.dll文件的缺失问题。今天小编就来给大家详细的介绍一下kernel32.dll这个文件&#xff0c;并且详细的介绍一下ker…

Iptables

常用名词 容器&#xff1a;存放东西 表(table)&#xff1a;存放链的容器&#xff0c;防火墙的最大概念 链(chain)&#xff1a;存放规则的容器 规则(policy)&#xff1a;准许或拒绝规则 Iptables处理流程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上…

小程序通过ip+port+路径获取服务器中的图片

配置IIS 首先需要配置IIS。 打开控制面板&#xff0c;接下来的流程按下图所示。 安装好后&#xff0c;按“win”键&#xff0c;搜索IIS 选择一个ip地址&#xff0c;或手动填写&#xff0c;端口号按需更改 填写别名和物理路径&#xff0c;别名就是后续通过url访问物理…

html5播放器视频切换和连续播放的实例

当前播放器实例可以使用changeVid接口切换正在播放的视频。当有多个视频&#xff0c;在上一个视频播放完毕时&#xff0c;自动播放下一个视频时也可采用该处理方式。 const option {vid: 88083abbf5bcf1356e05d39666be527a_8,//autoplay: true,//playsafe: , //PC端播放加密视…

牛客网Verilog刷题——VL41

牛客网Verilog刷题——VL41 题目答案 题目 请设计一个可以实现任意小数分频的时钟分频器&#xff0c;比如说8.7分频的时钟信号&#xff0c;注意rst为低电平复位。提示&#xff1a;其实本质上是一个简单的数学问题&#xff0c;即如何使用最小公倍数得到时钟周期的分别频比。设小…

数据中台系列2:rabbitMQ 安装使用之 window 篇

RabbitMQ 是一个开源的消息队列系统&#xff0c;是高级消息队列协议&#xff08;AMQP&#xff09;的标准实现&#xff0c;用 erlang 语言开发。 因此安装 RabbitMQ 之前要先安装好 erlang。 1、安装 erlang 到 这里 下载本机能运行的最新版 erlang 安装包。如果本机没有装过 …

Mac/win开发快捷键、vs插件、库源码、开发中的专业名词

目录 触控板手势&#xff08;2/3指&#xff09; 鼠标右键 快捷键 鼠标选择后shift⬅️→改变选择 mac command⬅️&#xff1a;删除←边的全部内容 commadtab显示下栏 commandshiftz向后撤回 commandc/v复制粘贴 command ⬅️→回到行首/末 commandshift3/4截图 飞…

PHP使用PhpSpreadsheet实现导出Excel时带下拉框列表 (可支持三级联动)

因项目需要导出Excel表 需要支持下拉 且 还需要支持三级联动功能 目前应为PHPExcel 不在维护&#xff0c;固采用 PhpSpreadsheet 效果如图&#xff1a; 第一步&#xff1a;首先 使用composer 获取PhpSpreadsheet 我这里PHP 版本 7.4 命令如下&#xff1a; composer r…

富士通“Actlyzer”提供基于AI的基于视频的行为分析

想象一下这样的场景&#xff1a;一个男人走近一个家的前门&#xff0c;蹲下并检查钥匙孔。这是丢失房屋钥匙的居民还是客人&#xff1f;还是寻找入口点的窃贼&#xff1f;“Actlyzer”是一种新的人工智能安全系统&#xff0c;旨在区分这种情况。富士通实验室和研发中心的行为分…

k8s安装Jenkins

目录 ​编辑 一、环境准备 1.1 环境说明 二、安装nfs 2.1 安装NFS 2.2 创建NFS共享文件夹 2.3 配置共享文件夹 2.4 使配置生效 2.5 查看所有共享目录 2.6 启动nfs 2.7 其他节点安装nfs-utils 三、创建PVC卷 3.1 创建namespace 3.2 创建nfs 客户端sa授权 3.3 创建…

XtraBackup 8.0.33-28 prepare 速度提升 20 倍!

在这篇博文中&#xff0c;我们将描述 Percona XtraBackup 8.0.33-28 的改进&#xff0c;这显著减少了备份准备所需的时间&#xff0c;以便进行恢复操作。 Percona XtraBackup 中的这一改进显着缩短了新节点加入 Percona XtraDB 集群&#xff08;PXC&#xff09; 所需的时间。 …

Python - OpenCV识别条形码、二维码(已封装,拿来即用)

此代码可识别条形码和二维码&#xff0c;已封装好&#xff0c;拿来即用&#xff1a; import cv2 import pyzbar.pyzbar as pyzbar import numpy from PIL import Image, ImageDraw, ImageFontclass CodeScan():def __init__(self):super(CodeScan, self).__init__()def decode…