Merge pull request #17693 from geekpi/translating

translated
This commit is contained in:
geekpi 2020-03-11 08:25:32 +08:00 committed by GitHub
commit 05e3c0c631
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 190 additions and 190 deletions

View File

@ -1,190 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Three Ways to Exclude/Hold/Prevent a Specific Package from an apt Upgrade)
[#]: via: (https://www.2daygeek.com/debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
Three Ways to Exclude/Hold/Prevent a Specific Package from an apt Upgrade
======
Sometimes you may accidentally update packages that are not updated due to some application dependency.
This is always the case during the entire system update or automatic package upgrade process.
If this happens, it may break the application function.
This creates a serious problem and you need to spend a lot of time fixing the problem.
See the following article if you want to **[Exclude Specific Packages from Yum Update][1]**
How to avoid this kind of situation?
How do I exclude packages from apt-get update?
Yes, it can be done using the following three methods on Debian and Ubuntu systems.
* **[apt-mark Command][2]**
* **[dpkg Command][3]**
* aptitude Command
We will show in detail each.
### Method-1: How to Exclude Packages Update on Debian/Ubuntu System Using the apt-mark Command
The apt-mark is used to mark/unmark a package as being automatically installed.
The Hold option is used to mark a package as blocked, which prevents the package from being automatically installed, upgraded, or removed.
The unhold option is used to cancel a previously set hold on a package to allow all actions to be repeated.
Run the following command to hold the given package using the **apt-mark** command.
```
$ sudo apt-mark hold nano
nano set on hold.
```
Once you have hold some packages, run the following apt-mark command to view them.
```
$ sudo apt-mark showhold
nano
```
This will show that the **“nano”** package will not be upgraded when you perform a full system update.
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
nano
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
Run the following command to unhold the “nano” package using the apt-mark command.
```
$ sudo apt-mark unhold nano
Canceled hold on nano.
```
### Method-2: How to Exclude Packages Update on Debian/Ubuntu System Using the dpkg Command
The dpkg command is a CLI tool to install, build, remove and manage Debian packages. The primary and more user-friendly front-end for dpkg is aptitude.
Run the following command to block a given package using the dpkg command.
**Syntax:**
```
$ echo "package_name hold" | sudo dpkg --set-selections
```
Run the below dpkg command to hold the **“apache2”** package.
```
$ echo "apache2 hold" | sudo dpkg --set-selections
```
Once you have hold some packages, run the following command to view them.
```
$ sudo dpkg --get-selections | grep "hold"
apache2 hold
```
It will show that the **“apache2”** package will not be upgraded when you perform a full system update.
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
apache2
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
Run the following command to unhold the given package using the dpkg command.
**Syntax:**
```
$ echo "package_name install" | sudo dpkg --set-selections
```
Run the following command to unhold the “apache2” package using the dpkg command.
```
$ echo "apache2 install" | sudo dpkg --set-selections
```
### Method-3: How to Exclude Packages Update on Debian/Ubuntu System Using the aptitude Command
The aptitude command is a text-based package management interface to the Debian and its derivative.
It allows the user to view a list of packages and to perform package management tasks such as installing, upgrading, and removing packages. Actions may be performed from a visual interface or from the command-line.
Run the following command to hold the given package using the aptitude command.
```
$ sudo aptitude hold python3
```
Once you have hold some packages, run the following aptitude command to view them.
```
$ sudo dpkg --get-selections | grep "hold"
or
$ sudo apt-mark showhold
python3
```
This will show that the **“python3”** package will not be upgraded when you perform a full system update.
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
python3
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
Run the following command to unhold the **“python3”** package using the apt-mark command.
```
$ sudo aptitude unhold python3
```
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/magesh/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/redhat-centos-yum-update-exclude-specific-packages/
[2]: https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/
[3]: https://www.2daygeek.com/dpkg-command-to-manage-packages-on-debian-ubuntu-linux-mint-systems/

View File

@ -0,0 +1,190 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Three Ways to Exclude/Hold/Prevent a Specific Package from an apt Upgrade)
[#]: via: (https://www.2daygeek.com/debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
从 apt 升级中排除/保留/阻止特定软件包的三种方法
======
有时,由于某些应用依赖性,你可能会意外更新未更新的软件包。
在整个系统更新或自动包升级过程中一直会发生。
如果发生这种情况,可能会破坏应用的功能。
这会造成严重的问题,你需要花费大量时间来解决问题。
如果你要**[从 Yum Update 中排除特定软件包][1]**,请参考它。
如何避免这种情况?
如何从 apt-get 更新中排除软件包?
是的,可以在 Debian 和 Ubuntu 系统上使用以下三种方法来完成。
* **[apt-mark 命令][2]**
* **[dpkg 命令][3]**
* aptitude 命令
我们将分别详细展示。
### 方法 1如何使用 apt-mark 命令排除 Debian/Ubuntu 系统上的软件包更新
apt-mark 用于将软件包标记/取消标记为自动安装。
hold 选项用于将软件包标记为已阻止,以防止软件包被自动安装、升级或删除。
unhold 选项用于取消软件包的先前设置,以允许重复执行所有操作。
运行以下命令以使用 apt-mark 命令保留指定的软件包。
```
$ sudo apt-mark hold nano
nano set on hold.
```
保留软件包后,请运行以下 apt-mark 命令查看它们。
```
$ sudo apt-mark showhold
nano
```
这表明在执行完整的系统更新时,不会升级 **“nano”** 包。
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
nano
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
运行以下命令,使用 apt-mark 命令取消对 “nano” 包的保留。
```
$ sudo apt-mark unhold nano
Canceled hold on nano.
```
### 方法 2如何使用 dpkg 命令在 Debian/Ubuntu 系统上排除软件包更新
dpkg 命令是一个 CLI 工具,用于安装,构建,删除和管理 Debian 软件包。dpkg 的主要且更用户友好的前端是 aptitude。
运行以下命令使用 dpkg 命令阻止给定的软件包。
**语法:**
```
$ echo "package_name hold" | sudo dpkg --set-selections
```
运行以下 dpkg 命令以保留 **“apache2”** 包。
```
$ echo "apache2 hold" | sudo dpkg --set-selections
```
保留软件包后,请运行以下命令查看它们。
```
$ sudo dpkg --get-selections | grep "hold"
apache2 hold
```
它会显示在执行完整的系统更新时,不会升级 **“apache2”** 包。
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
apache2
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
运行以下命令,使用 dpkg 命令取消对指定软件包的保留。
**语法:**
```
$ echo "package_name install" | sudo dpkg --set-selections
```
运行以下命令,使用 dpkg 命令取消保留 “apache2” 包。
```
$ echo "apache2 install" | sudo dpkg --set-selections
```
### 方法 3如何使用 aptitude 命令排除 Debian/Ubuntu 系统上的软件包更新
aptitude 命令是 Debian 及其衍生版本的基于文​​本的软件包管理界面。
它允许用户查看软件包列表并执行软件包管理任务,例如安装、升级和删除软件包。它可以从可视界面或命令行执行操作。
运行以下命令,使用 aptitude 命令保留指定的软件包。
```
$ sudo aptitude hold python3
```
保留某些软件包后,请运行以下 aptitude 命令查看它们。
```
$ sudo dpkg --get-selections | grep "hold"
或者
$ sudo apt-mark showhold
python3
```
这表明在执行完整的系统更新时,不会升级 **“python3”** 软件包。
```
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
python3
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
```
使用 apt-mark 命令运行以下命令以解除对 **“python3”** 软件包的保留。
```
$ sudo aptitude unhold python3
```
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/magesh/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/redhat-centos-yum-update-exclude-specific-packages/
[2]: https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/
[3]: https://www.2daygeek.com/dpkg-command-to-manage-packages-on-debian-ubuntu-linux-mint-systems/