标签 apt 下的文章

在本指南中,你将了解如何在 Ubuntu/Debian Linux 发行版中为 apt 命令设置代理。

代理服务器是位于请求资源的客户端系统或最终用户与资源本身之间的中间服务器。在大多数情况下,代理服务器充当最终用户和互联网之间的网关。

对于组织和企业环境,代理服务器提供了许多好处。它通过阻止被认为会影响员工工作效率的网站来控制互联网的使用。它还通过数据加密增强隐私并提高组织的安全性。

有几种方法可以为 apt 命令设置代理,让我们直接进入。

注意:为了演示,我们将使用 Ubuntu 22.04。

使用代理文件为 APT 配置代理

为 apt 命令配置代理的最简单方法是创建一个 proxy.conf 文件,如下:

$ sudo vi /etc/apt/apt.conf.d/proxy.conf

对于没有用户名和密码的代理服务器,添加以下条目,如下:

对于 HTTP 代理,添加以下条目:

Acquire::http::Proxy "http://proxy-IP-address:proxyport/";

对 HTTPS 代理执行相同的操作:

Acquire::https::Proxy "http://proxy-IP-address:proxyport/";

例子:

$ cat  /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://192.168.56.102:3128/";
Acquire::https::Proxy "http://192.168.56.102:3128/";

如果你的代理服务器需要用户名和密码详细信息,请按以下方式添加:

Acquire::http::Proxy "http://username:password@proxy-IP-address:proxyport";
Acquire::https::Proxy "http://username:password@proxy-IP-address:proxyport";

例子:

$ cat  /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://init@PassW0rd321#@192.168.56.102:3128/";
Acquire::https::Proxy "http://init@PassW0rd321#@192.168.56.102:3128/";

完成后,保存更改并退出配置文件。代理设置将在你下次运行 APT 包管理器时生效。

例如,你可以更新本地包索引,然后安装 net-tools 包:

$ sudo apt update
$ sudo apt install net-tools -y

验证代理服务器日志以确认 apt 命令正在使用代理服务器下载包。在代理服务器运行时:

# tail -f /var/log/squid/access.log  | grep -i 192.168.56.240

这里 192.168.56.240 是我们 Ubuntu 机器的 IP 地址。

完美,上面的输出确认我们的 Ubuntu 系统的 apt 命令正在通过代理服务器(192.168.56.102)下载包。

另一种指定代理详细信息的方法

除了第一种方法,你还可以用更简单的方式指定代理详细信息。再次创建一个 proxy.conf 文件,如下所示。

$ sudo vi /etc/apt/apt.conf.d/proxy.conf

对于没有用户名和密码的代理服务器,如图所示进行定义。

Acquire {
  http::Proxy "http://proxy-IP-address:proxyport/";
  https::Proxy "http://proxy-IP-address:proxyport/";
}

示例文件如下所示:

$ sudo vi /etc/apt/apt.conf.d/proxy.conf

对于具有用户名和登录详细信息的代理服务器:

Acquire {
   http::Proxy "http://username:password@proxy-IP-address:proxyport/";
   https::Proxy "http://username:password@proxy-IP-address:proxyport/";
}

保存更改并退出配置文件。提醒一下,当你开始使用 APT 包管理器,这些设置就会立即生效。

总结

本指南到此结束。在本教程中,我们演示了如何为 Debian/Ubuntu Linux 发行版中使用的 APT 包管理器配置代理设置。本文就到这里了。

(题图:MJ/dfb4d5a0-9150-47bd-9f54-c120ddd77046)


via: https://www.linuxtechi.com/set-proxy-settings-for-apt-command/

作者:James Kiarie 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近升级的软件引起问题了?虽然你总是可以调查问题以解决它,但有时,回到以前的工作版本可以节省时间和精力。如果新的版本引入了一个 bug,你可以在你这一边什么都不做,对吗?

好消息是,你可以在 Ubuntu 和 Debian 中轻松地降级 apt 软件包。

你所要做的就是像这样使用 apt 命令:

sudo apt install package_name=package-version-number

这似乎很容易,但你如何获得确切的版本号?还有哪些旧版本被支持?你可以通过以下方式获得这个细节:

sudo apt-cache policy package_name

让我用一个现实生活中的例子来解释这些。

降级 apt 包

最近,我正在更新承载 It's FOSS 社区论坛的 Ubuntu 服务器。

我做了通常的 apt update && apt upgrade,在更新安装时,事情变得糟糕。

很明显,最新版本的 Docker 不支持 aufs 存储驱动。为了减少停机时间,我选择了降级到以前的 Docker 版本。

检查当前安装的软件包版本:

Installed Docker version

然后检查可以安装的可用版本:

sudo apt-cache policy package_name

它可能会抛出一个巨大的列表,或者只是一个小列表:

All installable versions of an apt package

如果它显示至少有一个比当前版本更早的版本,你就很幸运了。

现在,你可能认为一个软件包的版本号将只由数字组成。但情况可能并不总是这样。

基本上,你复制 500(优先级数字)之前的全部内容。

brave-browser:
  Installed: 1.48.158
  Candidate: 1.48.164
  Version table:
     1.48.164 500
        500 https://brave-browser-apt-release.s3.brave.com stable/main amd64 Packages
 *** 1.48.158 500
        500 https://brave-browser-apt-release.s3.brave.com stable/main amd64 Packages
        100 /var/lib/dpkg/status
     1.47.186 500
        500 https://brave-browser-apt-release.s3.brave.com stable/main amd64 Packages
     1.47.171 500
        500 https://brave-browser-apt-release.s3.brave.com stable/main amd64 Packages
     1.46.153 500

当你得到了软件包的编号,用它来降级已安装的软件包,像这样:

sudo apt install package_name=package-version-number

Downgrading an installed package via apt-get command

当然,你会看到一个关于降级软件包的警告。

Downgrading apt package

但是当这个过程完成,你的软件包就会被降级到给定的旧版本。

所以,也许要保留它?

所以,你刚刚学会了降级 apt 软件包。但如果你不注意的话,该软件包会在下一次系统更新时再次升级。

不希望这样吗?你可以 阻止一个软件包被更新。像这样使用 apt-mark 命令:

sudo apt-mark hold package_name

我希望这个快速技巧能帮助你在需要时降级 apt 软件包。如果你有问题或建议,请告诉我。


via: https://itsfoss.com/downgrade-apt-package/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你想 在 Ubuntu 上使用终端卸载软件,可以使用:

sudo apt remove package_name

但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用 apt purge。

你可能会觉得很困惑,因为 apt purge 和 apt remove 看起来是一样的。

sudo apt purge package_name

为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。

apt-remove 和 apt-purge 有什么不同?

apt-remove 和 apt-purge 的相同之处就是都可以卸载软件包,但是运行 apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户主目录中相关的应用程序文件。

你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。这是因为用 apt remove 不能删除该软件的相关配置文件。

哪些东西被删除了?哪些还在?

我分享一个使用 apt remove 和 apt purge 两个命令分别卸载 mplayer 这个软件的实际例子。重点是看每次操作后还残余哪些文件。

这是删除前的文件:

mplayer before removal

现在运行 apt remove 这个命令:

apt uninstall package ubuntu

下面的是还残留在系统中的文件:

files after mplayer removal

我们可以看到,有两个地方残留着 mplayer 的文件: /etc 和 /home/abhishek。

这次我们重新安装 mplayer,然后用 apt purge 来卸载软件。

apt purge command

现在让我们看看与 mplayer 相关的文件:

files after mplayer removal

我们可以看到 /etc 目录下的文件已经没有了。

但是在主目录中的文件呢?apt purge 会删除它们吗?

答案是否定的。apt 命令不会删除主目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。

值得注意的是,不是所有的软件在主目录或者 /etc 目录下都有配置文件。

使用 apt remove 或者 apt purge 的效果

我能想到的一个实际例子就是 Discord,你用 deb 文件 在 Ubuntu 上安装了 Discord。然后登录自己的账号,之后又卸载并重新用 deb 文件安装。

现在如果你打开 Discord,你会发现你的账号自动登录了。是不是觉得很奇怪?

这是个功能,像一些软件,比如 Discord、VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。

当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用 apt remove。

但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用 apt purge 就比较合适。

运行 apt purge 是否可以用通配符删除?

当你删除一个包的时候,它会提示 removing package-name*。这意味着它会删除以这个包名开头的所有文件。

apt purge wild card

我在手册页之类的文档中没有找到关于这个问题的答案。所以我自己做了一个小测试,我安装了 espeak 和 espeak-ng 这两个软件,espeak* 应该可以通配扩展到 espeak-ng。

但是当我用 apt purge 删除 espeak 包时,espeak-ng 包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。

那么,你应该使用 apt remove 还是 apt purge 呢?

很少有人会一直使用 apt purge。

在我看来,一般清况下,用 apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用 apt purge。

不管是用 apt remove 还是 apt purge,你都需要从用户的主目录中删除残余的配置文件,并运行 apt autoremove 来清除任何依赖的包。

现在到你啦。你现在对 apt remove 和 apt purge 的区别更加了解吗?你更喜欢使用哪一个呢?


via: https://itsfoss.com/apt-remove/

作者:Abhishek Prakash 选题:lkxed 译者:Tingze-G 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你大概知道怎么在 Ubuntu 中使用 apt 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。

那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。

早晚你会碰到那种至少四行的安装说明:你需要安装名为 apt-transport-https 的包、操作一下 GPG 和 源列表 source list 之后,你才能正常安装软件包。

没有什么印象的话,那我分享一个 在 Ubuntu 上安装最新版本的 Yarn 的例子:

sudo apt install apt-transport-https curl
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
sudo apt update && sudo apt install yarn

当你需要直接从开发者那里安装编程工具的时候,大概率会碰到这种安装方式。

许多人只是按照说明进行操作,并不会去思考其中的原理。这也没什么不对,但了解该过程实际上可以提升你在这方面的知识,而且有助于之后排除故障。

我来解释一下这些代码背后的逻辑。

理解从外部存储库安装的过程

在你继续往下阅读之前,我强烈建议你先看看下面这两篇文章,方便理解后续的概念:

为了让你有点印象,这里有一张软件包存储库和 Linux 中的包管理器 的图片。

Illustration of repository and package manager

整件事情其实就是在系统中添加一个新的外部存储库。这样,你就可以从这个新存储库下载并安装可用的软件包。如果这个存储库提供了包版本的更新,你可以在更新系统的同时更新这些软件包(apt update && apt upgrade)。

那么,这是什么工作原理呢?让我们一条一条地过一遍。

第 1 部分:为 apt 获取 HTTPS 支持

第一行是这样的:

sudo apt install apt-transport-https curl

curl 是一个 Linux 终端下载文件的工具。这里主要的部分是安装 apt-transport-https,但事实上已经不需要了。

明白了吗?这个 apt-transport-https 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。

看看下面的截图。 https 这张图是我已经添加到系统中的外部存储库。Ubuntu 的存储库和 PPA 使用 http 协议。

在旧版本的 apt 包管理器中,不支持 https 协议。apt-transport-https 包为 apt 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。

我之前不是说不需要安装这个包了吗?是的,因为较新版本的 apt(高于 1.5)已经支持 https,所以你不需要再安装 apt-transport-https。

但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 apt 包。

现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。

第 2 部分:添加远程存储库的 GPG 密钥

Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“ 签名 signed ”,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。

如果 密钥之间不匹配,你的系统会发出提醒,而不会继续从该存储库安装或者更新软件包。

到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

在上面的命令中,你使用 curl 从指定的 URL 下载 GPG 密钥。选项 -sS 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 - 告诉 apt-key 使用 标准输入 stdin 而不是文件(在本例中是 curl 命令的输出)。

apt-key add 命令已经将下载的密钥添加到系统中。

你可以通过 apt-key list 命令查看系统中各种存储库添加的 GPG 密钥。

List GPG keys

这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

你会注意到 apt-key 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 apt-key 命令,但它最终会被删除。现在不需要杞人忧天。

第 3 部分:将外部存储库添加到源列表

下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

有一个文件 /etc/apt/sources.list 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 /etc/apt/sources.list.d 目录中相应的文件里(约定以 .list 结尾)。

External repository should have their own sources list file in the /etc/apt/sources.list.d directory

这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 sources.list 文件。

让我们再仔细地看一下这行命令。

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

使用 sh 可以在一个新的 shell 进程中运行命令,而不是 子 shel​​l。 -c 选项告诉 sh 命令从参数而不是标准输入读取命令。然后它运行 echo 命令,也就是把 deb https://dl.yarnpkg.com/debian/ stable main 这一行添加到 /etc/apt/sources.list.d/yarn.list 文件(会创建该文件)。

现在,你可以通过各种方法在指定目录中创建 .list 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用:

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

明白了吧?

第 4 部分:从新添加的存储库安装应用程序

到目前为止,你已经将存储库的 GPG 密钥和存储库的 URL 添加到系统中。

但是系统仍然不晓得这个新存储库中有哪些可用的包。这就是为什么你需要先使用下面这个命令更新包元数据的本地缓存:

sudo apt update

这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包:

sudo apt install yarn

为了节省时间,你可以在 同一行挨着运行这两个命令e。

sudo apt update && sudo apt install yarn

&& 可以确保第二个命令只会在前一个命令没有任何报错的前提下运行。

整个流程就是这样。

有没有豁然开朗呢,还是一脸懵逼?

我已经解释了在 Ubuntu 中使用外部存储库背后的逻辑。希望你现在能更好地理解它,当然可能还有很多细节会让你困惑。

如果你还不清楚或者还有其他问题,可以联系我。如果你发现了技术上的纰漏,记得在评论区告诉我。


via: https://itsfoss.com/adding-external-repositories-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:nophDog 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 sudo apt update 和 sudo apt upgrade 命令组合。

一些以前的教程也会提到 sudo apt-get update 和 sudo apt-get upgrade。

apt 和 apt-get 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。

我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗?

apt 的 update 和 upgrade 的区别

尽管听上去运行 apt update 可以给你一个包的最新版本,然而这并不正确。update 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。

还是有点困惑?让我来接着解释。我建议阅读 包管理器的概念。这个会帮你更好的理解这些东西。

Linux Package Manager Explanation

基本上,你的系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。

如果你不更新这个数据库,系统就不会知道是否有更新的版本。

当你运行 apt update 或者 apt-get update 命令,它会获取这些包的最新元数据(包的版本等)。

apt update

这时候本地缓存就被更新了,有一些包可以升级。用 sudo apt upgrade 可以升级所有(可升级的)包。

它会显示要升级的包,并且通过回车(默认选择是 Y)或者按下 Y 键进行确认。要在这个阶段取消升级,可以按下 N。

apt upgrade

下面这些可能会帮助你记忆:

  • apt update:更新包缓存(可以知道包的哪些版本可以被安装或升级)
  • apt upgrade:升级包到最新版本

因为有一些管理员命令,需要作为 root 运行。因此需要使用 sudo 配合其他命令。sudo 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。

既然理解了 update 和 upgrade 是如何一起运行的,我们接下来来讨论一下 apt 和 apt-get 的用法。

apt 还是 apt-get?应该用哪个?

Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 apt 命令弄混了。

有许多和 APT 包管理交互的命令;apt-get、apt、dpkg、aptitude 等。

这里面最受欢迎的就是 apt-get 命令。它是一个 低层级 low-level 且功能丰富的命令。apt 是 apt-get 命令的一个更新而更简单的版本。

可以读一下这篇文章来 了解 atp 和 apt-get 命令的不同。下面重点讨论这些命令中 update 和 upgrade 选项的区别。

apt update vs apt-get update

apt-get update 和 apt update 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。

从技术上讲,其实并没有区别。然而,apt update 在一个方面比 apt-get update 做的好,它会告诉你可升级的包的数量。

Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
Fetched 213 kB in 4s (55.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.

apt-get update 甚至不会告诉你包是否可以升级。

apt get update

apt update output

从 apt 中可以看到 列出可升级的包,而 apt-get 甚至没有这个选项。

# apt list --upgradable
Listing... Done
fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]

现在来比较一下两个命令中 upgrade 的选项。

apt upgrade vs apt-get upgrade

apt-get upgrade 和 apt upgrade 命令根据本地包缓存(通过 update 命令更新)的数据,安装可升级包的最新版本。

然而,apt upgrade 命令会做两件与 apt-get upgrade 不同的事情。

apt upgrade 命令可以升级 Linux 内核版本,apt-get upgrade 不能。apt-get 命令需要使用 apt-get dist-upgrade 来升级内核版本。

apt-get upgrade command cannot upgrade Linux kernel version

这是因为升级内核版本意味着安装一个全新的包。apt-get upgrade 命令不能安装一个新的包。它只能升级现有的包。

apt upgrade 比 apt-get 做的好的另一件小事是,它会在底部显示一个进度条。

apt upgrade progress bar

总结

update 和 upgrade 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update 命令应该和 apt upgrade 命令合并。

我意思是 upgrade(所有已安装的包)和 update(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 upgrade 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。

我希望这篇文章可以解释一些关于 apt-get update、apt-get upgrade 和 apt update 以及 apt upgrade 命令的问题。

如果有任何问题,请与我联系。


via: https://itsfoss.com/apt-update-vs-upgrade/

作者:Abhishek Prakash 选题:lkxed 译者:Yufei-Yan 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如何 在命令行中更新你的 Ubuntu 系统?你可以使用 apt update(刷新包缓存)和 apt upgrade 命令。

sudo apt update && sudo apt upgrade

它会更新所有可以立即升级的已安装 apt 包。这也包括 Linux 内核版本。

这似乎是一件好事,尤其是对于桌面用户。但对于运行关键 Web 服务的 Ubuntu 服务器用户而言,情况可能并非如此。

如果你想对更新有选择性,并且只想升级单个软件包,请使用以下命令:

sudo apt install --only-upgrade package_name

让我们更详细地了解一下。

使用 apt 命令升级单个包

第一步是更新本地包仓库缓存,以便你的系统知道有新版本的软件包可用。

sudo apt update

这是可选的。查看一下你要升级的软件包是否在 可升级软件包列表 中。

apt list --upgradable

如果所需的软件包有可用的新版本,你可以选择使用以下命令仅升级该单个软件包:

sudo apt install --only-upgrade package_name

如果你对已安装的软件包运行 apt install 命令,它将升级到下一个可用版本。

但如果该软件包尚未安装,apt 命令也会安装它。

这就是为什么 --only-upgrade 部分是必要的。使用该选项,apt 命令只会升级已安装的软件包。如果尚未安装,它将不会安装该软件包。

这不是最适合 Ubuntu 服务器用户的示例,但你仍然可以在下面的截图中看到我如何只升级了七个可升级包中的一个。

Update only a single package in Ubuntu

仅升级选定的软件包

如果要升级选定的几个软件包,那么不必一一更新。只需使用前面提到的命令提供包名称。

sudo apt install --only-upgrade package1 package2 package3

这是一个例子。

Upgrade selected packages in Ubuntu

总结

当你面临必须升级选定软件包的情况时,你可以使用带有 –only-upgrade 选项的 apt install 命令。

我建议阅读 如何更有效地使用 apt 命令。


via: https://itsfoss.com/apt-upgrade-single-package/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出