Problème E: Erreur de lecture - read (21 est un répertoire)

Bonjour à tous,
Après avoir fait un aptitude pour un paquet j’ai eu une succession d’erreurs car je n’avais plus d’espace dispo, j’ai agrandi ma partition et voilà les messages que j’obtiens lors de:

apt-get install
apt-get upgrade
aptitude update

Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Erreur !
E: Erreur de lecture - read (21 est un répertoire)
E: Erreur de lecture - read (21 est un répertoire)
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Erreur !
Lecture de l’information d’état étendu
Initialisation de l’état des paquets… Erreur !
E: Erreur de lecture - read (21 est un répertoire)
E: Erreur de lecture - read (21 est un répertoire)

Merci d’avance pour votre aide. :slight_smile:

Pour info:

ls -l /etc/apt/
total 30
drwxr-xr-x 2 root root 4096 aoû 4 11:05 apt.conf.d
-rw------- 1 root root 0 jui 26 09:58 secring.gpg
-rw-r–r-- 1 root root 99 aoû 13 16:26 sources.list
drwxr-xr-x 2 root root 4096 jui 28 14:26 sources.list.d
-rw------- 1 root root 1200 jui 26 09:58 trustdb.gpg
-rw------- 1 root root 7012 jui 28 14:26 trusted.gpg
-rw------- 1 root root 5801 jui 26 09:58 trusted.gpg~

cat /etc/apt/sources.list
deb ftp.fr.debian.org/debian/ lenny main
deb security.debian.org/ lenny/updates main

ps: je n’ai rien touché dans le dossier /etc/apt/
ps2: je suis sous DEBIAN LIVE (clef usb) mais cela ne change rien :slight_smile:

Que donne

find / -name 21

(il semble qu’il y ait un répertoire «21» qui ne devrait pas exister).

Salut, le find me renvoie

/live/cow/var/lib/scrollkeeper/TOC/21
/live/cow/var/lib/scrollkeeper/index/21
/var/lib/scrollkeeper/TOC/21
/var/lib/scrollkeeper/index/21
/proc/irq/21
/proc/3851/task/3851/fd/21
/proc/3851/task/3851/fdinfo/21
/proc/3851/fd/21
/proc/3851/fdinfo/21
/proc/3940/task/3940/fd/21
/proc/3940/task/3940/fdinfo/21
/proc/3940/fd/21
/proc/3940/fdinfo/21
/proc/4005/task/4005/fd/21
/proc/4005/task/4005/fdinfo/21
/proc/4005/fd/21
/proc/4005/fdinfo/21
/proc/4150/task/4150/fd/21
/proc/4150/task/4150/fdinfo/21
/proc/4150/fd/21
/proc/4150/fdinfo/21
/proc/4152/task/4152/fd/21
/proc/4152/task/4152/fdinfo/21
/proc/4152/fd/21
/proc/4152/fdinfo/21
/proc/4153/task/4153/fd/21
/proc/4153/task/4153/fdinfo/21
/proc/4153/task/4212/fd/21
/proc/4153/task/4212/fdinfo/21
/proc/4153/fd/21
/proc/4153/fdinfo/21
/proc/4229/task/4229/fd/21
/proc/4229/task/4229/fdinfo/21
/proc/4229/fd/21
/proc/4229/fdinfo/21
/proc/4231/task/4231/fd/21
/proc/4231/task/4231/fdinfo/21
/proc/4231/fd/21
/proc/4231/fdinfo/21
/proc/4384/task/4384/fd/21
/proc/4384/task/4384/fdinfo/21
/proc/4384/task/4388/fd/21
/proc/4384/task/4388/fdinfo/21
/proc/4384/fd/21
/proc/4384/fdinfo/21

Merci

Hum, ce serait scrollkeeper? J’ai du mal à y croire. Bon, fais

et regarde dans /tmp/sortie quel fichier pose problème.

Voici le contenu du fichier /tmp/sortie

execve("/usr/bin/apt-get", [“apt-get”, “upgrade”], [/* 21 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libapt-pkg-libc6.7-6.so.4.6", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libutil.so.1", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libm.so.6", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libc.so.6", O_RDONLY) = 3
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 4
stat64("/var/lib/apt/.", {st_mode=S_IFDIR|0755, st_size=4096, …}) = 0
stat64("/etc/apt/apt.conf.d/", {st_mode=S_IFDIR|0755, st_size=4096, …}) = 0
open("/etc/apt/apt.conf.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4
stat64("/etc/apt/apt.conf.d/01autoremove", {st_mode=S_IFREG|0644, st_size=92, …}) = 0
stat64("/etc/apt/apt.conf.d/70debconf", {st_mode=S_IFREG|0644, st_size=182, …}) = 0
open("/etc/apt/apt.conf.d/01autoremove", O_RDONLY|O_LARGEFILE) = 4
open("/etc/apt/apt.conf.d/70debconf", O_RDONLY|O_LARGEFILE) = 4
stat64("/etc/apt/apt.conf", 0xbfffc5c4) = -1 ENOENT (No such file or directory)
stat64("/var/lib/dpkg/status", {st_mode=S_IFREG|0644, st_size=820487, …}) = 0
stat64("/usr/bin/dpkg", {st_mode=S_IFREG|0755, st_size=365324, …}) = 0
stat64("/etc/debian_version", {st_mode=S_IFREG|0644, st_size=6, …}) = 0
open("/var/lib/dpkg/lock", O_RDWR|O_CREAT|O_NOFOLLOW, 0640) = 4
open("/var/lib/dpkg/updates/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 5
stat64("/etc/apt/sources.list", {st_mode=S_IFREG|0644, st_size=99, …}) = 0
open("/etc/apt/sources.list", O_RDONLY|O_LARGEFILE) = 5
stat64("/etc/apt/sources.list.d/", {st_mode=S_IFDIR|0755, st_size=4096, …}) = 0
open("/etc/apt/sources.list.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 5
stat64("/etc/apt/sources.list.d/google-chrome.list", {st_mode=S_IFREG|0644, st_size=169, …}) = 0
open("/etc/apt/sources.list.d/google-chrome.list", O_RDONLY|O_LARGEFILE) = 5
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_Release.gpg", {st_mode=S_IFREG|0644, st_size=1033, …}) = 0
stat64("/var/lib/apt/lists/security.debian.org_dists_lenny_updates_Release.gpg", {st_mode=S_IFREG|0644, st_size=835, …}) = 0
stat64("/var/lib/apt/lists/dl.google.com_linux_deb_dists_stable_Release.gpg", {st_mode=S_IFREG|0644, st_size=191, …}) = 0
access("/var/cache/apt/", W_OK) = 0
open("/usr/share/locale/locale.alias", O_RDONLY) = 5
open("/usr/share/locale/fr_FR@euro/LC_MESSAGES/libapt-pkg4.6.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr@euro/LC_MESSAGES/libapt-pkg4.6.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR/LC_MESSAGES/libapt-pkg4.6.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr/LC_MESSAGES/libapt-pkg4.6.mo", O_RDONLY) = 5
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 5
open("/usr/lib/gconv/ISO8859-15.so", O_RDONLY) = 5
stat64("/var/cache/apt/pkgcache.bin", {st_mode=S_IFREG|0644, st_size=10082838, …}) = 0
open("/var/cache/apt/pkgcache.bin", O_RDONLY) = 5
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=24334812, …}) = 0
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=24334812, …}) = 0
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_main_i18n_Translation-fr", {st_mode=S_IFREG|0644, st_size=2695118, …}) = 0
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_main_i18n_Translation-fr", {st_mode=S_IFREG|0644, st_size=2695118, …}) = 0
stat64("/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_lenny_main_i18n_Translation-fr", {st_mode=S_IFREG|0644, st_size=2695118, …}) = 0
stat64("/var/lib/apt/lists/security.debian.org_dists_lenny_updates_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=1972542, …}) = 0
stat64("/var/lib/apt/lists/security.debian.org_dists_lenny_updates_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=1972542, …}) = 0
stat64("/var/lib/apt/lists/security.debian.org_dists_lenny_updates_main_i18n_Translation-fr", 0xbfffc324) = -1 ENOENT (No such file or directory)
stat64("/var/lib/apt/lists/dl.google.com_linux_deb_dists_stable_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=3270, …}) = 0
stat64("/var/lib/apt/lists/dl.google.com_linux_deb_dists_stable_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=3270, …}) = 0
stat64("/var/lib/apt/lists/dl.google.com_linux_deb_dists_stable_main_i18n_Translation-fr", 0xbfffc324) = -1 ENOENT (No such file or directory)
stat64("/var/lib/dpkg/status", {st_mode=S_IFREG|0644, st_size=820487, …}) = 0
stat64("/etc/apt/preferences", 0xbfffbc74) = -1 ENOENT (No such file or directory)
stat64("/var/lib/apt/extended_states", {st_mode=S_IFDIR|0755, st_size=8192, …}) = 0
open("/var/lib/apt/extended_states", O_RDONLY) = 5
open("/usr/share/locale/fr_FR@euro/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr@euro/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr/LC_MESSAGES/libc.mo", O_RDONLY) = 6
open("/usr/lib/gconv/ISO8859-1.so", O_RDONLY) = 6

J’avoue que c’est assez brouillon pour moi… :frowning:

Aucune idée ? :confused:

Rien ?

Bon, j’ai pas dit que j’avaise une idée, hein.
Mais je suggère 2-3 trucs :

  1. Exécuter apt-get sans traduction parce que des fois celles-ci sont un peu déroutantes.
  1. Exécuter strace sans l’option “-e trace=file”. Ça va faire grossir le fichier, mais là on ne voit pas quel appel provoque les messages d’erreur (il est normal que certains fichiers ne soient pas trouvés, ce n’est pas forcément une erreur).

Il vaut peut-être mieux éviter de tout copier ici, ou alors seulement une vingtaine de lignes avant les messages d’erreur.

Salut Pascal, ça va?

C’est cvurieux, le strace ne donne pas d’ouverture ou d’accès à un fichier «21». Du coup la suggestion de Pascal est bonne.

Le apt-get update fonctionne.
Il y a un blocage au niveau du upgrade et du install.
Voici la fin du strace où l’on trouve l’erreur:

stat64("/var/lib/apt/extended_states", {st_mode=S_IFDIR|0755, st_size=8192, …}) = 0
open("/var/lib/apt/extended_states", O_RDONLY) = 5
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fstat64(5, {st_mode=S_IFDIR|0755, st_size=8192, …}) = 0
write(1, “\rBuilding dependency tree \r”…, 33) = 33
write(1, “\n”…, 1) = 1
write(1, “\rReading state information… 0%\r”…, 33) = 33
read(5, 0x80aae10, 32768) = -1 EISDIR (Is a directory)
read(5, 0x80aae10, 32768) = -1 EISDIR (Is a directory)
close(5) = 0
write(1, “\rReading state information… Err”…, 37) = 37
write(1, “\n”…, 1) = 1
munmap(0xb6959000, 823296) = 0
munmap(0xb6937000, 139264) = 0
munmap(0xb6a22000, 352256) = 0
munmap(0xb6a78000, 9753208) = 0
close(4) = 0
write(2, "E: "…, 3) = 3
write(2, “Read error - read (21 Is a direct”…, 37) = 37
write(2, “\n”…, 1) = 1
write(2, "E: "…, 3) = 3
write(2, “Read error - read (21 Is a direct”…, 37) = 37
write(2, “\n”…, 1) = 1
close(3) = 0
exit_group(100) = ?

Merci

/var/lib/apt/extended_states serait un répertoire sur ta machine, est ce le cas?

Oui je confirme c’est bien un répertoire.

Là est le problème, cela devrait être un fichier contenant des lignes genre

[quote]Package: xkb-data
Auto-Installed: 1

Package: console-terminus
Auto-Installed: 1

Package: kbd
Auto-Installed: 1

[/quote]
essaye de faire un
$ grep -r “Auto-Installed” /var/lib/apt/*

pour voir si ce fichier est quelque part…

Ce fichier existe bien mais sous:

/var/lib/apt/extended_states.tmp

Bon, essaye en faisant

mv /var/lib/apt/extended_states /var/lib/apt/extended_states.dir

mv /var/lib/apt/extended_states.tmp /var/lib/apt/extended_states

puis tu fais ton apt-get

Je ne sais pas si ce sont les mêmes auteurs, mais l’on peux suivre 2 discutions en même temps sur le même sujet, suaf que là il s’agit d’un problème sur une VM :
linuxfr.org

[EDIT] A priori, même auteur

mouais et des erreurs dans ce qui est dit après. Le problème vient de ce message à la noix: «21» n’est pas le fichier fautif mais sans doute le numéro d’erreur. Le message est ambigu. En tout cas, le pbm est clair, il essaye d’ouvrir /var/lib/apt/extended_states en lecture et c’est un répertoire d’où plantage.

Oui j’ai fais une demande sur Da linux french (et ce n’est pas sur une vm)

Sinon grâce au MV tout refonctionne normalement.
J’y croyais plus ^^
Bien joué fran.b et PascalHambourg.

Oui, include/asm-generic/errno-base.h définit le code d’erreur EISDIR (is a directory) à 21.

Ça va, merci.

Bah je n’ai pas fait grand chose, François a presque tout fait et y serait très bien arrivé sans moi.

C’est beau la modestie :slight_smile:
Tu as quand même mis ton grain de sel, ton LANG=C strace -o /tmp/sortie apt-get update nous a bien mis sur la voie.