首页 > 系统相关 >Ubuntu 离线安装的常见操作

Ubuntu 离线安装的常见操作

时间:2023-07-31 12:11:47浏览次数:27  
标签:依赖 no -- sudo 离线 apt depends 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

image-20230731105524993

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 $*
do
        all_depends=$(get_all_depends $pkg)
        echo -e "所有依赖共计"$(echo $all_depends | wc -w)"个"
        echo $all_depends
        i=0
        for depend in $all_depends
        do
                i=$((i+1))
                echo -e "\033[1;32m正在下载第$i个依赖:"$depend "\033[0m"
                apt-get download $depend
        done
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这个文件去安装文件目录中找需要的安装包

继续努力,终成大器!

标签:依赖,no,--,sudo,离线,apt,depends,Ubuntu,安装
From: https://www.cnblogs.com/Blogwj123/p/17593096.html

相关文章

  • python 安装paddle
    如何安装PaddlePaddle作为一名经验丰富的开发者,我将向你介绍如何安装PaddlePaddle,一个强大的Python深度学习框架。PaddlePaddle为开发者提供了丰富的工具和库,帮助他们构建和训练深度学习模型。安装步骤下面是安装PaddlePaddle的步骤,我将用一个表格展示每个步骤的概要。步骤......
  • Centos 7安装k8s 报hostPath type check failed:/sys/fs/bpf is not a direcctory错误
    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。邮箱:[email protected]说明Centos7系列操作系统在安装k8s时可能会遇到hostPathtypecheckfailed:/sys/fs/bpfisnotadirecctory错误,该问题为内核版本过低导致的。/sys/fs/bpf在4.4版本中的内核中才有,对......
  • 竞速榜实时离线对数方案演进介绍
    一、背景竞速榜是大促期间各采销群提供的基于京东实时销售数据的排行榜,同样应对大促流量洪峰场景,通过榜单撬动品牌在京东增加资源投入。竞速榜基于用户配置规则进行实时数据计算,榜单排名在大促期间实时变化,相关排名数据在微博、朋友圈广泛传播,相关计算以及排名的准确性至关重要。......
  • iTOP-RK3568开发板Windows 安装 RKTool 驱动
    在烧写镜像之前首先需要安装RKTool驱动。RKTool驱动在网盘资料“iTOP-3568开发板\01_【iTOP-RK3568开发板】基础资料\02_iTOP-RK3568开发板烧写工具及驱动”路径下。驱动如下图所示:解压缩后,进入文件夹,如下图所示:点击“DriverInstall.exe”,如下图所示:如果出现提示,选择安装,如下......
  • ubuntu nginx 安装及简单使用
    nginx安装sudoapt-getinstallnginxnginx简单配置vim/etc/nginx/sites-available/defaultserver{ listen80default_server; listen[::]:80default_server;#root/var/www/html;root/home/qtimes/test/dist;#此目录存放显示内容}nginx生效......
  • 什么是DIN导轨 轨道安装式振弦传感器信号转换器
    什么是DIN导轨轨道安装式振弦传感器信号转换器DIN导轨是德国工业化协会制定的一种导轨标准。是德语DeutschesInstitutfürNormunge.V的缩写。DIN导轨的种类一般有两个种类,主要是尺寸上的区别。1、TS35DIN导轨这里的数字“35”是指高顶帽开槽的距离(即:导轨最大宽度),是......
  • qt的安装
    一、QT在线安装包下载1.官方网站: https://www.qt.io/download2.国内镜像: https://mirrors.tuna.tsinghua.edu.cn/qt/  二、QT安装1.安装界面上面步骤没问题的话,我们已经打开了安装文件(如果第一次安装没有QT账号需要先创建再进行下一步操作,自己输入邮箱和密码然后接收......
  • Linux为何是软件开发专业人员的心头爱-Robotics Ubuntu
    Linux与Windows都是十分常见的电脑操作系统,相信你对它们二者都有所了解!在你的使用过程中,是否有什么事让你觉得在Linux上顺理成章,换到Windows上就令你费解?亦或者关于这二者你有任何想要分享的,都可以在这里留下你的看法~你可以从以下几个方面进行创作(仅供参考)****不会Linux不能算计算......
  • ubuntu上搭建ChatGLM2-6b环境及ptuing微调训练的坑
    清华大学的chatGLM2-6B可以说是目前亚洲唯一能打的对中文支持不错的LLM大模型,网上已经有很多介绍如何在本机搭建环境的文章,就不再重复了,这里记录下最近踩的一些坑:1、为啥要使用ubuntu?chatGLM2-6b项目里有很多.sh文件,在windows下要正常运行通常要折腾一番,最后能不能全部通关,讲究......
  • Python安装技术类库模块
    方法1:方法2:用如下命令安装即可(注意都得是英文字符):#简单粗暴,但是可能安装到了不同的环境pipinstallsome-package#复杂但是精准还快速C:\Python310\python.exe-mpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplesome-package其中:C:\Python310\python.......