通过 apt-get 降级一个软件包
apt
![](/data/attachment/album/202302/27/115623ifb79v4pi4v0z991.jpg)


最近升级的软件引起问题了？虽然你总是可以调查问题以解决它，但有时，回到以前的工作版本可以节省时间和精力。如果新的版本引入了一个 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](/data/attachment/album/202302/27/115747jgl19x9lgjm9rag9.png)


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



```
sudo apt-cache policy package_name

```

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


![All installable versions of an apt package](/data/attachment/album/202302/27/115758lh8xqifhv3bna8wk.png)


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


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


基本上，你复制 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](/data/attachment/album/202302/27/115808f5d0k55ry9dlr0b5.png)


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


![Downgrading apt package](/data/attachment/album/202302/27/115817t8qm6hf2nqs9u5uu.png)


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


### 所以，也许要保留它？


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


不希望这样吗？你可以 [阻止一个软件包被更新](https://itsfoss.com/prevent-package-update-ubuntu/)。像这样使用 `apt-mark` 命令：



```
sudo apt-mark hold package_name

```

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




---


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


作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
![Warp Terminal](/assets/images/warp-terminal.webp)


![Warp Terminal](/assets/images/warp-terminal.webp)

In a situation where a recently upgraded software is causing issues?

While you can always investigate the issue to fix it, at times, going back to the previous working version saves time and effort.

If the new version introduced a bug, you could do nothing on your end, right?

The good thing is that you can easily downgrade an apt package in Ubuntu and Debian.

All you have to do is to use the apt command like this:

`sudo apt install package_name=package-version-number`


That seems easy enough but how would you get the exact version number? Which old versions are supported? You can get that detail with:

`sudo apt-cache policy package_name`


Let me explain all this with a real-life example.

## Downgrading apt package

Recently, I was updating the Ubuntu server that hosts It's FOSS Community forum.

I did the usual apt update && apt upgrade and things went bonkers by the time updates were installed.

Apparently, the latest version of Docker didn't support the aufs storage driver. To reduce the downtime, I opted to downgrade to the previous Docker version.

Check the currently installed package version

![Installed Docker version](https://itsfoss.com/content/images/2023/02/installed-docker-version.png)

Then check for the available versions that could be installed:

`sudo apt-cache policy package_name`


It may throw a huge list or just a small one:

![All installable versions of an apt package](https://itsfoss.com/content/images/2023/02/available-docker-versions.png)

If it shows at least one older version than the current one, you are in luck.

Now, you may think that the version number of a package would be composed of just the numbers. But that may not always be the case.

Basically, you copy the entire stuff before 500 (the priority number).

```
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
```


Once you have got the package number, use it to downgrade the installed package like this:

`sudo apt install package_name=package-version-number`


![Downgrading an installed package via apt-get command](https://itsfoss.com/content/images/2023/02/downgrading-installed-packages.png)

You'll see a warning about downgrading the package, of course.

![Downgrading apt package](https://itsfoss.com/content/images/2023/02/downgrading-installed-package.png)

But once the process completes, your package would have been downgraded to the given older version.

## So, hold it, maybe?

So, you just learned to downgrade apt packages. But if you don't pay attention, the package will be upgraded again with the next system update.

Don't want that? You can [prevent a package from being updated](https://itsfoss.com/prevent-package-update-ubuntu/). Use the apt-mark command like this:

`sudo apt-mark hold package_name`


Want more details? Check out this article.

[How to Prevent a Package From Being Updated in Ubuntu and Debian-based Linux DistributionsBrief: Quick tutorial to show you how to prevent certain packages from being updated in Ubuntu and Debian based Linux distributions. When you update your Ubuntu system, all the applications, packages are updated at once. This is of course very convenient as you don’t have to worry about up…](https://itsfoss.com/prevent-package-update-ubuntu/)![](https://itsfoss.com/content/images/wordpress/2012/08/Prevent-package-from-being-updated.jpg)


![](https://itsfoss.com/content/images/wordpress/2012/08/Prevent-package-from-being-updated.jpg)

I hope this quick tip helps you with downgrading the apt packages when the need arises. Let me know if you have questions or suggestions.