我对 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
他们的任务。