Как обновить единственный пакет, использующий склонный - добираются?

Как я обновляю единственный пакет? До man apt-get говорит apt-get upgrade не берет пакет/список пакетов как параметр:

обновление

обновление используется для установки новейших версий всех пакетов, в настоящее время устанавливаемых в системе из источников, перечисленных в /etc/apt/sources.list. Пакеты, в настоящее время устанавливаемые с новыми доступными версиями, получены и обновлены; ни при каких обстоятельствах не в настоящее время устанавливаемые пакеты, удаленные или пакеты, не уже установленные полученный и установленный. Новые версии в настоящее время устанавливаемых пакетов, которые не могут быть обновлены, не изменяя состояние установки другого пакета, оставят в их текущей версии. Обновление должно быть выполнено сначала так, чтобы склонный - добрались, знает, что новые версии пакетов доступны.

837
задан 27 April 2017 в 08:46

8 ответов

Просто необходимо сделать apt-get install --only-upgrade <packagename>. Это обновит только, что единственный пакет, и только если он установлен.

Если Вы хотите установить пакет, если он не существует или обновляет его, если он делает, можно не учесть --only-upgrade.

1042
ответ дан 22 November 2019 в 22:31

Существует два возможных способа, которыми я могу думать:

  1. sudo apt-get install nameofpackage

    Это обновит пакет, даже если будет уже установлен:

    ~$ sudo apt-get install emesene
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages will be upgraded:
      emesene
    1 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
    Need to get 1,486 kB of archives.
    After this operation, 696 kB disk space will be freed.
    Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1,486 kB]
    
  2. ИспользуяSynaptic Package Manager: Право click→Mark для обновления:

    enter image description here

    Примечание: Иногда это может просить дополнительные пакеты или зависимости, это нормально.

55
ответ дан 22 November 2019 в 22:31

Старый но деликатный вопрос, я беру свободу добавления обновленного ответа... Для более современных дистрибутивов, где способная обертка включена, столь же простая как:

sudo apt upgrade <package-name>
1
ответ дан 22 November 2019 в 22:31

Обновить единственный пакет на Ubuntu 18.04 LTS:

sudo apt update && sudo apt install --only-upgrade <packagename>

Для обновления нескольких пакетов:

sudo apt update && sudo apt install --only-upgrade <package1> <package2> <package3>
0
ответ дан 22 November 2019 в 22:31

Для обновления единственного пакета с помощью CLI:

sudo apt-get install --only-upgrade <packagename>

например, sudo apt-get install --only-upgrade ack

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Skipping **ack**, it is not installed and only upgrades are requested.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
131
ответ дан 22 November 2019 в 22:31

Для решения для командной строки, которое не устанавливает пакет, если он уже не существует:

dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>

Это может легко быть превращено в сценарий, например:

обновление-package.sh:

#!/bin/bash

[[ -z $1 ]] && { echo "Usage: $(basename $0) package"; exit 1; }

if dpkg -s "$1" 2>/dev/null | grep -q Status.*installed; then
    echo "Attempting to upgrade $1"
    sudo apt-get install "$1"
else
    echo "Package $1 is not installed"
fi
10
ответ дан 22 November 2019 в 22:31

По моему опыту, на Ubuntu 12.04 LTS, с помощью команды ниже не обновит пакет при использовании отдельного PPA -

sudo apt-get --only-upgrade install <packagename>

Так же я не хотел выполнять команду обновления, которая обновит все пакеты на моем сервере -

sudo apt-get dist-upgrade

Например, мне установили PHP 5.3 и добавил ondrej PPA к моему apt.sources, использующему -

sudo add-apt-repository ppa:ondrej/php5

Если я работаю

sudo apt-get install php5

это просто переустановит PHP 5.3.

Я должен, во-первых, определить номер версии для обновления до, с помощью

sudo apt-cache policy php5

Это перечислит все доступные номера версий. Необходимо найти номер версии, который Вы хотите обновить до и затем скопировать целую строку, которая ссылается на него. Например, строка для PHP 5.5 на Ubuntu "5.5.16+dfsg-1+deb.sury.org~precise+2".

Теперь, можно работать, Кв. - получают команду установки с определенным номером версии, и вуаля!

sudo apt-get install php5=5.5.16+dfsg-1+deb.sury.org~precise+2

Я только добавил это, потому что я не мог найти эту информацию где-либо еще!

25
ответ дан 22 November 2019 в 22:31

На бойкой Ubuntu 9.04,

apt-get --only-upgrade install <package>

урожаи:

E: Sense only is not understood, try true or false.

Команда

apt-get --only-upgrade true install <package>

работавший в моем случае.

16
ответ дан 22 November 2019 в 22:31

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

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