[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dpkg et apt-cache ne s'entendent pas ?



Bonjour,

Le  1 Fév, Michel Grentzinger a écrit:
> Bonjour,
[snip]
> dpkg et apt-cache n'utilisent pas la même base de données ?

Pas necessairement.
dpkg utilise /var/lib/dpkg/available et /var/lib/dpkg/status
apt utilise /var/state/apt/lists/*, et temporairement (durant les mises
a jours) /var/cache/apt/available
Pour etre a peu pres sur que dpkg, dselect et apt utilisent la meme base
de paquet, il faut :

	Verifier que dselect utilise apt comme source de paquet
		# dselect
	 	 menu 0
	 	 choisir apt
	 	 ne rien faire d'autre dans dselect, (ce truc a tendance a
	 	 ajouter des paquets tout seul si on n'y prend pas
                 garde, mais c'est une autre histoire)

	Ne plus jamais faire apt-get update, mais :
	# dselect update
	ainsi, dselect utilise la methode apt pour mettre a jour la base de
	donnees des paquets. apt est mis a jour par dselect, et dselect utilise
	ce resultat pour coller ca dans la base de donnees de dpkg, tout le
	monde utilise la meme base de donnees, enfin presque.


Meme apres ce genre de manip on n'obtient pas forcement le meme nombre
de paquets. Car dpkg est aussi le gestionnaire de paquets installes. Si
je telecharge un paquet toto.deb et que je l'installe avec
# dpkg -i toto.deb
alors apt n'est au courant de rien, mais dpkg, lui sait bien que ce
paquet est present (ou a ete present) et en garde une trace pour
toujours.

Je suppose de plus que dpkg et apt ont une maniere differente de compter
les references au paquets virtuels ou manquants. mais la, c'est de la
speculation pure.



# dselect update
...
Reading Package Lists... Done
Building Dependency Tree... Done
Merging Available information
Replacing available packages info, using /var/cache/apt/available.
Information about 4967 package(s) was updated.

$ dpkg -l '*' | wc -l 
   6362
mais il y 5 lignes d'entete donc ca fait 6357

$ dpkg --get-selections '*' | wc -l 
	5118
$ apt-cache stats
Total Package Names : 6360 (305k)
  Normal Packages: 4903
  Pure Virtual Packages: 166
  Single Virtual Packages: 195
  Mixed Virtual Packages: 85
  Missing: 1011
Total Distinct Versions: 5637 (271k)
Total Dependencies: 29569 (710k)
Total Ver/File relations: 15569 (249k)
Total Provides Mappings: 1167 (23.3k)
Total Globbed Strings: 103 (1022)
Total Slack space: 76.7k
Total Space Accounted for: 1636k

	Christophe
-- 
char*p="[)1++++++11+(QI1)9191991)9)1)(II1)919Y91)9)1)(AK+9;991+3*(9I1*IY991)Q1\
)(1I1))A91991)Q1)(+)1)1++9;)Q1+(";main(_){while(*p){for(_=*p-32>>3;_;--_)
putchar(' ');if(!(_=*p++-32&7))putchar('\n');else while(_--)printf("_/");}}



Reply to: