ubuntu软件安装

ubuntu软件安装

  • apt和apt-get
  • dpkg
  • 源码安装

apt和apt-get

在ubuntu安装软件时常用命令apt-get install xxx命令来安装。从字面上理解install即是安装的意思,get即获取的意思,apt此处理解为工具名称,全称 Advanced Packaging Tool(APT)字义是先进的包装工具,但在linux系统中应该理解为软件包管理工具(个人理解)。那么这个命令的含义就是利用apt这一工具获取并安装用户指定的软件。同样apt-get remove xxx则可以理解为利用apt工具获取并删除指定软件。
软件的获取方式是从指定的镜像源中获取,源镜像地址指定方式:

#用于打开指定软件源的文件
sudo gedit /etc/apt/sources.list 
#用于更新软件源
sudo apt-get update

国内常用的开源源镜像网站:

阿里云开源镜像:http://mirrors.aliyun.com/
中科大开源镜像:http://mirrors.ustc.com/
清华大学开源镜像:https://mirror.tuna.tsinghua.edu.cn/
华中科技大学开源镜像:http://mirror.hust.edu.cn/

对于未安装的软件,apt指令直接会通过指定的源地址,从对应的网站中获取;对于已安装的软件,apt指令则会搜索系统内的软件列表,来进行定位。

对于早期的教程,常用的指令是apt-get而在近期的教程里,更多的则是使用apt指令。这两个指令有一定的关系,却又不尽相同。简单说,apt是apt-get指令的升级版。
在整个apt工具箱里,定义了一些基础命令,如apt-get、apt-cache、apt-config 等。这些命令都比较底层又包含众多功能。其中最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条基础命令当中。
而命令过于分散时也存在缺点,即会增加操作的复杂性,apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

但aptb并不能做到完全向下兼容apt-get。这就是为何这两个指令并存的原因。
常用的apt指令:

apt 命令 apt-get命令 命令的功能
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 更新镜像源地址
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的软件包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序

dpkg

dpkg 是Debian package的简写,为”Debian“ 操作系统专门开发的套件管理系统,用于软件的安装,更新和移除。但与apt不同的是,dpkg是针对现有的已经下载了的安装包进行安装,而apt并不直接操作 deb 安装包文件,而是从 /etc/apt/sources.list 配置文件中定义的软件镜像源里下载软件包并安装。

安装软件:dpkg -i <.deb file name>
删除软件包(保留其配置信息 ):dpkg -r <.deb file name>
删除一个包(包括配置信息):dpkg -P <.deb file name>
查找只有部分安装的软件包信息:dpkg -C package-name
搜索Deb包:dpkg -l package-name

源码安装

一般源码安装的流程是:

./configure
make
make install  

./configure是为了检测目标安装平台的特征,并且检查依赖的软件包是否可用或者是否缺少依赖软件包,configure事实上是个脚本,最终的目的是生成Makefile。
如果./configure没报错,就会生成一个Makefile,make指令就是根据Makefile编译这个源码包。
编译完之后如果没有报错,就会生成可执行文件,make install指令就是将可执行文件放到指定目录并配置环境变量来允许用户在任何目录下使用这个软件。
理想情况是这样的。但往往现实不会理想,

./configure报错:一般是缺少依赖或者依赖文件的版本不匹配。
make报错:依赖库包含等内部的bug.
make install 报错,大多是没有权限,即需要加sudo,问题多出在软件卸载的时候, make uninstall指令仅仅卸载可执行文件,其他配置文件和依赖文件不作处理,搞到目录混乱。

热门文章

暂无图片
编程学习 ·

搭建一个完整的微服务系统(四):微服务的公共依赖

任何一个系统中,都有一个或多个基础项目,可生成jar包给所有服务依赖。在本示例(工程basejar)中,我给大家找了一些常用的进行说明,这些内容和业务无关,大家可以直接使用。 幂等相关这部分包括:AutoIdempotent.java、AutoIdempotentInterceptor.java、TokenService.java三个…
暂无图片
编程学习 ·

vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇1】

项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建。 本主题讲述了vue+element-ui JYAdmin 后台管理系统模板-集成方案,从零到一的手写搭建全过程。 该项目不仅是一个持续完善、高效简洁的后台管理系统模板,还是一套企业级后台系统开发集成方案,致力…
暂无图片
编程学习 ·

OpenCV的初步解读

OpenCV的初步解读图像读取:cv2.imread(path,flag)`` flag:如何读取图片:cv2.IMREAD_COLOR:读取彩色图像。图像的透明度会被忽略(默认参数)。 cv2.IMREAD_GRAYSCALE:读取灰度图像。 flag=-1, 8位深度,原通道 flag=0, 8位深度 1通道 flag=1, 8位…
暂无图片
编程学习 ·

C++排雷:16. #pragma warning的几种用法

#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。 #pragma warning(push)是保存当前的编译器警告状态;#pragma warning(push, n) 存储当前报警设置,并设置报警级别为n。n为从1到…
暂无图片
编程学习 ·

Scanner对象

Scanner对象 作为输入使用,主要有两种接收键盘输入字符的方法,next()方法和nextLine()方法,下面介绍一下 import java.util.Scanner;public class demo01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输…
暂无图片
编程学习 ·

实战:SpringBoot分布式验证码登录方案

本文大纲 文章目录本文大纲前言前后端未分离的验证码登录方案验证码生成流程如下登录验证流程如下前后端分离的验证码登录方案验证码生成流程如下登录验证流程如下动手撸轮子Kaptcha介绍新建项目并加入依赖Redis配置类`RedisConfig`验证码配置类`KaptchaConfig`验证码控制层`Ca…
暂无图片
编程学习 ·

大数据分析的作用有哪些

大数据分析的出现不但可以让老百姓的生活更加便捷,同时也可以提高企业的竞争力,无论是哪个行业以及具体的企业都会有与之对应的大数据分析,而今天就来说说大数据分析对于企业有哪些帮助。数据分析目的1:分类检查未知分类或暂时未知分类的数据,目的是预测数据属于哪个类别或…
暂无图片
编程学习 ·

基于Token的身份验证的原理

目录1 发展史2 Cookie3 Session3.1 cookie和session的区别4 Token4.1 传统方式——基于服务器的验证4.2 基于服务器验证方式暴露的一些问题4.3 基于Token的验证原理4.5 Tokens的优势1 发展史1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记…
暂无图片
编程学习 ·

自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画

一、概述前两篇,我为大家讲述了利用XML来定义动画及插值器,但在代码中,我们常常是动态生成动画的,所以,这篇将为大家讲述如何用代码生成动态生成动画及插值器。先简单写出各个标签对应的类,方便大家理解:scale —— ScaleAnimationalpha —— AlphaAnimationrotate ——…
暂无图片
编程学习 ·

qqwwee/keras-yolo3 多gpu训练问题

qqwweee/keras-yolo3模型默认采用的是一块GPU,在直接使用model = multi_gpu_model(model,gpus=N)时,模型会报错tensorflow.python.framework.errors_impl.InvalidArgumentError: Can’t concatenate scalars (use tf.stack instead) for ‘yolo_loss_1/concat’ (op: ‘Conca…
暂无图片
编程学习 ·

redis 缓存击穿,穿透,雪崩及解决方案

一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会…
暂无图片
编程学习 ·

java.lang.UnsupportedOperationException异常处理

今天写代码的时候遇到的,原因是因为使用Arrays.asList()将数组转为list之后,想调用add方法增加元素时的异常,后来查了资料才发现猫腻 在Arrays中有一个方法Arrays.asList(),这个平常我们都用作数组转List的,但是这个方法转出来的List是无法进行add/remove操作的,原因是由…
暂无图片
编程学习 ·

nmon监控工具使用

1、下载nmon监控工具和分析工具,然后把nmon监控工具上传到需要监控的服务器上,建议在/usr/local文件夹下新建一个soft文件夹来存放监控工具,监控工具下载地址https://sourceforge.net/projects/nmon/files/nmon16m_helpsystems.tar.gz/download,然后在soft文件夹下再新建一…
暂无图片
编程学习 ·

网络安全技术及应用第3版 主编贾铁军等——教材习题 期末重点 复习题 知识提炼(第4章 黑客攻防与检测防御)

参考教材:网络安全技术及应用 第3版 主编贾铁军等 第4章 黑客攻防与检测防御填空题简答题论述题 填空题 (1)端口扫描的 防范也称为 系统“加固”,主要有 防止IP地址的扫描 和(关闭 闲置及有潜在危险 端口)。 (2)(分布式拒绝服务攻击DDoS)就是利用更多的傀儡机对目标发…
暂无图片
编程学习 ·

ROS学习笔记(十七):rviz之用户指导

1.Troubleshooting 如果您遇到问题并且没有看到下面的答案,请尝试“故障排除”页面 2.Install or build rviz 2.1 Install from debian repository Until fuerte: sudo apt-get install ros-fuerte-visualizationFrom groovy on: sudo apt-get install ros-groovy-rviz # or s…
暂无图片
编程学习 ·

python从小白到入门(6)

1、集合: >>> set_a = {1,2,3,1,a,b,c} >>> set_a {1, 2, 3, c, a, b} >>> #集合 >>> #集合没用顺序,没有重复,不能索引,hash 哈希类型2、 >>> set1 = {1,2,3} >>> set2 = {a,b,c} >>> set3 = {1, a, 2} &g…
暂无图片
编程学习 ·

2020A证(安全员)模拟考试题库及A证(安全员)考试软件

题库来源:安全生产模拟考试一点通公众号小程序2020A证(安全员)模拟考试题库及A证(安全员)考试软件,包含A证(安全员)模拟考试题库答案解析及A证(安全员)考试软件练习。由安全生产模拟考试一点通公众号结合国家A证(安全员)考试最新大纲及A证(安全员)考试真题出具,有助于A证(安…