Как установить конкретные пакеты Ubuntu с точной версией?

Вы не получаете сообщений об ошибках?

Я считаю, что эта проблема может быть связана с разрешениями. Вы пытались запустить программу как root?

sudo netbeans

или

sudo netbeans-7.0.1
1
задан 16 June 2015 в 16:50

3 ответа

Чтобы проверить, какие версии доступны, вы можете проверить через:

sudo apt-cache madison ^apache2

Если это не сработает, попробуйте запустить sudo apt-get update до обновления списка пакетов.

Затем скопируйте версию или используйте следующий синтаксис:

sudo apt-get install apache2=2.2\*

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

dpkg -l 'apache2*' | grep ^i
46
ответ дан 25 May 2018 в 15:31
  • 1
    Большое спасибо за указание опции =2.2\* как способ использования шаблона для выбора любой доступной подрывной деятельности. То, что я хотел знать, но не знал, как спросить :) – The Sexiest Man in Jamaica 16 April 2015 в 17:31
  • 2
    При перечислении версий с использованием dpkg -l <packageName> номер версии иногда усекается. Чтобы избежать этого, используйте COLUMNS=100 dpkg -l <packageName> – CJBS 10 June 2015 в 20:57
  • 3
    На Якнети первая команда просто дает мне: N: Unable to locate package ^apache2 – Jesse Glick 5 January 2017 в 02:41
  • 4
    @JesseGlick Запустите sudo apt-get update. Убедитесь, что у вас настроены правильные источники Apt. – kenorb 5 January 2017 в 20:30
  • 5
    N: Не удалось найти пакет ^ apache2 после $ sudo apt-get update, но sudo apt-get install apache2 = 2.2 * работает для меня – Braian Mellor 24 July 2017 в 18:04

Я расскажу о более ранних ответах с помощью других удобных команд управления версиями в семействе apt. Чтобы узнать, какие версии доступны, запустите apt-cache policy:

# apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.4.7-1ubuntu4.5
  Version table:
     2.4.10-1ubuntu1.1~ubuntu14.04.1 0
        100 http://us.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages
     2.4.7-1ubuntu4.5 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
     2.4.7-1ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Затем, как упоминалось в другом месте, установите определенную версию с помощью apt-get:

# apt-get install apache2=2.4.7-1ubuntu4.5
...

Теперь вы можете посмотрите, какую версию вы установили, запустив apt-cache policy еще раз:

# apt-cache policy apache2
apache2:
  Installed: 2.4.7-1ubuntu4.5
  Candidate: 2.4.7-1ubuntu4.5
  Version table:
     2.4.10-1ubuntu1.1~ubuntu14.04.1 0
        100 http://us.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages
 *** 2.4.7-1ubuntu4.5 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4.7-1ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Если вы не хотите устанавливать более новые версии обновлений, установите пакет с помощью apt-mark:

[ f4]

Предположим, что новая версия apache2 добавлена ​​в индекс пакета, и ваша машина синхронизирована с apt-get update. Вы увидите это при следующем запуске apt-get upgrade:

# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  apache2
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
9
ответ дан 25 May 2018 в 15:31

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

8
ответ дан 25 May 2018 в 15:31
  • 1
    Мне нужно это, чтобы воспроизвести точные копии старых сред в целях развития. Можно ли настроить зеркало, которое не удаляет старые версии пакетов для доступа к требуемым пакетам, или мне нужно настроить несколько репозиториев, которые содержат только разности? – ayckoster 2 January 2012 в 20:57
  • 2
    @psusi: Не совсем справедливый ответ, может быть много причин. В моем случае более новая версия может действительно иметь ошибку, и дважды проверить, что в этом случае нужна более старая версия. Просто пример. – Cookie 29 March 2014 в 03:23
  • 3
    @nomen, нет, это единственный дистрибутив, который делает not использование модели качения. Следует проявлять большую осторожность, чтобы убедиться, что когда критические ошибки и уязвимости безопасности исправлены в стабильном выпуске, они не вызывают регрессии, но если это произойдет, то файл с сообщением об ошибке, помеченный регрессионным релизом, будет зафиксирован или свернут назад. – psusi 6 April 2014 в 04:48
  • 4
    @nomen, если вы хотите составить свои собственные значения для слов, вам будет трудно общаться с другими. Для всех остальных в мире это не то, каков выпуск, и скользящий выпуск - это полная противоположность и, следовательно, взаимоисключающий со стабильным выпуском. И теперь, когда я думаю об этом, оригинальная версия, поставляемая с релизом, фактически хранится в кармане -release, а обновления переходят в карман -updates или -security, поэтому, пока вы не можете вернуться к предыдущему обновлению, вы может вернуться к первоначально выпущенной версии. – psusi 6 April 2014 в 06:17
  • 5
    @psusi: Вот вам еще один. Unison должен всегда быть одинаковой версией на всех машинах. Однако в 13.10 это отличается от версии 12.04 LTS. Ну что теперь? Когда вы приходите к подобному вопросу, получение ответа, например, почему вы хотите сделать это, действительно невероятно бесполезно и пустая трата времени для всех. – Cookie 15 April 2014 в 12:01

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

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