![完美应用Ubuntu(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/515/37423515/b_37423515.jpg)
4.3 命令行软件包管理工具
上一节分门别类地讲解了一些常用的命令,下面就来学习使用命令行管理Ubuntu软件包的方法,如安装、卸载和升级等,帮助大家快速掌握软件包管理的高频命令行。
4.3.1 高频软件包管理命令
命令行软件包管理工具主要是指可以自动解决DEB软件包依赖关系的软件管理工具,如apt、apt-cache/apt-get和aptitude等命令,可以自动解决DEB软件包复杂的依赖关系。
1. apt命令
1)搜索软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-69-1.jpg?sign=1739112454-YZs1U3rJRsaAOgRPHcQ5YMlonJPWsugI-0-445b72e37f3203ada5a05e862cd23bca)
2)安装/卸载软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-69-2.jpg?sign=1739112454-7x8y3NaUbjIlpIhNESrLKhWTgvEhzP7F-0-3f819707fea50f6853a65d47403d0dd5)
3)升级软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-69-3.jpg?sign=1739112454-L52Xl8F7fachdL9so9spRo8GdFRFwSk6-0-ba44dba52f5807006b60872df18c1532)
4)清理软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-69-4.jpg?sign=1739112454-Yv2VNtlsUAVdKtc4FotcX7r3aKs1CbRW-0-27d14631c58ffbcca4306d7cae011ed3)
在使用apt命令时,可能会看到如下内容:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.(警告:apt命令不是很稳定,在Shell脚本中使用请小心。)
通常不用理会,也无须太担心,在一般情况下使用apt命令还是没问题的。
2. apt-cache/apt-get命令
由于apt-cache用于搜索软件,而apt-get用于软件管理,如安装、卸载、升级等操作,故这两个命令通常一同出现。
1)搜索软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-1.jpg?sign=1739112454-zHXtnhzjHXkqhMs7IrVH1hR8smexvaAr-0-d367b6d503cdc4b8897313f1115194c8)
2)安装/卸载软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-2.jpg?sign=1739112454-AyDzHVOwIjkuXYrrbkdWIsKOx4VKHvwk-0-4b9413aa1207756a4c6b198a68399fb4)
3)升级软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-3.jpg?sign=1739112454-0zs9eVqSsGVZLaqyM1sq8yZ3wSiKJ9fU-0-c0f8520474c4c7dfd1e1bc7ca711042d)
apt-get update和apt-get upgrade的最大区别是,update仅同步更新软件列表,而upgrade则根据列表更新软件本身。
4)清理软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-4.jpg?sign=1739112454-AOgrh5spG0xEJuqOhBgLVRfb2fmr2IOq-0-2e82a1c5501a81b2fdfe42ad553f343c)
从上面的安装操作可以看出apt-cache和apt-get搜索操作比较烦琐,而apt只需要添加不同的参数即可实现查询、安装和卸载等操作,故apt比apt-get/apt-cache方便很多,推荐大家使用。不过目前apt还不如apt-get或aptitude成熟,故不推荐在生产环境使用。需要注意的是,无论使用上述哪种命令,都最好先执行update操作,以免因软件仓库发生变化而导致操作失败。
3. aptitude命令
aptitude本身其实是一个基于文本界面的程序,上半部窗口为树形结构,用于显示和选择软件包。用户可以用方向键或J键、K键进行移动,被选中的软件包或操作项以高亮显示。在移动光标的同时,下半部窗口对应显示所选项目或软件包z的描述。当光标位于树结构的上层节点时,可以按Enter键来折叠或展开当前分类。在实际应用中,要高效使用aptitude,通常将其作为命令行工具来使用,首先使用如下命令来安装:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-5.jpg?sign=1739112454-xL1LPfj8bBovg02hPq4tHKLE6wCb2Gkk-0-3b2c563e035ce348d1985bd7a4047867)
运行如下命令启动aptitude文本界面:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-70-6.jpg?sign=1739112454-bHVDmSfAUYV1nKllwHx09z8XD4YxwerO-0-b1ea8f9631bbc23810aeeb4989cb5845)
aptitude文本界面方式界面如图4-3所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-1.jpg?sign=1739112454-bURjSmkv0uEL2brRzSDX921vprGmvfK2-0-e7d09317cc34c8c82e3531172a90db0b)
图4-3 aptitude文本界面方式界面
aptitude命令行高频操作如下。
1)搜索软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-2.jpg?sign=1739112454-ZIX9mbPWFEhaZ5rOxMa4nyhzJzxJifZ8-0-dda0b4403dc3ddbf5d88817413241af5)
2)安装软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-3.jpg?sign=1739112454-BRD1xw6q37xq2OtrosLffATEhvsrfEsP-0-17a6030c61783fc9c58c80900a3d2c26)
3)删除软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-4.jpg?sign=1739112454-3gavXA9UyVprQ9x3874jwWl5SyxTPlde-0-f83680a2a72a5e36b619425de14c239d)
4)更新软件仓库列表
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-5.jpg?sign=1739112454-WtgpNHfqK2wZR2qAlLMF1VxMMUuJunaA-0-3eb125444d99075bec539afd1dc552ef)
5)更新软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-6.jpg?sign=1739112454-iR1zHEHimdVOulJe8Z6cZ4iXWC7eBMYt-0-f3043e427d715431ef27ed312326c238)
6)清理无用软件包
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-71-7.jpg?sign=1739112454-XLh2CtAd840lOal4UZYjLjA3QpPNEX9P-0-0eba84dfc70e9b6e53b985c6117cb147)
从上面的安装操作可以看出,aptitude只需要添加不同的参数即可实现查询、安装和卸载等操作,与apt命令用法类似,它们都比apt-cache和apt-get便捷。此外,apt和apt-get的优势在于系统默认安装,为了行文简洁,本书工作站章节的安装操作全部采用apt来操作,而在服务器部分,则使用aptitude命令来实现。无论使用何种工具,都最好先执行update操作,以免因软件仓库发生变化而导致操作失败。
4.3.2 一次安装一组程序
tasksel命令其实是一个脚本,可以一次安装一组软件包,如安装桌面环境这种庞大的程序。文本用户界面(TUI)使得tasksel命令的使用十分直观和简单,类似于RPM软件包的yum groupinstall命令。
tasksel可以一次性安装被称为任务(task)的一组软件包,执行一组预定义的安装指令集,如安装LAMP组合、各种桌面环境等,功能强大但使用异常简单。此外,tasksel和aptitude类似,都是基于文本界面的程序,可以使用如下命令进行安装:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-72-1.jpg?sign=1739112454-onNW0Yv958xYJhTNXmEzgQhfgxxBGHzz-0-86a596479d3fc89b03dfacd573e46303)
tasksel使用方法如下。
成功安装后,运行如下命令列出可选安装任务:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-72-2.jpg?sign=1739112454-8lJZ4qkdRnKJ6CejZkLFbe9HRS2o7GwZ-0-e00b233facd1d307f8ddb65b30024f41)
运行如下命令安装任务:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-72-3.jpg?sign=1739112454-B6G9j5YUlMjj7FgTnUJNS8VRkvChFteq-0-d8f00e1c39ebde83491bc97bf6dfc030)
或
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-72-4.jpg?sign=1739112454-Jvkj76U2tXJtggcEbvQFWI4cAUW5L6aw-0-6488a02f3c55295c4055afb65046cb39)
然后在弹出的文本界面中通过上下方向键选择一个或多个安装对象,选好后按Tab键将光标移至OK处,按Enter键后即可开始安装。
运行如下命令卸载:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-72-5.jpg?sign=1739112454-5oW0kZ6XGxnZ9ARXIqpmi8s8fZWxtPLe-0-a1282795e747c0f914ce175cb1fdef4c)
4.3.3 全新格式snap令软件安装更便捷
snap软件包格式是一种由Ubuntu主导的Linux的通用软件包格式,是为了解决Linux软件复杂的依赖关系的软件包,其思路类似于Mac OS的pkg软件包,用空间换便捷,和DEB软件包有本质区别,其将程序所需要的依赖全部打入一个包,通过snap命令进行安装、卸载和更新等操作。目前,snap软件包的格式从Ubuntu 16.04正式登场,snap软件包的生态系统也越来越丰富,越来越流行,已被Google、JetBrains和Firefox等公司或组织所支持,如Firefox推出的Firefox snap安装包。而一些厂商,如Google和Jetbrains也推出了snap格式的产品,如Chrome浏览器、PyCharm、RubyMine和PHPStorm等IDE产品,更多snap格式软件包请访问其官方网址:https://snapcraft.io/store。
在snap商店中可以看到很多熟悉的应用,如图4-4所示。
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-73-1.jpg?sign=1739112454-UXGtwa9KUvW0EPcPVQ8sGu8VkszXd7L1-0-adaf90d872d3829a9e718b1802e5e29c)
图4-4 snap商店逐渐丰富的应用
还可以使用Find snaps功能搜索仓库,迅速找到所需要的程序。
snap命令使用起来并不复杂,常用高频操作如下。
1)搜索软件包
搜索软件包:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-73-2.jpg?sign=1739112454-2gunDIgyU2RdOiRcowvf0Ec6ga7MaIia-0-b061f4e8ba6d59a811addc56b6b43fd5)
获得所安装软件包最为详尽的信息:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-73-3.jpg?sign=1739112454-BS6qvae9ioAVhI4QYbezrlplUkHyJk5V-0-0bd3b18f058043bc4a8f45be5822683c)
列出已安装软件包的详细信息:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-73-4.jpg?sign=1739112454-a8ywPwyZ3sS783IFKG5RztjDNLzIk8nA-0-954d5e11f11b28a4f9efdc4c7f630043)
2)安装/卸载软件包
安装软件包:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-73-5.jpg?sign=1739112454-VQXycGxQKB4NGvxR9k1slTGUFSjBYAmC-0-91f5c2d2e3f1b0a99d8a7a1f893fa634)
卸载软件包:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-1.jpg?sign=1739112454-pW32ZEq1x0M0FzC77bDVhrhejn2F9Zg2-0-eb7096fd64955bdd2989414831d0fca7)
3)升级软件包升级软件包:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-2.jpg?sign=1739112454-GGCL0ZUvux0RxQPEC34PtGPV6d8dTZef-0-c67d43549743f3fc92e7d8c7fd6b7313)
撤销升级:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-3.jpg?sign=1739112454-zNa0wlwQmYl0xmsZCWLl780xLXEorKQo-0-2341990c3bdb22b4b404737d463ac5eb)
4)获得最近变更
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-4.jpg?sign=1739112454-jBWWmFFgTGqBiIjRvDDgN97XXEGoZXtZ-0-26442f3b7cc8b8714084ae3b710a51a9)
列出所有的snap应用可以使用如下命令:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-5.jpg?sign=1739112454-GJu3EvvsdhT9LiRN8HSZ3F8Ooc4jhcQy-0-c503ffa86a2bf4e11a1074c5361ca289)
以htop为例,搜索htop应用程序,可以使用如下命令:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-6.jpg?sign=1739112454-KFQPOSBjWoyXlvMSe0cS4cHq6DmtzwTS-0-549f82b15851ba9de513a2358ddcee83)
可以使用如下命令安装snap软件包:
![](https://epubservercos.yuewen.com/8A7C95/19823444008569906/epubprivate/OEBPS/Images/38718-00-74-7.jpg?sign=1739112454-bmoFPg418Z4bNosfrUeMhBUvYOhfGiCt-0-30a282dee2790c9c9b3b9f306f20e9d0)
在安装过程中可能会发现,snap软件包的体积较大,htop程序大小为64MB,下载后安装瞬间完成,其思路类似于苹果Mac OS的软件包安装过程,snap默认目录是/snap,将下载的安装文件挂载到该目录下并自动创建挂载点,然后复制文件到指定位置,如刚刚安装的htop,其目录为/snap/htop/。