为什么我应该定期运行“apt-get update”和类似的命令?

为什么我应该定期运行“apt-get update”和类似的命令?

我对 Ubuntu 完全陌生。一位朋友建议我经常运行以下命令:

sudo apt-get upgrade
sudo apt-get update
sudo apt-get autoremove
sudo apt-get autoclean

他说这样可以让我的系统保持干净和更新。我不知道这些命令到底有什么用。定期运行它们真的有用吗?

答案1

在目前所有支持的 Ubuntu 版本上,我们可以使用apt而不是apt-get。如果要在文件中捕获输出,请使用apt-get,否则请使用 ,apt因为它的输出更具可读性(谁喜欢打字?)。

sudo apt update

从存储库下载信息1 APT 配置为检查并更新dpkg可用、已安装和已卸载软件包的数据库,以反映存储库中的更改。这意味着当您使用以下命令查询系统上的数据库时

apt policy package-name
apt show package-name
apt search package-name

它们会打印准确的信息,当你运行如下命令时

sudo apt install package-name

他们将获取最新的可用版本。

运行时,sudo apt update您可能会看到某些软件包是可升级的,这意味着新版本已添加到存储库中。较新的版本通常包含错误修复和安全更新,因此您应该安装它们。这可以通过使用以下命令升级所有具有新版本的软件包来完成

sudo apt upgrade

如果内核已升级(类似 的软件包linux-image-4.15.0-20-generic),则应运行命令删除旧内核版本(除了第二新版本,该版本作为备用,以防新版本出现错误)。您可以使用以下命令:

sudo apt autoremove

执行此操作。此命令还会删除“孤立包”。这些通常仅在您使用类似以下命令时存在

sudo apt remove package-name

package-name具有与其一起自动安装的依赖项,但任何其他包都不需要。

对于autoclean,我建议你man apt-get

autoclean (and the auto-clean alias since 1.1)
       Like clean, autoclean clears out the local repository of retrieved
       package files. The difference is that it only removes package files
       that can no longer be downloaded, and are largely useless.

其他三个命令非常重要,通常应定期运行,以保证系统安全和更新,并避免磁盘被旧内核文件填满,但运行后您可能不会看到太大差异autoclean。它偶尔可能会删除的几个文件不太可能产生太大影响。


1这些存储库是默认配置的,因此您通常不需要对它们进行任何操作。它们列在文件/etc/apt/sources.list和文件中/etc/apt/sources.list.d。APT 对这些文件的格式要求严格(出于安全原因),如果语法错误,则会抛出错误。如果您的系统具有图形环境,它将有一个在设置中配置存储库的选项。您需要 root 权限才能执行该工作。

答案2

尽管Zanna 的回答涵盖了这些命令的用途,我想重点讨论第二部分:

定期运行它们真的有用吗?

虽然运行它们很好经常,我看不出有理由定期(实时)运行它们,例如每天一次、每周一次、每月一次。

  • 这些命令执行的更新和清理任务不是按时间创建的。当在存储库中找到已安装软件包的新版本时,它们才开始有用。

  • apt-get update系统默认定期运行该命令(请参阅自动软件包更新自动安全更新)。 由 安装的安全更新apt-get upgrade也将通过无人值守升级自动安装。

  • 自动update适用于所有软件包。一旦 APT 知道未自动安装的更新,系统将提醒您手动安装它们(使用apt install <package>apt upgrade升级所有更新),例如:

    • 在 CLI 登录屏幕上:

      Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.113-rt128+ x86_64)
      ...
      29 packages can be updated.
      6 updates are security updates.
      
    • 在 APT 命令的输出中:

      $ sudo apt update
      ...
      5 packages can be upgraded. Run 'apt list --upgradable' to see them.
      
  • 你也会被提醒跑步autoremove

    $ sudo apt update
    ...
    The following packages were automatically installed and are no longer required:
      devilspie libturbojpeg:i386 libxrandr-ltsr2 language-pack-kde-en
    Use 'apt-get autoremove' to remove them.
    

如果你仍然想按时间运行命令,你可以创建一个cron他们的任务

相关内容