如何安装大于或等于特定版本的软件包

如何安装大于或等于特定版本的软件包

脚本需要 Ruby 版本大于或等于 1.9。我如何将其转换为 apt 命令?尝试了以下方法,无效:

 % sudo apt-get install "ruby ( >= 1.9.1 )"
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ruby ( >


 % sudo apt-get install "ruby>=1.9.1"      
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ruby>

答案1

apt不支持指定版本范围来安装软件包。您只能指定要安装的确切版本,或者忽略版本以让其自动决定。

要找出软件包的哪些版本可用,输出

apt policy PACKAGENAME

将会很有帮助,例如对于ruby16.04:

ruby:
  Installed: (none)
  Candidate: 1:2.3.0+1
  Version table:
     1:2.3.0+1 500
        500 http://ftp.uni-stuttgart.de/ubuntu xenial/main amd64 Packages
        500 http://ftp.uni-stuttgart.de/ubuntu xenial/main i386 Packages

顺便说一下,上述版本对应于 Ruby 2.3。

因此在这个例子中,您可以安装ruby让系统自动选择唯一可用的版本,或者您可以明确指定它为ruby=1:2.3.0+1

安装所需软件包的命令将是

sudo apt install PACKAGENAME
sudo apt install PACKAGENAME=VERSION

答案2

就我而言,apt satisfy安装 python3 版本 greater-equal 3.9 是完美的。

sudo apt update
sudo apt satisfy "python3 (>= 3.9), python3-dev (>= 3.9)"

这也可以帮助解决破坏的依赖关系。

相关内容