写点什么

嵌入式 Linux 入门(八、Linux 下的软件安装)

作者:矜辰所致
  • 2022-10-29
    江苏
  • 本文字数:5038 字

    阅读完需:约 17 分钟

嵌入式 Linux 入门(八、Linux 下的软件安装)
嵌入式 Linux 入门第八课,了解 linux 下的软件安装相关内容  ......矜辰所致
复制代码

前言

我们前面的文章基本上都是对 Linux 系统本身的说明与学习,那么我们在以后嵌入式开发的过程中肯定需要安装各种各样的软件,那么在 Linux 系统下面如何安装软件呢?


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


嵌入式 Linux 入门系列博文:

嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)

https://xie.infoq.cn/article/1adbc03be480d8203f8b1ed4a

嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)

https://xie.infoq.cn/article/4d2e926fda47f2eff019ae0e4

嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)

https://xie.infoq.cn/article/b25c452df449abc1806ba446a

嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )

https://xie.infoq.cn/article/d87223a72889208660ecbec17

嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

https://xie.infoq.cn/article/16e4569fa32dce00a39eaddaf

嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)

https://xie.infoq.cn/article/1e982eb296024089baf5c1ca0

嵌入式 Linux 入门(七、Linux 下的环境变量)

https://xie.infoq.cn/article/2204ed2ccaf662eccba3024d8

我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!


一、Linux 系统的软件包管理

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



那这里我们注意到如果下载 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 DESTinstall [OPTION]... SOURCE... DIRECTORYinstall [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 安装完成就是国外的,所以我们需要修改软件源为国内的服务器,如下图操作:



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



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


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


  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 multiversedeb http://mirrors.aliyun.com/Ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/Ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/Ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/Ubuntu/ bionic-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/Ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/Ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/Ubuntu/ bionic-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/Ubuntu/ bionic-proposed main restricted universe multiversedeb-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 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。除此之外,它默认启用的几个特性对最终用户也非常有帮助。



虽然 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 下的软件安装,这下我们可以在我们的虚拟机中安装我们所需要的软件,搭建好我们的开发环境。


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

发布于: 刚刚阅读数: 3
用户头像

矜辰所致

关注

CSDN、知乎、微信公众号: 矜辰所致 2022-08-02 加入

不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开! 为了活下去的嵌入式工程师,画画板子,敲敲代码,玩玩RTOS,搞搞Linux ...

评论

发布
暂无评论
嵌入式 Linux 入门(八、Linux 下的软件安装)_Linux_矜辰所致_InfoQ写作社区