用树莓派和 RFID 做能识别音乐专辑的桌子

有不少年轻用户还会追黑胶唱片。

他们的着眼点并不在体验传统的味道上,而是觉得收集黑胶或者其他实体专辑是一种支持歌手出唱片或提升“仪式感”的行为。

虽然不怎么听,但买起来也不会少。

确实,现在要听个实体专辑确实也不容易。黑胶的话经不起折腾,听 CD 也不方便。而且现在的人已经习惯了那种以单曲、EP 为主的音乐消费模式,很少人能够坚持把一张专辑完完整整听完的。

所以在声音体验也没有差太多的前提下,与其去不断切歌、换碟,倒不如直接用流媒体来得方便。

但其实,现在有人还想去玩“实体专辑”。GitHub 上有一位用户,就通过树莓派做了一个识别感应器,让自家的 Google Home 用上“实体专辑”。

根据 The Verge 的报道,这位来自 GitHub 上的用户叫“hoveeman”,他将一个射频识别读卡机和树莓派 Raspberry Pi Zero 连接起来,并开发了一套专用的程序。安装上这套程序后,树莓派能够给家中的 Google Home 发出指令,让它播放相应的专辑。

在这套组合中,射频识别读卡器 RFID 模块的任务就是用来识别“实体专辑”。

这些“实体专辑”,其实是 hoveeman 自己做的一些小卡片。小卡片的表面印着专辑封面、名称和表演者,卡片内部则呆在了一块小型识别芯片。当用户将芯片放到 RFID 模块上,模块就能够识别出相应的信息,传输到 Raspberry Pi Zero 上。电脑处理后,就会发送的 Google Home 上,让它播放相应的专辑。

这个模块能够隐藏在家居产品当中,不管是木桌还是凳子,只要不阻碍 RFID 识别的,都能够藏在里面。虽然这套设备带来的解决方案有点“多此一举”,但现在看起来有点意思。至少,它比你经常换 CD 来得方便。

现在,Hoveeman 将这套解决方案都上传到 GitHub 上。你可以在以下网址:

https://github.com/hoveeman/music-cards

查到它用过的设备和代码,自己做一套相同的出来。

这个其实有点像用 RFID 来控制 Spotify 的方案,那个方案也是用识别卡片来让智能设备播放 Spotify 中的专辑或特定播放列表,做法和实现目标基本上没有什么大分别。

这些方案对于开发者来说,也都是自娱自乐的东西而已。

毕竟,现在的人确实也不怎么喜爱这种消费方式。他们只需要一个简单的听歌方案,而流媒体服务正好能够给他们最简单直接的体验,有这个来确保基本需求之后,其他东西也不重要。

转自 ifanr

Windows平台也高效的GNU编译工具链 —— MSYS2

MSYS:Minimal GNU(POSIX)System on Windows,是一个小型的GNU环境,包括基本的bash,make等等。

而MSYS2除了集成了MinGW这个精简的Windows编译器以外,还集成了包管理器等等。

MSYS2可以在Windows下搭建一个完美的类Linux环境,包括bash、vim、gcc、make等工具都可以通过pacman这个包管理器来添加和卸载 。使用界面如图所示。

如果要安装git工具,可以这样。

是不是很方便?顺便说一句,高性能 Web 平台OpenResty的64位Windows版本也是用这个编译的。

安装限制:

  • MSYS2 不能安装在FAT* 分区。
  • MSYS2 仅支持Windows XP以后的版本。

基本工具包使用:

  • pacman -Sy 更新软件包数据
  • pacman -Syu 更新所有包
  • pacman -Ss xx 查询软件xx的信息
  • pacman -S xx 安装软件xx

Python 推出新一代 PyPI 发布站点 —— Warehouse

PyPI 团队的成员 Sumana Harihareswara 发表博客表示,Python 已推出新的 PyPI 网站(Python 的官方第三方软件存储库),浏览器流量和 API 调用(包括”pip install”)已从旧版 pypi.python.org 重定向到新网站,而旧的 PyPI 网站将于 4 月 30 日关闭。

不过现在旧的代码库在 https://legacy.pypi.org 上仍然可用。

目前,权威的 PyPI(Python Package Index) 地址是:https://pypi.org/,使用了新的 Warehouse 代码库。

https://pypi.org 测试版早于 3 月 26 日已提供,到 4 月 16 日正式推出,而旧的 PyPI 网站 https://legacy.pypi.org 则计划于 4 月 30 日关闭,pypi.python.org 则继续重定向至新网站。

有关更多详细信息,请参阅路线图:https://wiki.python.org/psf/WarehouseRoadmap

如果你仍在使用 pypi.python.org,现在开始应该迁移至使用 pypi.org,迁移指南:https://warehouse.readthedocs.io/api-reference/integration-guide/#migrating-to-the-new-pypi

从小抓起!最值得推荐的少儿编程入门书籍清单

纵观国外的一些科技大佬都是从小就开始学习编程,如比尔盖茨在13岁的时候就开始学习Basic编程;扎克伯格、苹果创始人乔布斯从12岁开始学编程;推特创始人杰克·多西学习编程的时间更早,从8岁就开始了……

而在国内,从小就开始学习编程的儿童却寥寥无几,假如你的孩子正好对互联网、电脑感兴趣的话,那么,编程技术的学习一定会是从小培养的首选。

正好,昨天就是世界儿童读书日,忙碌的家长们假如想教孩子们编程,下面要推荐的这些书就是不错的选择。

1、《Scratch少儿趣味编程》

优点:结合漫画卡通人物,趣味性比较好

适合人群:小学1—3年级学生入门

Scratch 是麻省理工学院设计开发的一款编程工具, 包含了编程语言最基本的元素:变量、函数、循环等,很是适合孩子入门编程,本书作者阿部和广师从PC之父、面向对象之父、图灵奖得主艾伦·凯博士。近年来多次举办面向少儿的编程讲座,在儿童编程方面经验十足。

书中结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教读者如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,让孩子不会感到枯燥乏味。

学习编程最主要的就是兴趣,所以本书十分适合中小学生等初学者自学或在家长的帮助下学习。

2、动手玩转Scratch2.0编程

优点:讲解细致,由浅入深

适合人群:儿童成人都适用

《动手玩转Scratch2.0编程—STEAM创新教育指南》的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。本书也是以示例来演示,不过里面还穿插了数据结构等计算机科学方面的知识。

所以,此书阅读人群最好是对编程明确感兴趣的,并且已经有一点基础的中学生。

3、Scratch少儿趣味编程2

优点:结合漫画卡通人物,趣味性强

适合人群:中小学生

本书是《Scratch 少儿趣味编程》系列的第二本,采用升级版本Scratch 2.0 教大家如何用Scratch 设计程序,内容贯彻STEAM 教育理念,综合了数学、科学、音乐、实践等科目,旨在引导读者通过实践来探索、发现并理解现实中的知识,在激发创造力的同时提升思考能力和与他人的协作能力。适合中小学生等初学者自学或在家长的帮助下学习。

4、父与子的编程之旅

优点:浅显易懂,卡通人物场景

适合人群:小学生编程入门

当你家孩子学完Scratch这类图形化编程后,如果孩子真的对编程有浓厚的兴趣,希望进一步学习,真正地学习代码类编程语言,那么从Python编程语言入门就是个不错的选择

《父与子的编程之旅》最适合零基础学编程,内容十分浅显易懂,有不少计算机常识的铺垫,同时里面还融入了很多卡通人物的场景对话,让孩子轻松愉快进入编程世界。

5、《Hello Ruby:儿童编程大冒险》

优点:编程与冒险故事相结合,集故事性、趣味性、知识性于一体

适合人群:幼儿园、小学生入门

作者琳达·刘卡斯(LINDALIUKAS)是芬兰赫尔辛基的一位程序员、作家和插画家。全书通过特别有趣的小故事,向孩子们介绍了与编程有关的知识和思维方式,没有一个生涩难懂的专业术语,特别适合孩子阅读,也增强了理念的代入感。并且随书附的一套编程桌游,可以让孩子们通过游戏,锻炼编程思维。

建议家里有3-9岁孩子的亲们,不妨给孩子添置一本这样的编程启蒙书。

6、《和孩子一起玩编程》

优点:国内编写,贴合中国孩子习惯

适合:9岁左右的孩子

国内家长编写的一本Python编程入门书籍,贴合中国孩子的任职习惯。书中的内容大部分都是小故事,以孩子生活的场景为例,介绍了Python编程的基础知识,并且让孩子以闯关的形式持续挑战和学习

7、我的第一本编程书

优点:与生活例子相结合,讲解详细、连贯

适合人群:初学者

本书是编程的入门书,目的在于教会读者编程的基本思路和方法。书中使用专门的工具Sunaba,向读者展示如何从零开始一步步做出一个完整的程序。书中内容讲解详细、连贯,并采用了大量能与现实生活相结合的例子。特别是在对编程思路的介绍上进行了详细的说明。

这本书主要以编程思维培养为起点出发,让还孩子逐渐培养编程的基本思路和方法,喜欢编程,又不喜欢枯燥的可以尝试从这本书入门。

8、程序是怎样跑起来的

优点:图文并茂、通俗易懂

适合人群:有点编程思维的人群,初高中

本书从计算机的内部结构开始讲起,以图文形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,让读者更直观的了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时还以人物形象来讲解程序的运行原理,生动有趣。

总体图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读,无论是新学者还是复习者,都是不错的选择

9、网络是怎样连接的

优点:对话的形式介绍网络术语的词源

适合人群:初高中

本书以探索之旅的形式,从在浏览器中输入网址开始,到显示出网页内容为止的整个过程,同样以图文形式讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。

来自:程序员书库(微信号:CodingBook)

新版打包树莓派和摄像头 谷歌更新AI相机DIY套件

去年 Google推出 AIY Vision Kit 计划的初衷就是让人人皆可轻松组装一台 AI 相机,进而让人认识深度学习与神经网络。只可惜还需要使用者自备 Raspberry Pi Zero W 与 RaspberryPi Camera 2 才能组成。

最近,谷歌对这套设备做了更新,让DIY爱好者和入门玩家上手门槛更低。

AIY全称是Artificial Intelligence Yourself,顾名思义就是利用AI来进行的DIY功能套件。去年年底推出Vision Kit套件内容包含了VisionBonnet电路板、镜头组、硬纸板机壳、背光按键、蜂鸣器以及扣具等,组装和调试后它可以识别一千个普通物体以及面部表情。

但是,它缺少你在调试中需要的核心设备,比如树莓派Zero W以及存储卡。

此次更新后的AIY Vision和AIY Voice套件,包括Raspberry Pi Zero WH板和预先配置的SD卡,而Vision Kit也引入了Raspberry Pi Camera v2。省去了额外购买的过程。

最重要的是Google此次还新增了 Android 版 AIY 专属 APP(iOS等其他版本正在开发中)。

下载地址:https://play.google.com/store/apps/details?id=com.google.android.apps.aiy

整体而言,升级后的整套软硬件更方便大家用了。

更新后的套件

价格方面,Vision和Voice的售价分别为90美元和50美元,目前已在部分境外电商平台供货。

麦迪文点评:这次再也不用担心零件凑不齐或者设置过程复杂了。真“套件”! ​

想要更多,请关注“IoT前哨站”微博或微信公众号

CPU与MCU的区别与联系

对于一些初学者来说,CPU与MCU的区别与联系是难懂的问题。今天,小编就为您介绍一下CPU与MCU的区别与联系。

图为89C51芯片

MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),简称单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。 MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031)。带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内FLASH型(典型芯片为89C51)等类型。 以上这些,均为MCU。

图为8051芯片

CPU是中央处理单元(Central Processing Unit)的缩写,它可以被简称做微处理器(Microprocessor),不过经常被人们直接称为处理器(processor)。

CPU是计算机的核心,其重要性好比大脑对于人一样,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换。CPU的种类决定了你使用的操作系统和相应的软件。CPU主要由运算器、控制器、寄存器组和内部总线等构成,是PC的核心,再配上储存器、输入/输出接口和系统总线组成为完整的PC(个人电脑)。 寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。

CPU和MCU之间的界限并不是很清晰,不过CPU主要用在计算机上,也算是控制器,而MCU主要是工业控制领域。

图为CPU

CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processing/Processor,数字信号处理,本文不讨论),另外两个是MCU(Micro Control Unit,微控制器单元)和MPU(Micro Processor Unit,微处理器单元)。

简单来说,二者的区别是MCU集成了片上外围器件,CPU不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器。

延长树莓派上SD卡的使用寿命

据说SD卡的写入次数是有限的,那么这是否意味着用树莓派当作服务器会存在一些问题呢?也许吧,目前只是个别文章报告了SD卡会报废,但并没有完全的定论。于是我开始寻找一些方法把SD卡的写入次数降到最低,理论上有助于延长它的使用寿命。

在一个SD卡上运行GNU/Linux的最佳实践

一张容量更大的卡 假设写操作在卡上的各个地方都有可能进行,这样越大的卡在同一区域多次书写的概率越小。对于大多数的树梅派GNU/Linux发行版来说,一张4GB的卡够用了,但8GB或者16GB从这个角度来看更合适。让我们把4GB提高到8GB,那么在同一区域进行写操作的概率会减少一半。

坚持选个好牌子 已经有许多文章都提到要坚持选择顶级品牌的SD卡。我没有整理出一份品牌列表也没有特别支持哪个品牌,但幸运的是已经有很多文章显示了顶级品牌和它们的报废率。调整GNU/Linux写入到内存而不是SD卡上 这使用了一个叫“tm

pfs”的功能,它是GNU/Linux提供的一个非常酷的玩意。Tmpfs能够像写入一个正常的文件系统一样让写操作写入内存中。它快捷,高效并且易于使用。下面会详细介绍。SD卡设置为只读模式 这实际上把GNU/Linux变成了一个只读模式,类似于你从Live CD启动的GNU/Linux。这样阻止了任何的写操作从理论上来讲延长了SD卡的寿命。但这也有许多缺陷。首先,你得在配置上花点功夫,

这已经超出了本文的范围。其次,所有的改动会在系统重启后消失因为它们没有写入SD卡里。对于我来说,GNU/Linux运行在只读模式实在是要命所以我不推荐这么极端的做法。

使用Tmpfs

如我前面所说,tmpfs会写入到内存中而不是本地磁盘(树梅派上实际是SD卡)。使用它非常简单。你要做的只是增加一个到/etc/fstab文件的入口(挂载你想写入到内存的文件夹到内存里)并且重启(这样每次服务开始写文件之前都会把这些文件夹先挂载到内存里)。

剩下的事情系统内核会替你搞定,把写操作写入到内存里的虚拟文件系统。这还有个巧妙之处,系统内核只会使用写操作所需数量的内存而不是整个挂载的大小。让我们举个例子,我想要把下面这一行加入到/etc/fstab文件中:

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0

系统内核将会把/var/log挂载到内存中,然而在文件真正被写入到/var/log之前不会使用任何内存。当文件被写入到/var/log时,系统内核将会把它保存在内存里并且只占用用于保存文件的内存空间。当文件从/var/log中删除时,相对应的内存空间将被释放。

这意味着它只占用用于保存文件的内存空间,这是非常高效的。

在/etc/fstab中,你也可以为每个挂载指定内存配额。在上面的例子里,我们设置的是”size=100m”所以/var/log最多使用100m的内存空间。这是为了防止一个文件系统占用了全部内存以至于系统速度变慢甚至崩溃。通过运行”mount”命令,我们可以看到在上面的例子里/var/log被挂载为一个tmpfs在内存里的卷,大小是100MB。

Filesystem Size Used Avail Use% Mounted on
tmpfs 100M 596K 100M 1% /var/log

在GNU/Linux里有许多可能会频繁写入到地方。下面是一个我初步整理的应该可以适用于大多数发行版的列表。

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0

你看我使用了”size=”参数来避免试图保存大量的数据时占用大量内存的问题。出于安全和性能方面的考虑,”noatime”和”nosuid”参数也推荐设置,”mode=”和”gid=”对应的权限和用户组要与原来存在于SD卡上的文件系统保持一致。

恩,tmpfs也可以进行权限控制。通常情况下,所有在/etc/fstab下挂载的文件和标准的Unix/Linux文件没什么区别。所以即使因为一些原因挂载失效了,写操作也会成功写入到SD卡上。

需要记住的一点是所有挂载到tmpfs的文件将会在重启时丢失。所以上面的例子里/var/log文件会在关机时或重启时清空。所以不要把tmpfs用于那些你需要在重启后依然存在的文件。

我正在积极的使用这些设置,到目前为止结果还不错。时间会告诉我们这对于树莓派和/或者SD卡的寿命延续有何作用,但是现在已经有很多文章说能够正常运行很久,因为我们知道GNU/Linux不像其他操作系统一样需要频繁重启。上面的方法希望可以延长使用寿命,特别是你打算一年365天,每周7×24小时的开着树莓派。

本文来自:树莓派实验室

想要更多,请关注“IoT前哨站”微博或微信公众号

减少树莓派系统读写次数:用relatime挂载选项

SD卡和普通的磁盘驱动器有很多不同的地方,SD卡可以执行写和擦除的周期的次数是有限的,然而传统的磁盘驱动器没有写和擦除周期的概念。

什么是写和擦除周期?

对于一个普通的磁盘驱动器,每当你往磁盘里写东西,磁盘的某个扇区就会改变它的磁盘状态。这是磁盘物理上的改变,它不会给磁盘圆片本身带来损耗。当我们读取磁盘片上同一扇区的数据时,磁盘片的性质也不会发生改变。而SD卡显然是没有磁盘片,但是SD卡有小的内存芯片,其中包含内存单元,数据储存在内存单元上,就像物理硬盘的扇区一样。

和物理硬盘不一样,当你读写内存单元时,它的状态就发生了改变。

这是因为闪存单元使用不量的存储电荷来表示数据的比特位,这就是写和擦除的来源:

每当你读或写闪存单元一次,这个单元 的周期就消耗一次。读写闪存的时候,状态随之改变,每一个闪存单元只有限的周期,这些周期消耗完之后,状态再也无法改变(无法写入).

一般的SD卡会有10万次写和擦除周期,相对于数码相机来算是很多了,不过相对于日志文件系统就显得不足了,日志文件系统会非常频繁地往SD卡内写入少量的数据。除此外,每当系统更新文凭或目录时,也会往磁盘写数据,所以,10万次的周期是远远不够用的,因此,我们要关闭自动更新文件存取时间的功能,关闭自动更新文件存取时间的功能可以通过以下两种方式实现:

1. 第一个是noatime选项,它会禁止更新文件存取时间,这对闪存单元来说是好事,但是对用户来说并不是好事,比如说你想知道你的文件的时间戳,又比如有些应用程序依赖于文件的存时间戳。

2. 为了在两个极端中取一个平衡点,可以使用relatime挂载选项,relatime选项只有当最新修改时间比当前存取时间新的时候才会更新文件时间。这个选项减少了大量的闪存单元写操作,用户可以编辑/etc/fstab文件启用这个选项将你的根文件系统(/)以及启动文件系统(/boot)的挂载选项修改成如下所示的样子:

/dev/mmcblkop1 / auto defaults,relatime 1 1

/dev/mmcblkop1 /boot auto defaults,relatime 1 2

首先重新挂载每个文件系统:

#mount –o remount / && mount –oremount /boot

然后使用mount命令检查relatime是否启用:

#mount
它会显示所有挂载的文件系统经以及它他们的挂载选项。

Ubuntu 18.04 整合Livepatch:Linux内核更新无需重启

即将到来的Ubuntu 18.04 LTS(Bionic Beaver)操作系统中将引入新功能,方便用户使用Canonical的Livepatch服务。该服务最早出现在Ubuntu 16.04 LTS(Xenial Xerus)中,能在不重启Ubuntu设备的情况下部署Linux内核更新。

在默认的Ubuntu 18.04更新安装过程中,Software & Updates工具的Update标签页中已经整合了Livepatch服务。不过如果用户想要使用这项服务,需要点击“Sign In”按钮创建Ubuntu SSO(Single Sign-On)账号并进行登陆。

Canonical的Will Cooke在本周的周报中写道:“我们仍在通过配置Livepatch和分享系统信息等决定来添加全新的first-login体验。这意味着用户可以通过‘Software & Updates’工具中的‘Updates’标签页对Livepatch进行配置。”

来自:cnBeta.COM

麦迪文:该特性对IoT设备是好事,可以不间断工作的同时照顾安全性。

树莓派上的软件安装和卸载命令汇总

基础命令

安装软件 apt-get install softname1 softname2 softname3……
卸载软件 apt-get remove softname1 softname2 softname3……
卸载并清除配置 apt-get remove –purge softname1
更新软件信息数据库 apt-get update
进行系统升级 apt-get upgrade
搜索软件包 apt-cache search softname1 softname2 softname3……

安装deb软件包 dpkg -i xxx.deb
删除软件包 dpkg -r xxx.deb
连同配置文件一起删除 dpkg -r –purge xxx.deb
查看软件包信息 dpkg -info xxx.deb
查看文件拷贝详情 dpkg -L xxx.deb
查看系统中已安装软件包信息 dpkg -l
重新配置软件包 dpkg-reconfigure xxx

清除所有已删除包的残馀配置文件

dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P

如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。
dpkg: –purge needs at least one package name argument

dpkg安裝的可以用apt卸載,反之亦可。

aptitude 命令

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude 命令,仅供参考。

aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件

当然,你也可以在文本界面模式中使用 aptitude。

常用apt命令列表

apt-cache search # ——(package 搜索包)
apt-cache show #——(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ——(package 安装包)
sudo apt-get install # —–(package – – reinstall 重新安装包)
sudo apt-get -f install # —–(强制安装?#”-f = –fix-missing”当是修复安装吧…)
sudo apt-get remove #—–(package 删除包)
sudo apt-get remove – – purge # ——(package 删除包,包括删除配置文件等)
sudo apt-get autoremove –purge # —-(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
sudo apt-get update #——更新源
sudo apt-get upgrade #——更新已安装的包
sudo apt-get dist-upgrade # ———升级系统
sudo apt-get dselect-upgrade #——使用 dselect 升级
apt-cache depends #——-(package 了解使用依赖)
apt-cache rdepends # ——(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧…)
sudo apt-get build-dep # ——(package 安装相关的编译环境)
apt-get source #——(package 下载该包的源代码)
sudo apt-get clean && sudo apt-get autoclean # ——–清理下载文件的存档 && 只清理过时的包
sudo apt-get check #——-检查是否有损坏的依赖

本文来自:树莓派实验室