通过示例学习Ubuntu Apt Get

如果您是Linux新手,可能会想知道如何安装或更新软件包。好的,您来对地方了,可以通过Ubuntu Apt Get命令来了解如何管理软件包。

在本教程中,您将学会如何更新或升级现有的软件包,安装新软件包或在不再需要时卸载它们。

现在,请继续阅读并开始管理软件包吧!

先决条件

本教程将进行实际演示,但不需要特殊工具,只要您使用的是Ubuntu 16或更高版本,就可以开始了。本教程使用Ubuntu 20.04.3 LTS版本进行演示。

更新系统软件包仓库

apt-get命令的最常见用途之一是更新系统中可用软件包的列表。在安装、更新或升级任何软件之前建议执行此操作。

打开终端并运行以下apt-get命令,update您系统上的软件包列表。在提示时输入您的sudo密码。

下面的命令检查/etc/apt/sources.list文件中的条目是否有更新的软件版本,并更新系统包列表。

sudo apt-get update

当没有软件版本更新时,你会看到一个说明文字,内容为Hit。否则,你会看到一个说明文字,内容为Get,然后该命令会下载软件包信息(而不是所有软件包)。当在检索软件包信息时出现错误时,它会显示ign

Updating Package Repositories

升级软件包

你刚刚根据sources.list更新了机器的软件包列表,但是软件包会保持在当前版本,除非你执行升级。根据sources.list文件中的条目升级有可用更新的软件包。

运行下面的Ubuntu Apt Get命令来upgrade机器上所有已安装的软件包到可用的新版本。系统会提示你确认,输入Y继续。

你可以使用-y选项跳过确认提示。如果你还没有验证列表,这可能会更新/安装你没有打算的软件包。

sudo apt-get upgrade
Upgrading Software Packages

也许你更喜欢仅升级特定的软件。如果是这样,请在apt-get upgrade命令中指定软件包名称,如下所示。

sudo apt-get upgrade vsftpd
Upgrading Specific Software Package

如果你要升级2-3个软件,你可以在apt-get upgrade命令中用空格分隔指定它们,就像下面这样:sudo apt-get upgrade vsftpd google-chrome firefox

智能地使用Ubuntu Apt Get升级应用程序包

除了升级已安装的软件包,您如何智能地管理软件包冲突?apt-get upgrade包仅升级现有包,但dist-upgrade命令还会在现有包与新版本冲突时移除现有包。

运行下面的命令来升级机器上的现有软件包。该命令还会添加或移除任何包以满足任何依赖关系。

sudo apt-get dist-upgrade

apt-get dist-upgrade命令具有智能冲突解决系统。如果升级软件包时存在冲突,该命令将首先选择升级关键包,然后是优先级较低的包。

Upgrading a Linux Distribution

要将Ubuntu版本升级到下一个发行版本,您将运行命令do-release-upgrade。这也会运行apt-get dist-upgrade以更新软件包。

搜索并安装特定软件包

到目前为止,您已经学会了更新软件包存储库和操作系统本身。但是如何搜索要安装的新软件包呢?apt-cache命令允许您搜索所有可用或特定的软件包。

运行下面的命令来显示所有本地已知的可用软件包(pkgnames)。此列表是根据对sources.list配置文件的最后一次更新得出的。

apt-cache pkgnames
Searching All Available Software Packages

apt-cache pkgnames命令自然会返回大量软件包,浏览起来很麻烦。所以,如果你熟悉软件包的名称,为什么不专门搜索一个呢?

运行以下命令来搜索特定的软件包存储库,在这种情况下,是为了vsftpd。由于你只是搜索一个软件包,所以不需要在命令前加sudo

apt-cache search vsftpd
Searching Specific Software Packages

如果你知道确切的软件包名称,将search替换为show参数,就像这样:apt-cache show PackageName。将PackageName替换为实际的软件包名称。这个命令让你可以查看软件包的详细信息,比如来源、架构、版本等。

一旦找到了软件包,运行以下命令来在你的机器上安装那个软件包(vsftpd)。

sudo apt-get install vsftpd
Installing New Software Package

重新安装软件

也许你遇到了一些软件问题,而你又不想把事情搞得一团糟以查看问题所在。如果是这样,重新安装软件是你可以尝试的一种修复软件问题的方法。

运行以下apt-get install命令来--reinstall这个软件(vsftpd)到你的系统中。

sudo apt-get install vsftpd --reinstall
Reinstalling software with Apt-Get command

移除已安装的软件

系统中安装的软件自然会消耗你的存储空间。如果这个软件不再有用了怎么办?移除掉这个软件是理想的做法。这样做可以优化你系统的性能。

运行以下命令从您的计算机中删除特定软件(vsftpd)。

sudo apt-get remove vsftpd
Removing Installed Software

使用Ubuntu Apt Get删除软件及其支持文件

您计算机上安装的大部分软件在卸载后仍会留下残留物,如文件夹或配置文件。即使在删除它们后,这些残留物也会导致存储空间不足。那么如何移除它们呢?让Ubuntu Apt Get命令为您删除这些残留物。

也许您已经卸载了一个软件,但其配置文件仍然存在。如果是这样,使用apt-get命令的purge参数就足够了。

运行下面的命令从您的计算机中卸载该软件(vsftpd)并删除剩余的文件和文件夹(purge)。

sudo apt-get purge vsftpd
Removing all the config files for a software

或者,如果您希望一次性卸载软件并清除(--purge)其配置文件,则运行下面的命令。

sudo apt-get remove --purge vsftpd
Removing software and its configuration files

解决依赖错误

安装、更新或升级软件并不总是能够完美完成。在某些时候,您可能会遇到错误,比如由于损坏的软件包数据库而导致的依赖错误。但不用担心!Ubuntu Apt Get命令可以让您清除本地存储库中不需要的已检索软件包文件,这些文件可能导致依赖错误。

应用程序包本身存储在.deb文件中,当您安装任何软件时,这些文件会从互联网上下载并安装到您的计算机上。现在,如果您移除特定软件并重新安装它,apt将使用来自您本地仓库的.deb文件进行重新安装,而不是重新从互联网下载。

但如果软件的新版本可用,并且您尝试重新安装该软件,则您本地仓库中的现有文件将不再可用。因此,您会遇到依赖性错误。

运行以下命令apt-get clean以删除在您本地仓库中(/var/cache/apt/archives)下载和缓存的软件包文件。

apt-get clean命令不会从/var/cache/apt/archives和/var/cache/apt/archives/partial文件夹中删除锁定文件。锁定文件旨在防止两个不同的软件包管理器对冲突中的相同文件进行操作。

sudo apt-get clean
Removing Retrieved Package Files in Local Repo

要删除已安装软件不再引用的已下载软件包,请使用autoclean参数。

运行以下命令以从/var/cache/apt/archives目录中删除残留文件(.deb文件)(autoclean).

sudo apt-get autoclean
Removing Residual Files (.deb files)

结论

在本教程中,您学会了如何使用Ubuntu Apt Get命令安装或升级软件包,并更新操作系统本身。您还涉及通过删除先前版本安装的软件包的不必要软件包文件来解决安装错误。

现在,您已经知道如何有效地管理计算机上的软件包。现在,为什么不使用Bash脚本自动升级软件包呢?或者干脆用PHP脚本添加cron作业呢?

Source:
https://adamtheautomator.com/ubuntu-apt-get/