apt一键下载所有依赖的包

2023-05-16

apt一键下载所有依赖的包

无外网的局域网安装软件一个烦人的事件就是明明安装包下好了,但有时候就是安装不上,因为缺少相应依赖的包。

那么如何将一个软件依赖的包、库之类的下载下来呢。
这里就用到apt的相关功能。

方法

首先,找包。找到依赖的包用apt-cache depends packname来获取。
其次,下载。用apt-get install dependpackname –reinstall -d来下载所依赖的包。 -d是表示只下载。
再次,批量安装。用shell命令组合来一键下载所有所依赖的包。

#有些包名中有<>符号,用tr将其删除
sudo apt-get install --reinstall -d `apt-cache depends packname | grep depends | cut -d: f2 |tr -d "<>"`

注意上面命令中反引号。 即 ` 。

示例

比如要找到fcitx所依赖的包。
这里写图片描述

apt-cache depends 会列出3类包。如果只想安装Depends的,用grep过滤下。如果想提取出包的名字,用cut做一个分割。

剩下的就是调用下载相应包的指令了。
是不是感觉很简单。
:)


进阶,下载所依赖的包所依赖的包。。。

比如A依赖B,B又依赖C,那如何递归呢。此时就需要一个脚本文件,用函数来实现了。
递归3次下载所依赖包的脚本如下:

#!/bin/bash

logfile=/home/perrin/Desktop/log
ret=""
function getDepends()
{
   echo "fileName is" $1>>$logfile
   # use tr to del < >
   ret=`apt-cache depends $1|grep Depends |cut -d: -f2 |tr -d "<>"`
   echo $ret|tee  -a $logfile
}
# 需要获取其所依赖包的包
libs="gnome-shell"                  # 或者用$1,从命令行输入库名字

# download libs dependen. deep in 3
i=0
while [ $i -lt 3 ] ;
do
    let i++
    echo $i
    # download libs
    newlist=" "
    for j in $libs
    do
        added="$(getDepends $j)"
        newlist="$newlist $added"
        apt install $added --reinstall -d -y
    done

    libs=$newlist
done

有没有感觉挺方便的:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apt一键下载所有依赖的包 的相关文章

随机推荐

  • 查理·芒格:让自己配得上想要的东西

    巴菲特说他一生遇人无数 xff0c 从来没有遇到过像查理这样的人 94岁的查理 芒格毕业于哈佛大学法学院 xff0c 是沃伦 巴菲特的黄金搭档 xff0c 伯克夏 哈撒韦公司的副主席 xff0c 芒格的头脑是原创性的 xff0c 从来不受任
  • react路由传参的几种方式

    params传参 支持多个动态参数 state 61 id 88 name Jack 路由页面 xff1a 路由跳转并传递参数 xff1a 链接方式 xff1a lt Link to 61 pathname code demo this s
  • 对极几何、三角测量、PnP、ICP问题描述

    对极几何 三角测量 PnP ICP问题描述 文章目录 对极几何 三角测量 PnP ICP问题描述前言2D 2D xff1a 对极几何三角测量1 求解空间点深度2 求解空间点坐标 3D 2D xff1a PnP1 直接线性变换 xff08 D
  • springsecurity 登录后依然无法访问页面

    springsecurity 登录后依然无法访问页面 登录成功 点击左侧功能列表报错 org springframework security access AccessDeniedException Access is denied at
  • 前端---vscode插件推荐及GIT一些问题操作说明(持续更新)

    以前都是用sublime xff0c 最近开始使用vscode xff08 v1 50 0 xff09 xff0c 写一些心得记录一下 先安利一些自己使用的插件 TabNine这个插件 xff0c 如果电脑配置ok xff0c 可以装一下
  • http协议之digest(摘要)认证

    参考网址 xff1a RFC 2617 HTTP Authentication Basic and Digest Access Authenti RFC2617 RFC 1321 The MD5 Message Digest Algorit
  • FreeRTOS heap 4 机制解析

    FreeRTOS提供了几个内存管理的方案 xff0c 其中一个实现较好的方式是heap4 本篇就来形象讲述heap4的工作原理 本文暂时只用作自己对heap4的工作机制的总结和记录 xff0c 有空了再修改成教程吧 xff0c 所以 xff
  • 使用Qt写Xml文档,追加节点。

    追加Xml文档就是 xff0c 要 增 一段内容 xff0c 要实现的效果如下 xff1a 因为想临时存储一些东西 xff0c 所以利用xml做个简易的数据库 xff0c 要应用的ARM设备上 xff0c 存放入SD卡 网上找了半天 xff
  • sudo apt-get update 报错 ubuntu xenial InRelease 明文签署文件不可用,结果为‘NOSPLIT’(您的网络需要认证吗?)解决

    一句话总结 xff1a 换可用的国内源 问题的产生 xff1a 今天刚装了个ubuntu 16 04 xff08 还没装新的 xff09 结果想装个vim一直不成功 xff0c sudo apt update多次总是出现下面的 xff1a
  • docker 常用命令

    systemctl start docker 启动docker服务 systemctl stop docker 停止docker服务 systemctl restart docker 重启docker服务 systemctl status
  • 大疆Manifold 制作和恢复镜像及恢复出厂设置卡主不动处理方法

    进入恢复模式 首先你要准备一台运行Ubuntu 14 04或者Ubuntu16 04的电脑 xff0c 将电脑与Manifold 的RECOVERY USB 接口 xff0c 用Manifold自带的USB线连接 连接电源 xff0c 上电
  • Gazebo构建小车模型并通过ROS控制

    Gazebo构建小车模型并通过ROS控制 介绍编写车子的URDF文件编写控制小车移动的插件 与ROS交互 结尾 介绍 突然想试试Gazebo这款仿真软件 xff0c 因为它可以让你在任何时候都有机器人玩 但Gazebo的机制也比较复杂 xf
  • OPENCV面试题

    1 opencv中RGB2GRAY是怎么实现的 答 xff1a 以R G B为轴建立空间直角坐标系 xff0c 则RGB图的每个象素的颜色可以用该三维空间的一个点来表示 xff0c 而Gray图的每个象素的颜色可以用直线R 61 G 61
  • RandomForestClassifier、SVM、xgboost实现二分类算法

    RandomForestClassifier span class token comment coding utf 8 span span class token keyword import span numpy span class
  • 二、Crazepony1无人机源码分析-(4)接受遥控器的数据

    二 Crazepony1无人机源码分析 xff08 4 xff09 接受遥控器的数据 1 程序源码2 流程图 1 程序源码 span class token comment 查询中断 span span class token keywor
  • Linux内核移植和根文件系统制作

    第一章移植内核 1 1 Linux内核基础知识 1 1 1 Linux版本 1 1 2 什么是标准内核 1 1 3 Linux操作系统的分类 1 1 4 linux内核的选择 1 2 Linux内核启动过程概述 1 2 1 Bootload
  • 联发科MT76x8使用1-芯片对比

    上面是我创建的群聊 xff0c 欢迎新朋友的加入 最近新到手一个MT 76X8的板子 xff0c 盖了个铁壳壳 xff0c 丝印上写的是MT 7628 学习一下 特意对比了MT 7628和MT 7688 对比了一下 xff0c 没什么太大区
  • FreeRTOS

    freertos 会接管 systick xff0c 作用时间片基准 xff0c 系统不跑systick不会开始计数 xff0c 所以需要另外的timer作为hal tick来源 freertos 会接管 svc xff0c 作用是用来开跑
  • STM32串口收发、串口中断、串口波特率的理解、普通IO模拟串口

    STM32串口收发 串口中断 一 串口中断二 使用DMA三 串口波特率的理解 开发环境 xff1a stm32cubuMax 43 Keil5 一 串口中断 1 当收到消息的时候 xff0c 立即进入控制程序 实现通过串口控制硬件 xff1
  • apt一键下载所有依赖的包

    apt一键下载所有依赖的包 无外网的局域网安装软件一个烦人的事件就是明明安装包下好了 xff0c 但有时候就是安装不上 xff0c 因为缺少相应依赖的包 那么如何将一个软件依赖的包 库之类的下载下来呢 这里就用到apt的相关功能 方法 首先