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

bal*_*lki 8 package-management apt dpkg software-installation

脚本需要 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>
Run Code Online (Sandbox Code Playgroud)

Byt*_*der 7

apt不支持指定版本范围来安装包。您只能指定您希望它采用的确切版本,或者省略版本以让它自动决定。

要找出哪些版本的包可供您使用,输出

apt policy PACKAGENAME
Run Code Online (Sandbox Code Playgroud)

会有所帮助,例如ruby在 16.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
Run Code Online (Sandbox Code Playgroud)

上面的版本对应于 Ruby 2.3 btw。

因此,在此示例中,您可以安装ruby以让系统自动选择唯一可用的版本,也可以将其明确指定为ruby=1:2.3.0+1.

安装所需软件包的命令将是以下命令之一

sudo apt install PACKAGENAME
sudo apt install PACKAGENAME=VERSION
Run Code Online (Sandbox Code Playgroud)