嵌入式 Linux 入门第八课,了解 linux 下的软件安装相关内容 ......矜辰所致
序言
我们上面的文章基本上都是对Linux系统本身的说明与学习,这么我们在之后嵌入式开发的过程中肯定须要安装各类各样的软件,这么在Linux系统下边怎么安装软件呢?
这么本文最主要的目的是学会在Ubuntu下边怎么安装不同的软件,同时也简单的说明一下软件安装工具以及Ubuntu的包管理。
❤️>嵌入式Linux入门系列博文:
嵌入式Linux入门(一、Linux基本介绍及文件结构)
嵌入式Linux入门(二、Linux文件系统、文件类型及权限管理)
嵌入式Linux入门(三、LinuxShell及常用命令说明)
嵌入式Linux入门(四、Linux下的编辑器—让人爱恨交加的vi)
嵌入式Linux入门(五、Shell脚本编程上:认识Shell脚本)
嵌入式Linux入门(六、Shell脚本编程下:Shell脚本句型)
嵌入式Linux入门(七、Linux下的环境变量)
我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不凑合,认真对待学知识的我们,矜辰所致,金石为开!
目录
一、Linux系统的软件包管理
在开头,先简单说明一个东西,我们下载一个跨平台的程序,按照不同的平台会提供不同的安装包,例如右图,我们熟悉的Vscode,我们在官网下载地址可以看见不同平台的下载不是不同的软件包,如右图:
那这儿我们注意到假如下载Linux下边的VScode,有2个软件包:一个是.deb一个是.rpm。
1.1Ubuntu下的软件包
这两种不同的包是究竟用那个呢?就引出了我们明天要说明的第一个问题免费linux主机,Linux系统的软件包管理。
此部份可以仅作为知识了解,晓得有这个一个东西即可。
通常而言,大多数linux发行版分别属于两小包管理技术阵营:Debian的.deb,和RedHat的.rpm。
我们在系列文章第一篇的时侯讲过Linux的版本时侯说到过这两个东西:
对于不同的Linux发行版本,她们的包管理系统是不一样的:
这么这儿我们只须要晓得,我们使用的是Ubuntu系统,使用的软件包为.deb格式的即可。
那晓得了我们在Ubuntu下使用的.deb格式的软件包,这么还得Ubuntu晓得.deb软件包的使用工具:
这儿我们要晓得2个工具,dpkg和apt-get:
1.2dpkg工具
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.3install命令
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.4apt-get命令
apt-get命令,主要用于手动从互联网的软件库房中搜索、安装、升级、卸载软件或操作系统。
它与前面的我们介绍的install命令构成了Ubuntu下最常见的下载和安装软件的方式linux软件安装卸载,我们最常用的一条命令为的apt-getinstallxxxx:
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.5Ubuntu更换软件源
我们在Ubuntu中使用命令apt-getinstallxxxx下载软件之前,须要更换一下软件下载源。
APT采用C/S模式linux软件安装卸载,也就是顾客端/服务器模式,通常来说我们的PC机作为顾客端,当须要下载
软件的时侯就向服务器恳求,因而我们须要晓得服务器的地址,也称作软件源或则更新源,这个通常默认使用的是美国的软件源(服务器)。
Ubuntu安装完成就是美国的linux系统下载官网,所以我们须要更改软件源为国外的服务器,如右图操作:
里面点击软件更新器,之后继续进行下边操作:
选择中国的服务器,就设置完成。
在韦东山老师的教学文档中,还教了另外一种形式,直接更改配置文件:
首先备份源列表文件sources.list:
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
打开sources.list文件更改选择合适的源,替换原文件的内容,保存编辑好的文件,以阿里云更新服务器为例:
sudo vim /etc/apt/sources.list
在文件最上面添加阿里云镜像源:
# 阿里源
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具有更精减但足够的命令选项,但是参数选项的组织形式更为有效。除此之外,它默认启用的几个特点对最终用户也十分有帮助。
尽管apt与apt-get有一些类似的命令选项,但它并不能完全向下兼容apt-get命令。也就是说,可以用apt替换部份apt-get系列命令,但不是全部。
在有些小的细节处理上,还是得使用apt-get命令,具体呢在使用命令的时侯可以按照提示进行操作。
2.2使用apt还是apt-get呢?
我个人建议是无所谓,可能是我抱着都能用的心态,万一这个不行就用那种==!
好吧,并且作为一些大神还是建议尽量使用新版的apt,虽然新的东西更可能有发展前景。