目录
- 1. 前言
- 2. Linux系统两种主流软件包
- 2.1 rpm包
- 2.2 deb包
- 3. 解决软件依赖问题 —— yum、apt
- 3.1 yum
- 3.2 apt 和 apt-get
- 4. wget 网络文件下载工具
- 5. 总结
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-10-28 ❤️
- ❤️ 本篇更新记录 2022-10-28 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言 📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥
1. 前言
在玩树莓派Linux系统中经常看到各种下载包命令:
- wget
- rpm
- yum
- dpkg
- apt-get
我们经常性会使用这几种工具来下载软件。
- 所谓linux软件指的是
Linux 发行厂商或社区将某些功能源代码在特定的硬件编译后,将安装所需的文件打包成一个特殊的格式文件
。- 这个适用于指定 Linux 发行版本的安装包,用户可以通过
安装命令
进行安装。- 在安装包中,会包含检测系统与软件依赖的脚本,在安装前进行环境检测,若符合安装条件,就会安装该软件。
- 软件安装后还会将相关信息写入软件管理机制中,以便将来进行软件的升级或删除等。
为了避免混淆,我还是要记录一下。
2. Linux系统两种主流软件包
从内容上来说,Linux的包可以分为两类,一类是
源码包
,即未经过编译的包
,如后缀.tar,.gz,.zip,.rar
;一类是二进制包
,可以直接安装使用,而后缀为.rpm就是属于二进制包(通常而言,可以通过后缀判断是否为二进制或者源码包,真正区分是基于软件包里面的文件来判断)。
软件管理器是 Linux 发行厂商或社区提供,可以在特定的 Linux 发行版本上,进行软件安装
、卸载
、升级
、验证
等功能的软件管理程序。
在 Linux 系统中主要有两种软件管理器,分别是 RedHat 的 RPM
和 Debian 的 DPKG
。而它们对应的软件包叫做rpm
包和deb
包。
有的系统只支持使用rpm包安装,有的只支持deb包安装,混乱安装会导致系统问题。
2.1 rpm包
rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上( 如redhat
、centos
、Fedora
)
RPM(早期叫做Red-Hat Package Manager
,红帽软件包管理器,现在叫做 RPM Package Manager
)是由 Red Hat 公司开发,Fedora、CentOS 等发行版本都使用该软件管理器。
RPM 是一种预编译后的打包文件,其编译打包后的软件格式为 .rpm。
RPM包的命名规范:
name-version-release.os.arch.rpm
,比如rabbitmq-server-3.9.5-1.el7.noarch.rpm。
name
: 程序名称。version
:程序版本号。release
(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。os
:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。arch
:主机平台。如i686、x86_64、amd64、ppc(power-pc)、no
arch(即不依赖平台)例:bash-4.3.2-5.el6.x86_64.rpm
常用命令:
安装:rpm -ivh 包名
卸载:rpm -e 包名
查询所有已经安装包:rpm -qa
查询包的摘要信息:rpm -qi 包名
查询包安装生成的文件清单:rpm -ql 包名
查询某文件是由哪个rpm包安装生成的:rpm -qf /path/to/some_file
查询包安装生成的配置文件:rpm -qc 包名
查询包安装生成的帮助文档:rpm -qd 包名
查询包相关的脚本:rpm -q --scripts 包名
同时要注意一个点:
PRM 用来安装.rpm文件时,
不会解决模块的依赖关系
。
2.2 deb包
deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上(比如debian
(包括我们的树莓派官方推荐系统
)、ubuntu
)
DPKG(Debian Package) 是由 Debian 社区开发,Ubuntu 等发现版本都是用该软件管理器。
DPKG 使用 .deb
作为预编译安装文件格式,通过 DPKG 安装软件的方式类似如下:
dpkg -i your-package.deb
同时要注意一个点:
dpkg 用来安装.deb文件时,
不会解决模块的依赖关系
,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
3. 解决软件依赖问题 —— yum、apt
无论是 RPM 还是 DPKG,都会遇到软件依赖问题
。
如,安装软件 A 时,需要先安装软件 B,而安装软件 B 又要先安装软件 C。
因此,需要一种依赖管理机制。
RPM 和 DPKG 都提供了在线升级机制,能够从指定的服务器自动下载安装包,并能自动处理依赖关系,且可以一次性自动安装软件及其依赖。
在 RPM 中,使用 yum 命令
进行软件安装、依赖管理、在线升级等。
而在 DPKG 中,则使用 apt
和 apt-get
命令。
基本上我们用这两个命令更多。
3.1 yum
YUM客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。YUM在安装RPM时,会从服务器下载相应包,且缓存在本地。使用YUM进行RPM包的管理,非常简单方便。
常用命令:
获取yum仓库中所有的包信息
命令:yum list all
查看yum仓库中指定包名的软件包,可以使用通配符。
命令:yum list all mysql*
只显示已安装的包。
命令:yum list installed
只显示没有安装,但可安装的包。
命令:yum list available
查看所有可更新的包。
命令:yum list updates
显示不属于任何仓库的,额外的包。
命令:yum list extras
显示被废弃的包
命令:yum list obsoletes
新添加进yum仓库的包
命令:yum list recent
模糊匹配搜索
命令:yum search 查询名
查看当前能够使用的yum仓库
命令:yun repo list
显示所有仓库
命令:yum repo list all
显示禁用的仓库
命令:yum repo list enabled
显示启用的仓库
命令:yum repo list disabled
显示软件包的摘要信息
命令:yum info 包名
重新安装软包
命令格式:yum [-y] reinstall 包1 包2 … 包n
升级软件包
命令格式:yum update 包1 包2 … 包n
命令格式:yum update-to 包-版本号
说明:update-to可以指定版本号。
检测可升级的包
命令:yum check-update
卸载软件包
命令格式:yum remove 包1 包2 … 包n
注意:若该包被依赖,则该卸载可能会导致一些问题。如A依赖B,若卸载B,则A也会被卸载。
命令安装本地rpm包。
命令格式:yum install rpm包路径
命令格式:yum update rpm包路径
或者使用localinstall,localupdate。在RHEL5/CentOS5下必须使用localinstall,localupdate。
命令格式:yum localinstall rpm包路径
命令格式:yum localupdate rpm包路径
yum安装rpm默认会查询软件包来源合法性,但有时没提供密钥,无法安装。使用–nogpgcheck选项,可以避免yum作校验。
命令:yum localinstall --nogpgcheck
3.2 apt 和 apt-get
apt-get 是ubuntu下的一个软件安装方式,它是基于Debian Linux系统,包管理工具,类似于yum。会解决和安装模块的依赖问题
,并会咨询软件仓库, 但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。
常用命令:
apt-get install package
//在线安装软件包apt-get autoremove
//删除不再需要的软件包apt-get remove package --purge
//删除软件包及配置文件apt-get update
// 更新源文件,并不会做任何安装升级操作apt-get upgrade
// 升级所有已安装的包apt-get -f install
// 修复安装
4. wget 网络文件下载工具
wget是Linux提供的在线下载工具
,可以理解为Windows中的迅雷,一般是用作源码包的下载
,完成后还需要用户编译安装。只会下载文件,不做其他操作。
5. 总结
主要是对经常用到的一些下载安装命令做一个记录。