Verifique se existem várias dependências antes de instalar um pacote no Debian ou Ubuntu

8

Eu já sei que posso verificar se existem várias dependências necessárias para instalar um pacote no Debian ou Ubuntu em meus repositórios executando o seguinte comando:

apt policy first-package second-package ... last-package  

Este comando também me diz se eu tenho cada pacote atualmente instalado ou não.

Minha pergunta é como verificar rapidamente se existem vários pacotes de dependência em uma versão suportada do Debian ou Ubuntu que eu não tenho atualmente instalado. Como não tenho esse SO atualmente instalado, não posso verificar se os pacotes de dependência existem local e offline, mas quero verificar se os pacotes de dependência necessários existem nos repositórios padrão do terminal.

Um uso possível para essas informações é verificar se um aplicativo instalado no Ubuntu também pode ser instalado na versão mais recente do Ubuntu antes de instalar a versão mais recente do Ubuntu ou atualizar o sistema operacional existente para a versão mais recente.

karel
fonte

Respostas:

10

A ferramenta ideal para isso é rmadison, que é um script Perl simples com poucas dependências (o URImódulo e wgetou curl), para que possa ser executado praticamente em qualquer lugar. Ele interroga os serviços de Madison hospedados pelo Debian e Ubuntu para determinar a disponibilidade de pacotes:

rmadison gcc-7

informa quais versões do GCC 7 estão disponíveis nas várias suítes Debian,

rmadison -u ubuntu gcc-7

faz o mesmo para o Ubuntu.

Você pode restringir a saída a uma versão específica:

rmadison -u ubuntu -s bionic gcc-7
Stephen Kitt
fonte
aviso @karel que o parâmetro depois -unão é um nome de pacote, mas uma distro (ou provavelmente repo) nome
PNB
Você está certo, estava faltando ubuntue funciona no meu arquivo de exemplo. Na verdade, ele funciona melhor que o meu script, porque também retorna resultados para pacotes precisos, o que é um lançamento no final da vida útil.
Karel
3

O rmadison pode procurar pacotes Debian e Ubuntu ao mesmo tempo, e também procura pacotes nas versões End Of Life (12.04) e Ubuntu (18.10) não lançadas. Esses são ótimos recursos, mas o rmadison não pode fazer pesquisas parciais de palavras-chave no meu computador. Às vezes, não consigo lembrar o nome completo do pacote que estou procurando. Só me lembro de parte disso, e as instruções a seguir também funcionam nessa situação. Caso contrário, use rmadison, que pode ser instalado pelo comandosudo apt-get install devscriptsno Ubuntu e Debian.

  1. Crie um script de shell para consultar se existem vários pacotes denominados Open-multiple-URLs-in-Firefox.sh. O script contém o seguinte código:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
  2. Torne o script executável.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Crie um arquivo chamado packages.txt que contenha os nomes de todos os pacotes de dependência necessários, cada pacote em uma linha separada. Salve packages.txt no mesmo diretório que Open-multiple-URLs-in-Firefox.sh.

  4. Execute o script.

    ./Open-multiple-URLs-in-Firefox.sh  

A página da Web que contém informações sobre cada pacote de dependência necessário será aberta em uma guia separada no Firefox.

Para procurar vários pacotes no Debian, substitua https://packages.ubuntu.com/no shell script porhttps://packages.debian.org/search?keywords=


Este comando é uma alternativa mais simples ao script de shell acima para uso quando você estiver pesquisando apenas 1 ou 2 pacotes.

firefox --new-tab https://packages.ubuntu.com/first-package https://packages.ubuntu.com/next-package https://packages.ubuntu.com/last-package
karel
fonte