凡亿教育-思思
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 嵌入式 Linux 入门(八、Linux 下的软件安装)
嵌入式 Linux 入门(八、Linux 下的软件安装)

那么本文最主要的目的是学会在 Ubuntu 下面如何安装不同的软件,同时也简单的说明一下软件安装工具以及 Ubuntu 的包管理。

我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!


  • 前言

  • 一、Linux 系统的软件包管理

    • 1.1 Ubuntu 下的软件包

    • 1.2 dpkg 工具

    • 1.3 install 命令

    • 1.4 apt-get 命令

    • 1.5 Ubuntu 更换软件源

  • 二、apt 与 apt-get

    • 2.1 两者的关系

    • 2.2 使用 apt 还是 apt-get 呢?

  • 三、软件安装方法

    • 3.1 下载.deb安装包

    • 3.2 应用商店安装

    • 3.3 ☆ 使用 apt 命令安装 ☆

  • 结语


一、Linux 系统的软件包管理

在开头,先简单说明一个东西,我们下载一个跨平台的程序,根据不同的平台会提供不同的安装包,比如下图,我们熟悉的 Vscode ,我们在官网下载地址可以看到不同平台的下载不是不同的软件包,如下图:

0869d2dc40ab8743428389926c5144.png在这里插入图片描述

那这里我们注意到如果下载 Linux 下面的 VScode ,有 2 个软件包:一个是.deb 一个是.rpm。

1.1 Ubuntu 下的软件包

这两种不同的包是到底用哪个呢? 就引出了我们今天要说明的第一个问题,Linux 系统的软件包管理。

此部分可以仅作为知识了解,知道有这个一个东西即可。

一般而言,大多数linux发行版分别属于两大包管理技术阵营:Debian 的.deb,和 RedHat 的.rpm。

我们在系列文章第一篇的时候讲过 Linux 的版本时候说到过这两个东西:

对于不同的 Linux 发行版本,他们的包管理系统是不一样的:

在这里插入图片描述

那么这里我们只需要知道,我们使用的是 Ubuntu 系统,使用的软件包为.deb 格式的即可。

那知道了我们在 Ubuntu 下使用的.deb 格式的软件包,那么还得 Ubuntu 知道 .deb 软件包的使用工具:

在这里插入图片描述

这里我们要知道2个工具, dpkg  和 apt-get:

  • dpkg 管理系统的里 deb 包,可以对其安装、卸载、deb打包、deb解压等操作,

  • apt-get 可以在线下载 deb包 安装

1.2 dpkg 工具

dpkg 工具,Ubuntu 底层的包管理工具,主要用于对已下载到本地和已经安装的deb包进行管理。

这个工具记住他的使用就可以,他的常用命令如下:

安装软件: dpkg -i xxxx.deb

查看安装目录:dpkg -L xxxx   #使用此命令不需要加.deb后缀,下面没有后缀的相同

显示版本:dpkg -l xxxx

查找包的详细信息:dpkg -s xxxx

列出deb包的内容:dpkg -c xxxx.deb

卸载软件(保留配置):dpkg -r xxxx

卸载软件(不保留配置):dpkg -P xxxx

解开 deb 包的内容 :dpkg –unpack xxxx.deb

配置包:dpkg –configure xxxx

在下文介绍软件安装方法的时候,会有更多的实例说明。

1.3 install 命令

install  命令:将编译后的文件安装到系统中。

命令install通常和命令 apt-get 组合在一起使用的。

install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...

install [选项 ]... [-T] 源文件 目标文件
install [选项 ]... 源文件 ... 目录
install [选项 ]... -t 目录 源文件 ... 
install [选项 ]... -d 目录 ...

[常用选项如下]
-g,--group=Group:指定目标文件的属组;
-o,--owner=user:指定目标文件的属主;
-m,--mode=mode:指定目标文件的权限模式;
-S:设置目标文件的后缀;
-D:创建指定文件路径中不存在的目录;

在上面得三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式,在第四种形式会创建指定的目录。

这部分不理解问题不大,以后用到自然就明白。

1.4 apt-get 命令

apt-get 命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

它与上面的我们介绍的 install 命令构成了 Ubuntu 下最常见的下载和安装软件的方法,我们最常用的一条命令为的 apt-get install xxxx:

apt-get install xxxx    #安装指定的软件包
#比如安装 git:
apt-get install git        

这个命令也可以加一些参数,加参数的格式为:

apt-get -d install packagename #参数跟在 apt-get 后面空格隔开

apt-get 命令同上面 dpkg 一样记住使用就可以,他的常用命令如下:

更新源文件,并不会做任何安装升级操作:apt-get update      

升级所有已安装的包 :apt-get upgrade     

安装指定的包:apt-get install packagename  

仅升级指定的包:apt-get install packagename --only-upgrade  

重新安装包:apt-get install packagename --reinstall     

修复安装:apt-get -f install        

安装相关的编译环境:apt-get build-dep packagename    

下载该包的源代码:apt-get source packagename      

升级系统:apt-get dist-upgrade      

使用 dselect 升级:apt-get dselect-upgrade     

删除包(不删除配置文件) :apt-get remove packagename      

删除包(删除配置文件):apt-get remove packagename -- purge    

清理无用的包:apt-get clean         

清理无用的包:apt-get autoclean       

检查是否有损坏的依赖:apt-get check   

查询指定的包 :apt-cache search packagename      

显示包的相关信息:apt-cache show packagename     

使用该包依赖哪些包:apt-cache depends packagename   

查看该包被哪些包依赖:apt-cache rdepends packagename     
     

apt-get 可添加的参数如下:

 -h   帮助文件。  

 -q   输出到日志 - 无进展指示  

 -qq   不输出信息,错误除外  

 -d   仅下载 - 不安装或解压归档文件  

 -s   不实际安装。模拟执行命令  

 -y   在需要确认的场景中回应 yes

 -f   尝试修正系统依赖损坏处  

 -m   如果归档无法定位,尝试继续  

 -u   同时显示更新软件包的列表  

 -b   获取源码包后编译  

 -V   显示详细的版本号  

 -c=?   阅读此配置文件  

 -o=?   设置自定的配置选项 
1.5 Ubuntu 更换软件源

我们在 Ubuntu 中使用 命令 apt-get install xxxx下载软件之前,需要更换一下软件下载源。

APT采用 C/S 模式,也就是客户端/服务器模式,一般来说我们的 PC机作为客户端,当需要下载 软件的时候就向服务器请求,因此我们需要知道服务器的地址,也叫做软件源或者更新源,这个一般默认使用的是国外的软件源(服务器)。

Ubuntu 安装完成就是国外的,所以我们需要修改软件源为国内的服务器,如下图操作:

50900540ad0d5e987468cde7a31a5b.png在这里插入图片描述

上面点击软件更新器,然后继续进行下面操作:

在这里插入图片描述

选择中国的服务器,就设置完成。

在韦东山老师的教学文档中,还教了另外一种方式,直接修改配置文件:

  1. 首先备份源列表文件 sources.list:

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

  1. 打开sources.list文件修改选择合适的源,替换原文件的内容,保存编辑好的文件, 以阿里云更新服务器为例:

sudo vim /etc/apt/sources.list

  1. 在文件最前面添加阿里云镜像源:

#  阿里源
deb http://mirrors.aliyun.com/Ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/Ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/Ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/Ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/Ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/Ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/Ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/Ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/Ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/Ubuntu/ bionic-backports main restricted universe multiverse

在我们使用 APT工具下载安装或者更新软件的时候,首先会在下载列表中与本机软件进行对比,看一下需要下载哪些软件,或者升级哪些软件,默认情况下 APT会下载并安装最新的软件包,被安装的软件包所依赖的其它软件也会被下载安装或者更新。

二、apt 与 apt-get

我们上面介绍的是:apt-get, 但是我们还经常看到 apt 这个命令,怎么少了个 get ?

2.1 两者的关系

简单来说:

apt 是新版的包管理工具,解决apt-get命令过于分散的问题。

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

apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。

这里推荐一篇说得比较好的文章:Linux中apt与apt-get命令的区别与解释

本小节大多内容引用至上面的文章:

apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。除此之外,它默认启用的几个特性对最终用户也非常有帮助。

d0a474bdd3db986d7f703cb93067ed.png在这里插入图片描述

虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

在有些小的细节处理上,还是得使用 apt-get 命令,具体呢在使用命令的时候可以根据提示进行操作。

2.2 使用 apt 还是 apt-get 呢?

我个人建议是无所谓,可能是我抱着都能用的态度,万一这个不行就用那个 = =!

好吧,但是作为一些前辈还是建议尽量使用新版的 apt ,毕竟新的东西更可能有发展前景。

上面推荐文章说:

作为一个常规 Linux 用户,系统极客建议大家尽快适应并开始首先使用 apt。不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项,最重要的是,apt 命令选项更少更易记,因此也更易用。

三、软件安装方法

上面说到过,软件安装是编译完成以后使用命令install来安装到系统中, 嵌入式 Linux开发使用得最多的方法就是自行编译源码后进行安装。

但是本文暂时不讨论上述方式,只讲一下安装一些现成的软件包,主要是目的是为了入门者可以方便的搭建好自己的开发环境,下面介绍一下现成软件的安装方法:

3.1 下载.deb安装包

如本文开头的 Vscode 软件包一样,我们可以在对应的网站下载.deb软件包,然后放入 Ubuntu 中进行安装。

我们直接用示例说明,我下载了一个 QQ 的安装包:

在这里插入图片描述3.1.1 图形化界面双击安装

在有图形化界面的时候,我们直接可以通过和 Windows 下一样的双击操作进行安装。

这里就不演示,简单。

3.1.2 dpkg命令安装

上面我们讲过 dpkg 命令,安装软件: dpkg -i xxxx.deb ,那么我们来测试一下:

在这里插入图片描述

安装完了以后怎么启动呢?随便测试了一下,直接输入 qq ,就启动了:

在这里插入图片描述

当然,也可以在左下角那 9 个点:显示应用程序里面用图形化界面打开:

在这里插入图片描述3.2 应用商店安装

其实在我们安装的虚拟机环境中,有可视化图形界面,里面有 Ubuntu 的应用商店,我们需要什么软件,可以直接搜索进行安装,如下图:

在这里插入图片描述

那么这种方式基本上就和 windows 下一样了,只是他不需要你选择安装路径,因为在 Ubuntu 下面会自动选择好路径。

3.3 ☆ 使用 apt 命令安装 ☆

学会使用 apt 安装是本文的核心,这是必须要掌握的方法!!但其实也蛮简单的,记住前面讲过的一个指令:apt-get install xxxx

举几个例子,我这里都已经安装过了,这里在进行升级:


结语

本文相对前面还是比较简单的,基本上记住一条指令:apt-get install xxxx 就可以满足大部分情况下的软件安装,周末轻松一点 O(∩_∩)O~ 。

学会了 Linux 下的软件安装,这下我们可以在我们的虚拟机中安装我们所需要的软件,搭建好我们的开发环境。

好了,本文就到这里,谢谢大家!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论