Как установить пакет, который больше или равен определенной версии

Для сценария требуется рубиновая версия, которая больше или равна 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
задан 19 May 2017 в 00:34

3 ответа

apt не поддерживает указание диапазонов версий для установки пакета. Вы можете указать только точную версию, которую вы хотите принять, или опустить версию, чтобы она автоматически определялась.

Чтобы узнать, какие версии пакета доступны для вас, вывод

apt policy PACKAGENAME

будет полезно, например для 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

Версия выше соответствует Ruby 2.3 btw.

Итак, в этом примере вы можете установить либо ruby, чтобы система автоматически выберите единственную доступную версию или вы можете явно указать ее как ruby=1:2.3.0+1.

Команда для установки нужного пакета будет одной из

sudo apt install PACKAGENAME
sudo apt install PACKAGENAME=VERSION
2
ответ дан 22 May 2018 в 22:29
  • 1
    Как насчет dpkg / aptitude или других инструментов, которые можно использовать для установки пакета в ubuntu? – balki 19 May 2017 в 02:39
  • 2
    Нет, aptitude также не предлагает такой вариант. dpkg с другой стороны - это просто инструмент для установки уже загруженного файла пакета .deb. Он не получает пакет для вас, например apt или aptitude, поэтому вы не можете указать какую-либо версию вообще, потому что версия определяется тем, что вы вручную загрузили самостоятельно. – Byte Commander 19 May 2017 в 11:47
  • 3
    Aptitude может использоваться для запрета конкретной версии. [F1]; однако это работает только при использовании aptitude для обновлений, оно не применяется на более низких уровнях. Вы можете pin указать определенную версию с отрицательным приоритетом, и это предотвратит ее установку. – ravery 9 January 2018 в 23:32

apt не поддерживает указание диапазонов версий для установки пакета. Вы можете указать только точную версию, которую вы хотите принять, или опустить версию, чтобы она автоматически определялась.

Чтобы узнать, какие версии пакета доступны для вас, вывод

apt policy PACKAGENAME

будет полезно, например для 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

Версия выше соответствует Ruby 2.3 btw.

Итак, в этом примере вы можете установить либо ruby, чтобы система автоматически выберите единственную доступную версию или вы можете явно указать ее как ruby=1:2.3.0+1.

Команда для установки нужного пакета будет одной из

sudo apt install PACKAGENAME sudo apt install PACKAGENAME=VERSION
2
ответ дан 18 July 2018 в 13:05

apt не поддерживает указание диапазонов версий для установки пакета. Вы можете указать только точную версию, которую вы хотите принять, или опустить версию, чтобы она автоматически определялась.

Чтобы узнать, какие версии пакета доступны для вас, вывод

apt policy PACKAGENAME

будет полезно, например для 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

Версия выше соответствует Ruby 2.3 btw.

Итак, в этом примере вы можете установить либо ruby, чтобы система автоматически выберите единственную доступную версию или вы можете явно указать ее как ruby=1:2.3.0+1.

Команда для установки нужного пакета будет одной из

sudo apt install PACKAGENAME sudo apt install PACKAGENAME=VERSION
2
ответ дан 24 July 2018 в 20:06

Другие вопросы по тегам:

Похожие вопросы: