安装特定的软件包版本

fla*_*urn 7 64-bit package-management apt 32-bit

我需要安装一个tofrodos 1.17.3for i386. 我正在运行Ubuntu 16.04.2,并且我知道如果我运行sudo apt-get install tofrodos:i386它将安装 version 1.17.3。然而,这将在一个脚本中,可能会在以后使用,我需要修复版本1.17.3和 32 位架构,i386. 有谁知道这是怎么做到的吗?

我已经尝试过了

sudo apt-get install tofrodos=1.17.3:i386
sudo apt-get install tofrodos:i386=1.17.3
Run Code Online (Sandbox Code Playgroud)

但他们都不起作用。

任何帮助表示赞赏。

Pil*_*ot6 6

没有人可以保证存储库中的包将是固定版本。

可以阻止已安装的软件包升级,但apt始终会安装存储库中的可用版本。没有人保留旧版本。

实际上可能有两个版本:初始版本和“升级”版本。

但在 LTS 存储库中,软件包不太可能升级到某个新的主要版本。可能会发布一些小修复,但我认为它不会影响功能。

sudo apt-get install tofrodos:i386=version
Run Code Online (Sandbox Code Playgroud)

是正确的命令。1.17.3但仓库中没有版本。

正确的版本是1.7.13+ds-2ubuntu1.

pilot6@Pilot6:~$apt-cache policy tofrodos
tofrodos:
  Installed: (none)
  Candidate: 1.7.13+ds-2ubuntu1
  Version table:
     1.7.13+ds-2ubuntu1 500
        500 http://ru.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
Run Code Online (Sandbox Code Playgroud)

所以

sudo apt-get install tofrodos:i386=1.7.13+ds-2ubuntu1
Run Code Online (Sandbox Code Playgroud)

应该管用。

这是 的“初始”版本xenialxenial-updates即使在命令中升级了软件包也会安装这个版本。


Rav*_*ina 2

如果存储库中提供了该软件包,您可以使用以下命令从软件包的特定架构安装特定版本:

sudo apt-get install package:i386=version
Run Code Online (Sandbox Code Playgroud)

要查看您想要的版本是否可用,请使用:

apt-cache madison package-name
Run Code Online (Sandbox Code Playgroud)

或者

apt-cache policy package-name
Run Code Online (Sandbox Code Playgroud)

您的情况的另一个选择是:

apt list -a i386 tofrodos
Run Code Online (Sandbox Code Playgroud)

而且存储库中似乎不存在您想要的软件包版本。