本节书摘来自华章出版社《Python树莓派编程》一书中的第2章,第2.5节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.5 包管理器
当你需要在Windows中安装一个程序时,通常你需要下载一个.exe或.msi文件,双击这个文件并按照指示进行安装。类似地,如果你用的是Mac,下载一个.dmg文件,将解压后的文件拷入你的硬盘,或者运行安装包文件,都可以完成安装操作。
在Linux中稍有些不同。Linux使用安装包系统,或者说包管理器(package manager)对软件进行跟踪。操作系统使用包管理器进行下载、安装、升级、配置及删除程序。大多数包管理器都有一个包含安装软件的内部数据库,数据库内也含有一些软件之间的依赖和冲突关系。根据发行版本不同,每种Linux的包管理器也不同。Debian(包括树莓派)使用aptitude,Fedora用的是RPM包管理器,Puppy Linux用的是PETget。如果你玩过一些下载的游戏,可能对Steam游戏比较熟悉,这时你会发现Steam的接口也是包管理器的一种形式。大多数包管理器既有命令行模式,也有图形界面。例如Ubuntu使用Synaptic作为aptitude包管理器的前端。
树莓派和Ubuntu类似,也使用aptitude包管理器,而且你可以在终端内完成绝大多数工作。安装一个软件最基本的命令是:
这条命令会让包管理器进行如下操作:
1. 确定哪个软件资源(或称为软件库)拥有被申请的这个文件。
2. 查询软件库并确定该软件的依赖关系。
3. 下载并安装那些被依赖的文件。
4. 下载并安装被申请的软件。
这个过程看起来很容易,是的—它就应该这么容易。有时你可能在申请安装一些软件时会遇到问题,因为你安装的软件库不包含你申请的软件,但这个问题也很好解决。如果发生了这样的错误,你只需在终端内输入:
之后输入:
这样你的包管理器就会知道新的软件库了,再次输入:
即可。幸运的是,Raspbian的默认软件库包含了大多数你可能会用到的软件,因此(同样对于本书而言)你可能不会遇到刚刚提及的问题。