mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-23 21:20:42 +08:00
parent
af4d6fcbaa
commit
defb38d1d2
@ -3,14 +3,16 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14861-1.html"
|
||||
|
||||
在 Ubuntu 中使用 apt 命令列出可升级的软件包
|
||||
======
|
||||
|
||||
[apt 命令][1] 用于 Debian 和 Ubuntu 中的包管理。虽然你可能已经熟悉安装和删除选项,但 apt 还提供了一些额外的功能。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202207/24/230954qjko0c0sn55ohjf0.jpg)
|
||||
|
||||
[apt 命令][1] 用于 Debian 和 Ubuntu 中的包管理。虽然你可能已经熟悉安装和删除选项,但 `apt` 还提供了一些额外的功能。
|
||||
|
||||
其中之一是能够查看系统上所有可升级的软件包。要显示它们,你所要做的就是在终端中使用以下命令:
|
||||
|
||||
@ -18,9 +20,9 @@
|
||||
apt list --upgradable
|
||||
```
|
||||
|
||||
如你所见,你甚至不需要 sudo 来列出可更新的包。它只是列出了可以更新的包。它不会更新它们。
|
||||
如你所见,你甚至不需要使用 `sudo` 来列出可更新的包。它只是列出了可以更新的包,而不会更新它们。
|
||||
|
||||
实际上,当你运行 `sudo apt update` 命令更新本地包仓库缓存时,apt 命令会添加此提示。
|
||||
实际上,当你运行 `sudo apt update` 命令更新本地包仓库缓存时,`apt` 命令会添加此提示。
|
||||
|
||||
```
|
||||
Fetched 1,243 kB in 17s (71.4 kB/s)
|
||||
@ -30,17 +32,17 @@ Reading state information... Done
|
||||
30 packages can be upgraded. Run 'apt list --upgradable' to see them.
|
||||
```
|
||||
|
||||
我不记得在旧的 apt-get 命令中有任何类似的直接选项来列出所有可升级的包。这是 apt 在旧的 apt-get 命令之上添加的几个新功能之一。
|
||||
我不记得在旧的 `apt-get` 命令中有任何类似的直接选项来列出所有可升级的包。这是 `apt` 在旧的 `apt-get` 命令之上添加的几个新功能之一。
|
||||
|
||||
让我们更详细地讨论一下。
|
||||
|
||||
### 列出所有可升级的包
|
||||
|
||||
你在这里应该知道的是**你只能通过 APT 包管理器列出可用的更新**。 因此,如果你已将 PPA 或[外部仓库][2]添加到系统的 sources.list,你将查看它们的更新。
|
||||
你在这里应该知道的是**你只能列出通过 APT 包管理器可用的更新**。因此,如果你已将 PPA 或 [外部仓库][2] 添加到系统的 `sources.list`,你也将看到来自它们的更新。
|
||||
|
||||
但是你不会在这里获得 AppImage、Flatpak、Snap 或其他一些打包格式的更新。
|
||||
但是你不会在这里获得 AppImage、Flatpak、Snap 或一些其他打包格式的更新。
|
||||
|
||||
换句话说,它只适用于 apt 包。
|
||||
换句话说,它只适用于 APT 包。
|
||||
|
||||
因此,要列出 Ubuntu 或 Debian 系统上的所有可升级包,你应该首先更新本地包缓存:
|
||||
|
||||
@ -48,10 +50,10 @@ Reading state information... Done
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
然后你的系统将知道可用的软件包更新。 apt 命令告诉你在 update 命令结束时可以升级多少个软件包:
|
||||
然后你的系统将知道可用的软件包更新。`apt` 命令告诉你在 update 命令结束时可以升级多少个软件包:
|
||||
|
||||
![The apt command shows the number of upgradable packages at the bottom of the apt update command output][3]
|
||||
To see what package can be upgraded, run the command:
|
||||
|
||||
要查看可以升级的软件包,请运行以下命令:
|
||||
|
||||
```
|
||||
@ -61,7 +63,7 @@ apt list --upgradable
|
||||
你应该看到这样的输出:
|
||||
|
||||
```
|
||||
[email protected]:~$ apt list --upgradable
|
||||
~$ apt list --upgradable
|
||||
Listing... Done
|
||||
apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2]
|
||||
brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]
|
||||
@ -89,11 +91,11 @@ brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]
|
||||
sudo apt upgrade
|
||||
```
|
||||
|
||||
它列出了将要升级的软件包,然后要求按回车或 Y 确认升级。
|
||||
它列出了将要升级的软件包,然后要求按回车或 `Y` 确认升级。
|
||||
|
||||
![Upgrade all packages][5]
|
||||
|
||||
如果你确定要升级所有软件包,则可以通过在命令中添加 -y 来跳过 “Do you want to continue” 部分。
|
||||
如果你确定要升级所有软件包,则可以通过在命令中添加 `-y` 来跳过 “Do you want to continue” 部分。
|
||||
|
||||
```
|
||||
sudo apt upgrade -y
|
||||
@ -101,27 +103,27 @@ sudo apt upgrade -y
|
||||
|
||||
### 模拟升级(但不升级任何包)
|
||||
|
||||
这是人们在 apt list 命令之前所做的。使用模拟选项,你实际上不会进行任何更改。它仅显示运行升级时将安装或升级的软件包。
|
||||
这是人们在 `apt list` 命令之前所做的。使用模拟选项,你实际上不会进行任何更改。它仅显示运行升级时将安装或升级的软件包。
|
||||
|
||||
```
|
||||
apt -s upgrade
|
||||
```
|
||||
|
||||
你不需要使用 sudo(即使我在下面的截图中使用了它)。
|
||||
你不需要使用 `sudo`(即使我在下面的截图中使用了它)。
|
||||
|
||||
![Running an upgrade simulation with apt command][6]
|
||||
|
||||
### 仅升级选定的包
|
||||
|
||||
如果你正在管理一个 Ubuntu 服务器,并且你不想升级所有软件包,而只想升级少数选定的软件包中的一个(如 MySQL/Ngnix),你可以使用 apt 命令轻松完成。
|
||||
如果你正在管理一个 Ubuntu 服务器,并且你不想升级所有软件包,而只想升级少数选定的软件包中的一个(如 MySQL/Ngnix),你可以使用 `apt` 命令轻松完成。
|
||||
|
||||
```
|
||||
sudo apt --only-upgrade install package_name
|
||||
```
|
||||
|
||||
实际上,如果你在已安装且有可用更新的软件包上运行 apt install 命令,它将升级该软件包。
|
||||
实际上,如果你在已安装且有可用更新的软件包上运行 `apt install` 命令,它将升级该软件包。
|
||||
|
||||
使用 `--only-upgrade` 标志,你可以确保仅升级软件包(如果已安装)。如果尚未安装,它将不会安装给定的包。
|
||||
使用 `--only-upgrade` 标志,你可以确保**仅升级**软件包(如果已安装)。如果尚未安装,它将不会安装给定的包。
|
||||
|
||||
你还可以通过提供名称来升级选定的几个包:
|
||||
|
||||
@ -129,7 +131,7 @@ sudo apt --only-upgrade install package_name
|
||||
sudo apt --only-upgrade install package1 package2
|
||||
```
|
||||
|
||||
你也可以做相反的事情并[保留升级中的选定软件包][7]。
|
||||
你也可以做相反的事情,[升级时保留选定的软件包][7]。
|
||||
|
||||
```
|
||||
sudo apt-mark hold package_name
|
||||
@ -137,7 +139,7 @@ sudo apt-mark hold package_name
|
||||
|
||||
这样,当你升级所有系统包时,将不会升级给定的包。
|
||||
|
||||
你可以使用以下命令删除保留:
|
||||
你可以使用以下命令删除保留设置:
|
||||
|
||||
```
|
||||
sudo apt-mark unhold package_name
|
||||
@ -147,15 +149,15 @@ sudo apt-mark unhold package_name
|
||||
|
||||
这有点棘手。
|
||||
|
||||
当你运行“apt list –upgradable”命令时,它会显示所有可以升级的包。
|
||||
当你运行 `apt list –upgradable` 命令时,它会显示所有可以升级的包。
|
||||
|
||||
但是如果有新的内核版本可用,它们可能不会显示,因为内核包名称以 linux-headers-x-y 开头。这是因为系统将它们视为新包,而不是对已安装的包 linux-headers-a-b 的升级。
|
||||
但是如果有新的内核版本可用,它们可能不会显示,因为内核包名称以 `linux-headers-x-y` 开头。这是因为系统将它们视为新包,而不是对已安装的包 `linux-headers-a-b` 的升级。
|
||||
|
||||
但是,你仍然会在可升级包列表中看到 “linux-generic-hwe” 类型的包。因为该软件包将被升级(使用较新的内核)。
|
||||
但是,你仍然会在可升级包列表中看到 `linux-generic-hwe` 类型的包,因为该软件包将被升级(使用较新的内核)。
|
||||
|
||||
### 总结
|
||||
|
||||
列出可升级包的能力是 apt 命令为旧的 apt-get 命令带来的几个新功能之一。有关此主题的更多信息,你可以阅读我的文章[解释 apt 和 apt-get 命令之间的区别][8]。
|
||||
列出可升级包的能力是 `apt` 命令为旧的 `apt-get` 命令带来的几个新功能之一。有关此主题的更多信息,你可以阅读我 [解释 apt 和 apt-get 命令之间的区别][8] 的文章。
|
||||
|
||||
作为桌面用户,我并不总是检查可以升级的软件包。我直接去升级。但是,当我管理服务器时,我更喜欢查看可用的更新,然后决定是否进行升级。
|
||||
|
||||
@ -168,7 +170,7 @@ via: https://itsfoss.com/apt-list-upgradable/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
Loading…
Reference in New Issue
Block a user