web-dev-qa-db-fra.com

Comment obtenir une liste de tous les packages disponibles pour une version spécifique d'Ubuntu (pas nécessairement celle que j'ai installée)?

Je peux obtenir une liste de tous les packages disponibles et de leurs détails en utilisant la commande suivante:

apt-cache search .

Ce qui produit une liste de paquets qui ressemble à ceci:

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 
...

Comment puis-je obtenir une telle liste de paquets pour une version d'Ubuntu que je n'ai pas installée ?

Donc, plus précisément, où puis-je télécharger la base de données de tous les paquets disponibles pour une version spécifique d'Ubuntu, et comment puis-je obtenir les détails (y compris éventuellement la version, la taille, la description longue ...), en texte brut ou dans un format qui est facile à analyser avec un script?

5
JonasCz

Utilisez liste . Cette commande vous permet d'exécuter apt-get et apt-cache comme d'habitude, mais pour une version différente d'Ubuntu (ou de Debian ou de toute autre distribution dérivée de Debian).

Il fournit également un wrapper autour de grep-dctrl qui vous permet facilement de rechercher et de générer des rapports sur les champs de métadonnées.

3
Robie Basak

1 en ligne

Je préfère utiliser http://packages.ubuntu.com/ comme réponse de mur

2. Hors ligne, manuel

Sinon, cherchez une solution hors ligne, alors vous devriez être MR. APT et commencez à les télécharger à partir de http://archive.ubuntu.com/ubuntu/dists/ .

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;

Résultats:

$ 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. Hors ligne, en utilisant apt-cache/overlay-filesystem/chroot

Ça va mal, configuration avancée:

En fait, je vais utiliser un sources.list* personnalisé avec le même apt-cache installé le 16.04, mais apt ne remplacera pas les fichiers de listes réelles de 16.04 dans /var/lib/apt/lists/, les modifications seront appliquées. dans le système de fichiers overlay.

Configuration:

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

Utilisez: (vous pouvez préparer un script)

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

apt-cache ...
8
user.dz

Vous avez déjà la commande de lister tous les messages postés possibles, mais ok allons un peu plus loin, allons-nous? Donc, apt-cache search . ou apt-cache search '' génère environ 2300 lignes, ce qui représente en fait le nombre total de packages pouvant inclure différentes versions DE.

Pour rendre les choses plus faciles, vous ne pouvez obtenir les noms qu'avec:

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

Ou vous préférez plus d'informations et ne vous occupez pas d'une longue liste, vous pouvez la passer par apt-cache policy:

apt-cache policy $(apt-cache search '' | sort -d | awk '{print $1}')
2
Videonauth