【树莓派不吃灰】使用中经常看到的安装命令 wget、rpm、yum、dpkg、apt-get

news2024/12/20 2:39:50

在这里插入图片描述

目录

    • 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系统上( 如redhatcentosFedora

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 中,则使用 aptapt-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 包12 … 包n

升级软件包
命令格式:yum update 包12 … 包n
命令格式:yum update-to 包-版本号
说明:update-to可以指定版本号。

检测可升级的包
命令:yum check-update

卸载软件包
命令格式:yum remove 包12 … 包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. 总结

主要是对经常用到的一些下载安装命令做一个记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式之备忘录模式 - 简书

备忘录模式是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 解决方案 我们刚才遇到的所有问题都是封装 “破损” 造成的。 一些对象试图超出其职责范围的工作。 由于在执行某些行为时需要获取数据, 所以它们侵入了其…

ipv6学习笔记221029

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写 ipv6的长度有128位, ipv4的长度是32位 ipv6以冒号:分隔 , ipv4以点.分隔 8个16位等于128位 , 4个十六进制表示16位(一个16进制表示4位) ipv6的128位 由 8 个 16位 16bit 组成 每…

【LeetCode】【两个数组的交集】

力扣 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2] 示例 2: 输入:num…

基于MATLAB的指纹识别算法仿真实现

目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 在指纹图像预处理部分,论文对预处理的各个步骤包括规格化、图像分割、中值滤波、二值化、细化等以及各个步骤的方法进行了深入的分析和研究,选择了一种图像预处理方案。在指纹特征提取部分…

基于javaweb的医疗挂号管理系统(java+springboot+freemarker+layui+mysql)

基于javaweb的医疗挂号管理系统(javaspringbootfreemarkerlayuimysql) 运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基…

幼儿园小程序实战开发教程(终篇)

我们已经写了四篇教程,涵盖了需求分析及各个页面,本篇是我们的最终篇。 咨询信息 我们小程序需要收集家长和孩子的信息,为此我们也规划了数据源。如果按照传统开发思路,那我们是要依次实现信息采集的每个字段,然后再…

<Linux系统复习>文件描述符

一、本章重点 1、进程和打开文件的关系 2、简单复习c语言文件操作 3、介绍系统调用:open、clos、write、read 4、理解文件描述符 5、文件描述符分配规则 6、理解stdin、stdout、stderr与fd的关系 7、理解linux下一切皆文件 8、理解重定向的本质 9、理解stdin和stdou…

《吉师作业》(1)之我是web手为啥让我学C

前言 🍀作者简介:吉师散养学生,为挣钱努力拼搏的一名小学生。 🍁个人主页:吉师职业混子的博客_CSDN博客-python学习,HTML学习,清览题库--C语言程序设计第五版编程题解析领域博主 🫒文章目的:我不…

freeRTOS学习(二)

堆内存管理 先决条件 FreeRTOS是作为一组C源文件提供的,因此成为一个合格的C程序员是使用FreeRTOS的先决条件。 动态内存分配及其与FreeRTOS的相关性 内核对象:如任务、队列、信号量和事件组。为了使FreeRTOS尽可能易于使用,这些内核对象不…

科普一下MTU是什么,如何设置MTU

欢迎来到东用知识小课堂,下面我们就来科普一下一下MTU是什么,如何设置MTUMTU是最大传输单元的意思,代指一类通讯协议某一层上所能通过的最大数据包大小(以byte为单位)。最大传输单元这一主要参数一般与串行通讯接口相关(网络接口卡、串口等)。…

【Vue实用功能】彻底搞懂Vue中的Mixin混入

前言 有些小伙伴接手别人的Vue项目时,看到里面有个Mixin文件夹,可能会云里雾里的状态,今天我们来好好聊聊Mixin,争取以后不再云里雾里。 一、什么是Mixins? Mixins(混入):当我们存在多个组件中的逻辑或者…

MySQL总结

文章目录一.SQL语句简介1.什么是SQL?2.SQL分类二.MySql常用数据类型三.数据库操作1.创建数据库2.查询和删除数据库3.备份/恢复数据库四.表操作1.创建表2.修改/查看表五.CRUD语句1.Insert语句2.Delete语句3.Update语句4.Select语句五.函数1.统计函数count2.字符串相关…

for in和for of

文章目录二者在什么情况下可以使用for ... in什么是可枚举的属性?for...of什么是可迭代的数据?总结二者在什么情况下可以使用 for … in 可以用在可枚举的数据,如: 对象数组(循环的是索引)字符串 什么是…

ESP8266-Arduino网络编程实例-发送邮件(基于SMTP)

发送邮件(基于SMTP) 本文将演示如何使用ESP8266发送邮件。实例中将使用SMTP(Simple Mail Transfer Protocol)协议通QQ邮箱向指定邮箱发送邮件。 1、设置QQ邮箱第三方服务 1)第一步:注册一个QQ邮箱 2)第二步:开启QQ邮箱的第三方服务 1、硬件准备 ESP8266 NodeMCU开发…

高通Android随身WIFI屏蔽商家远程控制断网

部分随身WIFI商家后台会监测用户是否使用的是自家的eSIM,若使用了外置卡槽或eSIM的ICCID改变就会断网,主要表现是先联网后突然变成飞行模式,或联网后开热点变飞行模式。这就是商家后台做了监测,检测到异常就断网。我们的主要解决思路就是禁止随身wifi连接商家的远程服务器,…

pytorch中一维卷积,二维卷积,三维卷积,层次特征注意力

一维卷积 一维卷积操作常用作文本数据或者序列数据的处理。这里以文本数据为例进行讲解。 下图左边是一个文本矩阵,是将这句话‘I like this movie very much!’转换为计算机可以处理的语言。对于宽度,可以认为是词向量的维度,高度可以表示为这个句子的最大长度,从这里可…

上手Python之set(集合)

为什么使用集合 我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景。 为何又需要学习新的集合类型呢? 通过特性来分析: 列表可修改、支持重复元素且有序 元组、字符串不可修改、支持重复元素且有序 有没有看出一些局限&…

JavaEE在线学习系统的设计与实现

目 录 摘 要 i Abstract ii 第1章 概论 1 1.1 课题背景 1 1.2 课题意义 2 1.3开发工具及技术 2 1.3.1 MyEclipse 2 1.3.2 ToMcat 2 1.3.3 SqlServer 2 1.3.4 JSP 3 1.3.5 Servlet 3 第2章 可行性分析及总体设计原则 5 2.1可行性分析 5 2.1.1技术可行性 5 2.1.2经济可行性 5 2.1…

Python - Numpy库的使用(简单易懂)

目录 numpy多维数组——数组的创建 1、array函数创建数组对象 2、通过arange、linspace函数创建等差数组对象 3、通过logspace函数创建等比数列数组 函数 zeros ones diag eye full numpy多维数组——生成随机数 函数 seed rand randn randint 函数 binomial normal 和…

【算法篇-搜索与图论】适合算法入门小白理解的深度优先搜索(DFS )以及解决全排列数字

目录1.什么是深度优先搜索(DFS)2.结合例子看DFS2.1 全排列数字结语该文章部分内容摘抄自 啊哈磊老师的《啊哈!算法》 一本对算法新手非常友好的书,非常推荐新手去阅读! 1.什么是深度优先搜索(DFS&#xff0…