持续创造,加速生长!这是我参加「日新计划 10 月更文应战」的第31天,点击检查活动详情
嵌入式 Linux 入门第八课,了解 linux 下的软件装置相关内容 ......矜辰所造成的
前言
咱们前面的文章基本上都是对 Linux 体系本身的阐明与学习,那么咱们在今后嵌入式开发的过程中肯定需求装置各式各样的软件,那么在 Linux 体系下面怎样装置软件呢?
那么本文最首要的意图是学会在 Ubuntu 下面怎样装置不同的软件,一起也简略的阐明一下软件装置东西以及 Ubuntu 的包办理。
我是矜辰所造成的,全网同名,尽量用心写好每一系列文章,不虚浮,不迁就,认真对待学常识的咱们,矜辰所造成的,金石为开!
一、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 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 装置完结便是国外的,所以咱们需求修正软件源为国内的服务器,如下图操作:
上面点击软件更新器,然后持续进行下面操作:
挑选我国的服务器,就设置完结。
在韦东山教师的教育文档中,还教了另外一种办法,直接修正装备文件:
- 首要备份源列表文件 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 ,毕竟新的东西更可能有发展前景。
上面推荐文章说:
作为一个惯例 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 下的软件装置,这下咱们能够在咱们的虚拟机中装置咱们所需求的软件,搭建好咱们的开发环境。
好了,本文就到这儿,谢谢咱们!