![以类似于 pip 的方式安装特定版本的 Ubuntu 软件包](https://linux22.com/image/1023965/%E4%BB%A5%E7%B1%BB%E4%BC%BC%E4%BA%8E%20pip%20%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85%E7%89%B9%E5%AE%9A%E7%89%88%E6%9C%AC%E7%9A%84%20Ubuntu%20%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
这个问题之前已经问过这里和这里,但我的问题略有不同。具体来说,假设我想在git
与我的机器相同的机器上安装相同的版本。我首先运行sudo apt-cache policy git
,它给了我:
Installed: 1:2.32.0-1~ppa0~ubuntu20.04.1
Candidate: 1:2.32.0-1~ppa0~ubuntu20.04.1
Version table:
*** 1:2.32.0-1~ppa0~ubuntu20.04.1 500
500 http://ppa.launchpad.net/git-core/ppa/ubuntu focal/main amd64 Packages
100 /var/lib/dpkg/status
1:2.25.1-1ubuntu3.1 500
500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
1:2.25.1-1ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages
我注意到版本是 2.32.0。如果git
是 Python 包,使用pip
,我只需执行pip install git==2.32.0
即可安装它。但是使用apt-get
,我必须执行以下操作:
sudo apt-get install git=1:2.32.0-1~ppa0~ubuntu20.04.1
具体来说,我必须指定1:2.32.0-1~ppa0~ubuntu20.04.1
。有没有办法只指定我想要 2.32.0 而不指定其他内容?
编辑:为了了解更多背景信息,我正在尝试使用特定软件包版本创建 Docker 映像。根据Docker 文档,我应该能够做到:
RUN apt-get update && apt-get install -y \
package-bar \
package-baz \
package-foo=1.3.*
注意部分package-foo=1.3.*
。我在我的机器上用 git 尝试了这个:
sudo apt-get install git=2.32.*
但是我得到了:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '2.32.*' for 'git' was not found
而做的只是sudo apt-get install git
工作