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


    嵌入式 Linux 入门第八课,了解 linux 下的软件安装相关内容  ......矜辰所致
    
    • 1

    前言

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

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

    ❤️ >嵌入式 Linux 入门系列博文:
    嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)
    嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)
    嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)
    嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
    嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
    嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)
    嵌入式 Linux 入门(七、Linux 下的环境变量)
    .
    我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

    一、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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

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

    1.4 apt-get 命令

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

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

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

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

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

    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 				
    			  
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

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

     -h 		帮助文件。  
    
     -q 		输出到日志 - 无进展指示  
    
     -qq 		不输出信息,错误除外  
    
     -d 		仅下载 - 不安装或解压归档文件  
    
     -s 		不实际安装。模拟执行命令  
    
     -y 		在需要确认的场景中回应 yes
    
     -f 		尝试修正系统依赖损坏处  
    
     -m 		如果归档无法定位,尝试继续  
    
     -u 		同时显示更新软件包的列表  
    
     -b 		获取源码包后编译  
    
     -V 		显示详细的版本号  
    
     -c=? 		阅读此配置文件  
    
     -o=? 		设置自定的配置选项 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    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
    1. 打开sources.list文件修改选择合适的源,替换原文件的内容,保存编辑好的文件, 以阿里云更新服务器为例:
    sudo vim /etc/apt/sources.list
    
    • 1
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

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

  • 相关阅读:
    STM32的HAL库的定时器使用
    网络原理之TCP/IP
    【统计学概念】初学者指南:了解置信区间
    MaxKey单点登录认证系统v3.5.10GA发布
    Cocoa Application-test
    Python 位运算的操作
    xtrabackup增量备份MySQL-5.7操作说明
    还在为sql注入眼花缭乱的过滤而烦恼?一文教您快速找出所有过滤内容
    扩散模型:Diffusion models as plug-and-play priors作为即插即用先验的扩散模型
    uni-app:获取当前经纬度解决方案+如何布置全局组件
  • 原文地址:https://blog.csdn.net/weixin_42328389/article/details/126073544