Como posso obter uma lista de todos os pacotes disponíveis para uma versão específica do Ubuntu (não necessariamente aquela que eu instalei)?

5

Eu posso obter uma lista de todos os pacotes disponíveis e seus detalhes usando o seguinte comando:

apt-cache search .

Que gera uma lista de pacotes que se parece com isso:

i   0ad                - Real-time strategy game of ancient warfare
i   0ad-data           - Real-time strategy game of ancient warfare (data files)                            
i   0ad-data-common    - Real-time strategy game of ancient warfare (common data files)                        
p   0ad-dbg            - Real-time strategy game of ancient warfare (debug)                                    
p   0xffff             - Open Free Fiasco Firmware Flasher                                                     
p   2ping              - Ping utility to determine directional packet loss                                     
p   2vcard             - perl script to convert an addressbook to VCARD file format                            
p   3270-common        - Common files for IBM 3270 emulators and pr3287                                        
p   389-admin          - 389 Directory Administration Server 
...

Como posso obter uma lista de pacotes para uma versão do Ubuntu que eu não tenha instalado?

Então, especificamente, onde posso baixar o banco de dados de todos os pacotes disponíveis para uma versão específica do Ubuntu, e como obter os detalhes (Possivelmente incluindo versão, tamanho, descrição longa ...) dele, em texto simples ou em um formato que é fácil de analisar com um script?

    
por JonasCz 12.06.2016 / 18:26

3 respostas

3

Use chdist . Este comando permite que você execute apt-get e apt-cache como de costume, mas para uma versão diferente do Ubuntu (ou Debian ou, na verdade, qualquer outra distribuição derivada do Debian).

Ele também fornece um wrapper em torno de grep-dctrl que facilmente permite pesquisar e gerar relatórios sobre campos de metadados.

    
por Robie Basak 25.06.2016 / 10:58
8

1. On-line

Eu prefiro o uso do link como resposta de muru

2. Off-line, Manual

Caso contrário, procure uma solução off-line, então você deve ser o MR. APT e comece a baixá-los do link .

p=$(pwd); for c in main universe multiverse restricted; do for u in "" -security -updates; do for a in binary-amd64 binary-i386; do mkdir trusty${u}_${c}_$a; cd trusty${u}_${c}_$a; wget http://archive.ubuntu.com/ubuntu/dists/trusty$u/$c/$a/Packages.bz2; cd $p; done; done; done;

Resultados:

$ tree
.
├── trusty_main_binary-amd64
│   └── Packages.bz2
├── trusty_main_binary-i386
│   └── Packages.bz2
├── trusty_multiverse_binary-amd64
│   └── Packages.bz2
├── trusty_multiverse_binary-i386
│   └── Packages.bz2
├── trusty_restricted_binary-amd64
│   └── Packages.bz2
├── trusty_restricted_binary-i386
...

3. Off-line, usando o apt-cache / overlay-filesystem / chroot

Configuração ruim e avançada:

Na verdade, vou usar um sources.list* personalizado com o mesmo apt-cache instalado no 16.04, mas o apt não substituirá os arquivos reais da lista 16.04 em /var/lib/apt/lists/ , as alterações irão para overlay sistema de arquivos.

Configuração:

sudo apt-get install chroot
mkdir sandbox0
cd sandbox0
mkdir upper work merged
sudo mount -t overlay overlay -o lowerdir=/,upperdir=./upper,workdir=./work ./merged
sudo chroot merged/
echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse main restricted" > /etc/apt/sources.list
rm -r /etc/apt/sources.list.d/*
apt-get update
exit

Use: (você pode preparar um script)

sudo mount -t overlay overlay -o lowerdir=/,upperdir=./upper,workdir=./work ./merged
sudo chroot merged/

apt-cache ...
    
por user.dz 20.06.2016 / 12:59
2

Você já tem o comando para listar todos os possíveis postados, mas ok vamos um pouco mais fundo, vamos? Portanto, apt-cache search . ou apt-cache search '' geram cerca de 2300+ linhas, o que é, na verdade, a quantidade total de todos os pacotes possíveis, incluindo diferentes versões de DE.

Para tornar mais fácil, você só pode obter os nomes com:

apt-cache search '' | sort -d | awk '{print }'

Ou você gosta de mais informações e não se importa com uma longa lista que você pode rolar através de apt-cache policy :

apt-cache policy $(apt-cache search '' | sort -d | awk '{print }')
    
por Videonauth 12.06.2016 / 18:42