Aide Linux - Liste de diffusion Ze-Linux
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [General] Comprehension d'une mise a jour par package
Le ven 04/06/2004 Ã 23:01, Mister NeNeX a Ãcrit :
> Bonjour tout le monde.
>
> Pour une fois, ce n'est pas un au secours que je lance, mais simplement
> une question pour un peu mieux comprendre la mÃcanique de Linux.
>
> La mÃcanique, mais plus prÃcisement, savoir comment font les outils de
> mise à jour de package (apt, urpmi, yum, etc) pour pouvoir mettre à jour
> des programmes tout en pouvant continuer à les utiliser.
>
> Un exemple bete, KDE. Je suis entrain de faire une mise à jour avec
> urpmi qui va me changer ma version, mais evidement, je suis dessus
> encore. Que ce passe t il exactement ?
Tu te rappelles de la petite explication sur les systÃmes de fichier ?
Ben c'est toujours la mÃme chose :-)
Petit exemple.
test.c :
#include <stdio.h>
int main(void) {
while(1) {
printf("programme original\n") ;
sleep(10) ;
}
return 0 ;
}
Je compile :
$ gcc -o test test.c
J'exÃcute en tache de fond :
$ ./test &
[1] 19056
$ programme original
programme original
programme original
...
Je change mon programme. Je remplace "programme original\n" par
"programme modifiÃ\n".
Je compile :
$ gcc -o test test.c
NB : J'ai Ãcrasà l'ancien programme !
J'exÃcute en tache de fond :
$ ./test &
[2] 19073
$ programme modifiÃ
programme original
programme modifiÃ
programme original
programme modifiÃ
programme original
[...]
J'ai l'ancienne et la nouvelle version qui tournent en mÃme temps.
PremiÃre constatation, Ãa n'a rien à avoir urpmi.
Regardons de plus prÃs pour le nouveau programme :
$ cd /proc/19073/
$ cat maps
[...]
08048000-08049000 r-xp 00000000 09:00 130105 /home/me/tmp/test
08049000-0804a000 rw-p 00000000 09:00 130105 /home/me/tmp/test
[...]
regardons l'ancien programme :
$ cd /proc/19056/
$ cat maps
[...]
08048000-08049000 r-xp 00000000 09:00 129861 /home/me/tmp/test (deleted)
08049000-0804a000 rw-p 00000000 09:00 129861 /home/me/tmp/test (deleted)
[...]
Le "(deleted)" te rappelles quelque chose ?
Si un fichier est utilisà par un programme (ici l'ancien programme
'test' est utilisà par le programme 'test' lui-mÃme (Ãa va de soit)) et
que ce fichier est supprimÃ, il n'est pas "rÃellement" supprimà mais
marquà "deleted" (en gros "à supprimer lorsque plus personne n'utilise
le fichier").
Suite de l'exemple:
J'ai toujours mes deux programmes test qui tournent.
Si j'arrÃte l'ancien programme je vais libÃrer de la plus sur le disque.
En effet, le fichier 'test' marquà 'deleted' n'Ãtant plus utilisÃ, il
sera donc rÃellement supprimÃ.
$ df .
Sys. de fich. 1K-blocs Occupà Disponible Capacità Montà sur
/dev/md0 6226580 2789028 3437552 45% /
$ kill %1
$ df .
Sys. de fich. 1K-blocs Occupà Disponible Capacità Montà sur
/dev/md0 6226580 2789020 3437560 45% /
[1]- ComplÃtà ./test
$ programme modifiÃ
programme modifiÃ
programme modifiÃ
programme modifiÃ
[...]
J'ai rÃcupÃrer 8 ko (2789028-2789020). L'ancien programme 'test'
n'existe plus. Ni en mÃmoire vive, ni sur le disque dure.
Ãvidemment, ce qui marche pour mon petit programme test, marche aussi
pour les librairies. Ãa marche pour tous les fichiers en fait (sauf
parfois pour les systÃmes de fichier rÃseau).
> urpmi va installer la nouvelle
> version, sans ecraser celle en cours, et mettre simplement à jour des
> liens ? Dans ce cas, est ce que ca signifit qu'il n'est pas forcement
> necessaire de relancer l'application pour avoir la nouvelle version et
> qu'on peut en avoir plusieurs sur le disque ? Je ne pense pas, parce
> qu'apres le telechargement et "l'installation" par urpmi, je n'ai pas
> plus d'espace disque utilisà ...
>
> Si quelqu'un avait une petite explication, ca serait sympa :)
>
> Alex
>
> PS: hop hop, a la suite de ce mail, un autre, sur une recommandation de
> bouquins
>
> ----------------------------------
> Informations, dÃsabonnement, rÃgles, obligations sur la liste Aide-Linux :
> http://lists.ze-linux.org/howto_ml.html
----------------------------------
Informations, désabonnement, règles, obligations sur la liste Aide-Linux :
http://lists.ze-linux.org/howto_ml.html
Aide Linux - Liste de diffusion Ze-Linux