Как найти новую версию пакета в репозиториях?

Как я нахожу новую версию пакета в репозиториях в сценарии оболочки? Если я использую apt-cache-policy, Я получаю установленную версию как "Кандидат", не новый из репозиториев.

apt-cache policy nvidia-current шоу:

nvidia-current:
  Installed: 280.13-0ppa~natty1
  Candidate: 280.13-0ppa~natty1
  Version table:
 *** 280.13-0ppa~natty1 0
        100 /var/lib/dpkg/status
     270.41.06-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ natty/restricted amd64 Packages

Похоже, что установленная версия отмечена с ***, так, чтобы был проигнорирован. Возможно, существует awk сценарий, который мог использоваться?

3
задан 9 August 2011 в 19:57

3 ответа

Я предлагаю следующий awk сценарий, к которому политика способного кэша канала производила:

#!/usr/bin/awk -f

/^     [^ ]/ {
  version = $1
}
/^ \*\*\* [^ ]/ {
  version = $2
}
/^        [^ ]/ {
  server = $2
  if (server !~ /^\//) {
    print version
    exit
  }
}
1
ответ дан 1 December 2019 в 16:46

Ниже команды, кажется, работает:

LANG=C apt-cache policy nvidia-current | grep '^     [^ ]' |\
    sort | awk '{print $1}' | head -1

LANG=C гарантирует, что вывод последователен через различные локали. grep соответствия ряд пробелов, сопровождаемых непробелом (например, версия). awk отображает версию, которая является первым непробельным блоком. Затем, вывод отсортирован, и новая версия должна быть доступной на вершине, которая взята head.

1
ответ дан 1 December 2019 в 16:46

Вы могли бы хотеть посмотреть на rmadison

#! /bin/bash

DEFAULT_DIST="$(ubuntu-distro-info --stable)"
PACKAGE="$1"
TARGET_DIST="$2"
ARCH="$(dpkg --print-architecture)"

if [ -z "$1" ]; then
  echo "Usage: $0 <PACKAGE> <DIST>"
  exit
fi

if [ -z "$TARGET_DIST" ]; then
  TARGET_DIST=$DEFAULT_DIST
  echo "Target dist not specified. Assuming $DEFAULT_DIST."
fi

VERSION="$(rmadison $PACKAGE -a $ARCH | grep $TARGET_DIST | cut -d "|" -f 2)"

echo $VERSION

Или острота:

rmadison nvidia-current -a amd64 | grep natty | cut -d "|" -f 2
1
ответ дан 1 December 2019 в 16:46

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

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