como descobrir quais pacotes dos repositórios oficiais do Ubuntu precisam ser atualizados (em relação ao estado atual)?

0

como determinar quais pacotes de repositórios oficiais do Ubuntu precisam ser atualizados (em relação ao estado atual) e fazer o download desses pacotes Obrigado.

Hey Denarsson, seu roteiro foi muito útil, obrigado.

O comando apt-get atualizar -o Dir :: Etc :: sourcelist = 'sources.list' \ -o Dir :: Etc :: sourceparts = '-' -o APT :: Get :: Lista-Limpeza = '0' atualize as listas de pacotes dos repositórios oficiais do Ubuntu.

Sim, está tudo bem, mas o que eu preciso primeiro, antes de atualizar os dados, é ver a lista de pacotes (nome dos pacotes) dos repositórios oficiais do Ubuntu que precisam ser atualizados e depois confirmar para atualizar.

Por exemplo, como este comando: apt-get upgrade --show-upgraded que imprima uma lista de todos os pacotes que serão atualizados.

Saída: Os seguintes pacotes serão atualizados:

Apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-comum apparmor apport apport-sintomas apt apt-transport-https apt-utils Apt-xapian-index aptitude avahi-daemon  copos-cliente xícaras-comum xícaras-motorista-gutenprint xícaras-filtros xícaras-ppdc ondulação dbus dmsetup dnsutils dosfstools dovecot-core dovecot-imapd dovecot-pop3d arquivo dpkg fontconfig-config …….

Ou, por exemplo, com sudo / usr / lib / update-notifier / update-motd-updates-disponível

Fora por ex:

35 pacotes podem ser atualizados.

22 atualizações são atualizações de segurança.

Como saída é o número de pacotes que podem ser atualizados, mas também preciso ver a lista de pacotes com o nome, por exemplo.

Então qual combinação de comando você acha que é apropriado imprimir primeiro a lista de pacotes precisa ser atualizada e depois disso confirmar para atualizar essa lista?

Obrigado pelo seu tempo.

    
por user251077 22.02.2014 / 13:31

1 resposta

0

No começo, você desejará atualizar as listas de pacotes. Você poderia simplesmente usar apt-get update , mas desde que você só quer as fontes oficiais, isso levaria desnecessariamente longo. Para acelerar um pouco as coisas, use o seguinte:

apt-get update -o Dir::Etc::sourcelist='sources.list' \
-o Dir::Etc::sourceparts='-' -o APT::Get::List-Cleanup='0'

Agora que suas listas de pacotes estão atualizadas, você precisa obter as URLs dos pacotes individuais. O código a seguir é emprestado do apt-fast , você pode precisar ajustá-lo às suas necessidades.

DLLIST="/tmp/packages.list"
# Add header to overwrite file:
echo "# package download list: $(date)" > "$DLLIST"
# We use --print-uris to get the uris of the packages instead of downloading them
for urimd5 in $(apt-get -y --print-uris upgrade |
    egrep "^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$" |
    sed "s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/::MD5Sum:/"); do
  uri="${urimd5%::MD5Sum:*}"
  checksum="${urimd5#*::MD5Sum:}"
  # Here we are checking if the package comes from the official sources,
  # only then it's written to the list:
  if [[ $uri == *ubuntu.com* ]]; then
    echo "$(get_mirrors "$uri")" >> "$DLLIST"
    echo " checksum=md5=$checksum" >> "$DLLIST"
    # Here you can specify where the files go.
    # Change path to the location where you want the packages to be downloaded.
    echo " out=/path/$(basename $uri)" >> "$DLLIST"
  fi
done

Agora você tem uma lista de URLs para os arquivos de pacote que deseja baixar em /tmp/packages.list . Para baixar os pacotes, usamos aria2c , que você pode instalar dos repositórios padrão executando sudo apt-get install aria2 . Aqui vamos nós:

aria2c -i $DLLIST

Basta colocar o texto acima em seu script. Ele terá que ser executado como root, é claro.

    
por Donarsson 22.02.2014 / 13:43