操作系统:Ubuntu 18.04 LTS

一、概述

之前在Ubuntu下我一直坚持将软件下载包下载到指定文件夹下进行解压安装的习惯,在部门同事的建议下,我开始使用apt命令下载管理包。

由于网上已经有许多优秀的文章解析了apt命令,在此就不赘述,文章末尾有链接。我将阐述说明使用apt下载管理包的优势

二、apt命令的优势

我们知道,传统下载安装软件的操作流程就是上网找到这个软件安装包的下载链接,然后下载到本地指定的路径下,解压安装运行即可。

然而对于有些软件需要自己导入环境变量,或者将库文件放入合适的目录下,这时我们就觉得很恼火,但在Ubuntu环境下,apt这个命令解决了这一切。

一个软件,我大致画了一下它的组成结构

假如我们要下载一个名为a.deb的软件安装包,解压后它会得到可执行文件和相应的库文件,如果在Windows系统下这些库文件你还要自己放到指定的目录文件夹下,但在Linux下这一步它帮你搞定了。

但是,如果这个a.deb安装包中还有一个依赖项描述文件(这个文件并不是真实存在的,只是为了方便理解),这个文件内容是需要将它所依赖的b.deb软件安装包也要下载下来,那么以此类推,如果b.deb中也需要依赖一个c.deb软件安装包,那也要下载下来。然而,这些步骤,一个apt命令就可以搞定,并且自动帮你配置好环境,将需要的库文件放到指定的文件夹下,省去了开发者不少的精力和时间。

因此,目前我如果在Ubuntu上想下载一个安装包,先搜索相关安装包,再用apt命令进行下载即可。

sudo apt search XXX安装包
sudo apt install XXX安装包

三、参考资料

apt命令详解

apt-get 命令详解(中文),以及实例

使用新的 apt 命令在 Ubuntu 16.04 LTS 下管理软件包

Ubuntu环境使用apt命令下载管理包的优势的更多相关文章

  1. Linux学习笔记(一)----Ubuntu下的apt命令

    一.原理与目录 先介绍几个和apt-get相关的目录: /var/lib/dpkg/available文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,其 ...

  2. Ubuntu 如何使用apt命令安装、升级、卸载软件

    apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统. apt-get命令一般需要root权限执行,所以一般跟着su ...

  3. ubuntu中使用apt命令安装ipython失败解决方案

    在最近使用ubuntu安装ipython时,出现如下报错: 出现这个问题,主要是因为apt还在运行,故解决方案为: 1.找到并且杀掉所有的apt-get 和apt进程 运行下面的命令来生成所有含有 a ...

  4. maven命令下载jar包

    mvn install:install-file -Dfile=jar包保存的本地路径 -DgroupId=jar保存的父级路径 -DartifactId=jar包文件夹名称 -Dversion=版本 ...

  5. Ubuntu查找通过apt命令已安装软件

    方法一 apt list --installed 方法二 dpkg -l

  6. ubuntu 下通过ftp命令下载文件

    /*连接*/ $ ftp 192.168.180.2Connected to 192.168.180.2.Name (192.168.180.2:rivsidn): admin  Password: ...

  7. ubuntu下dpkg/apt的一些常用命令

    apt-get update 更新源(硬盘缓存的包的版本等)apt-get upgrade 更新包(更新系统中已安装的包,依据缓存包的版本更新)apt-get dist-upgrade 升级系统apt ...

  8. Ubuntu上的apt/apt-get等命令的实质意义和区别

    Ubuntu上的apt/apt-get等命令的实质意义和区别 一.前言 在使用apt和apt-get命令的时候我们常常会疑惑这两者有什么区别,因为大多数时间这两个命令能做很多相同的事情. 二.APT/ ...

  9. Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载

    昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用.而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自 ...

随机推荐

  1. 理解Hadoop脚本hadoop-2.5.0/bin/hadoop

    1 #!/usr/bin/env bash    此处为什么不是  #!/bin/bash  ? 考虑到程序的可移植性,env的作用就是为了找到正确的脚本解释器(这里就是bash),在不同的Linux ...

  2. css3实现不同的loading

    样式1: <html> <head> <style type="text/css"> .loading { position: fixed; t ...

  3. function前加运算符实现立即执行函数

    我们知道函数的调用方式通常是FunctionName() 但如果我们尝试为一个"定义函数"末尾加上(),解析器是无法理解的. function msg(){ alert('mess ...

  4. HTML5 学习01——浏览器问题、新元素

    Internet Explorer 浏览器问题 问题:Internet Explorer 8 及更早 IE 版本的浏览器不支持HTML5的方式. <!--[if lt IE 9]> < ...

  5. 首席技术官应该考虑的网络安全问题 IT大咖说 - 大咖干货,不再错过

    首席技术官应该考虑的网络安全问题 IT大咖说 - 大咖干货,不再错过   http://www.itdks.com/dakalive/detail/5523

  6. [原创]浅谈IT人如何做理财规划

    [原创]浅谈IT人如何做理财规划 鱼哥博客上多数写的是技术和管理相关,但很少有理财等话题,今天抽空来谈谈IT人如何做理财规划,如果要想学习理财,我想很有名的“标准普尔家庭资产象限图”上值得每个学习和理 ...

  7. SpringCloud无废话入门05:Spring Cloud Gateway路由、filter、熔断

    1.什么是路由网关 截至目前为止的例子中,我们创建了一个service,叫做:HelloService,然后我们把它部署到了两台服务器(即提供了两个provider),然后我们又使用ribbon将其做 ...

  8. LVM原理与实现

    一.什么是LVM 不管是使用传统的MBR分区方式或者是GPT的分区方式,在最后数据量逐渐变大的过程中都会出现空间不足的情况,但是若是使用将此分区的数据全部迁移至一个更大空间的磁盘上的迁移时间也是不可想 ...

  9. Collection was modified; enumeration operation may not execute Dictionary 集合已修改;可能无法执行枚举操作

    public void ForeachDic() { Dictionary dic = new Dictionary(); dic.Add("1", 10); dic.Add(&q ...

  10. 【Jenkins】新版本的特性:自定义流水线

    #!/usr/bin/env groovy pipeline { agent none stages { stage('stage-01') { agent { label 'master' } st ...