Estou tentando descobrir uma maneira de obter uma lista dos pacotes que não estão mais disponíveis nos repositórios que eu habilitei. Esta estação de trabalho passou por várias versões do Ubuntu e teve muitos repositórios de terceiros adicionados e removidos. Gostaria de obter uma lista do software que tenho desses repositórios removidos, para que eu possa limpá-lo ou adicionar novamente os repositórios apropriados.
package-management
Sean
fonte
fonte
apt-show-versions | grep "newer than version in archive"
Para obter uma lista de aplicativos que não estão em um Repositório Registrado ou PPA, faça o seguinte:
Isso deve gerar um texto como este:
Para mim, isso funcionou e mostrou três aplicativos que eu instalei usando pacotes DEB e não estavam disponíveis em um Repo ou PPA.
Lembre-se, porém, de que é impossível verificar todos os programas, apenas os que foram aprovados
dpkg
. Por exemplo, alguns aplicativos são instalados simplesmente extraindo-os para as pastas corretas ou outros usam um bin ou script de instalador independente. Portanto, a melhor maneira é manter uma lista de aplicativos instalados por qualquer método que não seja o APT.fonte
dpkg
pacotes instalados locais . Uma exceção Ele listaskype-bin
, enquantoapt-cache policy skype-bin
mostra claramente o repositório de parceiros da Canonical. Não tenho certeza do que está acontecendo. Problema multiarca? Ainda +1 paraapt-show-versions
!Se você possui o aptitude instalado,
ou sua forma abreviada
Aqui está uma amostra de saída
O primeiro caractere de cada linha indica o estado atual do pacote. Os estados mais comuns são:
O segundo caractere indica a ação armazenada a ser executada na embalagem, se houver, caso contrário, um espaço em branco é exibido. As ações mais comuns são:
Se o terceiro caractere for A, o pacote foi instalado automaticamente.
Para obter uma lista completa dos possíveis sinalizadores de estado e ação, consulte a seção Acessando informações do pacote no guia de referência do aptitude.
fonte
aptitude search ?obsolete
podem trabalhar em bash, mas você deve usaraptitude search '?obsolete'
A partir do Ubuntu 19.10, também é possível executar
para obter a lista de pacotes obsoletos.
Para qualquer versão, você pode usar a seguinte linha única do Bash:
Não há necessidade de instalar pacotes extras para isso, além disso, é relativamente rápido. Isso também encontrará pacotes parcialmente instalados (mas não encontrará aqueles que têm apenas arquivos de configuração restantes; que podem ser alterados facilmente). Nota: isso não se importa com a arquitetura dos pacotes.
Se você deseja incluir pacotes com uma versão diferente instalada do que está disponível nos repositórios, você pode:
Use o apt moderno:
Outra opção é executar
e leia os nomes dos pacotes na seção "Não está mais disponível para download:".
fonte
Mais informações para investigar.
... o ubuntu-support-status e o apt-mark podem exigir instalação.
fonte
sudo
comapt-mark showmanual
.ubuntu-support-status
lista o número de pacotes obsoletos, mas não os nomes dos pacotes.ubuntu-support-status --help
Pode haver uma maneira mais limpa, mas em cima da minha cabeça você pode fazer
Limpe as primeiras linhas do
installed
arquivo: ele terá cabeçalhos.Bônus se alguém puder corrigir meu destaque de sintaxe ...
fonte
dpkg -l
para obter uma lista de pacotes instalados, limite os resultados às linhas com 'i' na segunda coluna, pois o dpkg também listará pacotes que não estão instalados (talvez removidos, mas não eliminados) . como exemplo, alterar seu primeiro comandodpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
retornaria uma lista de pacotes que NÃO estão instalados. (mas já foram) #apt-cache search someinstalledpackage
retornará algo mesmo que o pacote não esteja disponível em um repositório, portanto, não acredito que isso funcione.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
também imprime algumas linhas de cabeçalho.apt-cache search
para cada pacote separadamente.Como mencionado, o apt-get search não é um bom método para verificar se um pacote ainda está disponível. Adicionamos tudo a apenas uma linha:
fonte
grep '^i'
man dpkg-query
para mais informações.apt-cache show
O does not não é bom para verificar se o pacote está disponível. Se você desabilitar o respectivo repositório, e nenhum outro repositório habilitado o possuir, ele ainda mostrará o pacote.