8

ubuntu笔记:apt包管理以及如何更新软件列表

 2 years ago
source link: https://gsy00517.github.io/ubuntu20200117094401/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

ubuntu笔记:apt包管理以及如何更新软件列表

发表于 2020-01-17 | 更新于: 2020-01-27 | 分类于 操作和使用 | 0 | 阅读次数:
字数统计: 996字 | 阅读时长 ≈ 3分钟

ubuntu有时在用户登录后会提示有软件包更新,每次更新之后按提示重启,你就会看到一个类似于安全模式下大写的GNU GRUB(一个多操作系统启动程序),虽然这没什么问题,但是我在想能不能自主地去更新呢?

References

电子文献:
https://birdteam.net/122231
https://blog.csdn.net/a3192048/article/details/86618314


apt-get

这个有点类似于windows中的dism命令,可以用于安装、更新、卸载软件,大部分操作需要root权限,因此使用命令时别忘了授权。
首先介绍一下它的常见用法:

  1. 使用如下命令安装名为xxx的软件:

    sudo apt-get install xxx
  2. 使用如下命令卸载名为xxx的软件:

    sudo apt-get remove xxx

    注意:切忌卸载关键的软件包,比如coreutils。

  3. 本文重点来了,apt-get相关升级更新命令有下面这四个:
    sudo apt-get update
    #更新软件源缓存,从服务器更新可用的软件列表,一般在安装软件时引入新的软件仓库之后使用

    sudo apt-get upgrade
    #更新系统,即根据列表更新已安装的软件包,既不会删除在列表中已经不存在了的软件,也不会安装有依赖需求但尚未安装的软件

    sudo apt-get full-upgrade
    #根据列表更新已安装的软件包,可能会为了解决软件包冲突而删除一些已安装的软件

    sudo apt-get dist-upgrade
    #更新系统版本,也是根据列表更新已安装的软件包,可能会为了解决软件包冲突而删除一些已安装的软件,不同于full-upgrade的dist-upgrade也可能会为了解决软件包依赖问题安装新的软件包

更新软件列表

当我们想自主更新软件包时,可以依次执行下面两条命令:

sudo apt-get upgrade
sudo apt-get dist-upgrade //谨慎执行

这两条命令其实比较类似,不同的是当相依性问题时,upgrade时此package就不会被升级而保留下来;而dist-upgrade相对“智能”,若遇到相依性问题,需要安装或者移除新的package时,dist-upgrade命令就会试着去安装或者移除它,这就可能以牺牲某些非重要软件包为代价来升级某些非常重要的软件包,个人认为存在一定风险。


在根据各类教程安装各个软件时,我开始注意到有时候apt-get的位置被apt代替了。随着使用量的增加,这个疑惑越来越大,因此我决定搞搞清楚。
其实,apt命令是在ubuntu16.04发布时引入的。它具有更精减但足够的命令选项,而且具有更为有效的参数选项的组织方式。实际上,虽然不是一个东西,但完完全全可以认为aptapt-get是等价的,其格式语法几乎完全统一,在使用时不会出现不同。目前apt命令还在不断地发展,而apt-getapt有更多、更细化的操作功能,有时对于一些低级操作,仍需使用apt-get
下表是apt命令与apt-get等命令的对比,可以看到在普通使用时是完全一样的。

apt命令等效命令功能apt installapt-get install安装软件包apt removeapt-get remove移除软件包apt purgeapt-get purge移除软件包及配置文件apt updateapt-get update更新软件列表apt upgradeapt-get upgrade升级所有可升级的软件包apt autoremoveapt-get autoremove自动删除不需要的包apt full-upgradeapt-get full-upgrade在升级软件包时自动处理依赖关系apt searchapt-get search搜索应用程序apt showapt-get show显示软件包信息

此外,apt还有一些自己的命令,比如apt list列出包含条件的包(已安装,可升级等);apt edit-sources编辑源列表。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK