Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment tracer l'installation d'un logiciel

4 réponses
Avatar
carra_bea
Je me pose la question suivante. J'installe un progamme qui n'est pas
un rpm ou un .deb en faisant un make install après une
compilation.Comment avoir une trace de tous les fichiers qui sont
installés ?
J'ai essay é avec l'option -cmin de find en tapant juste après
l'install:

find / -path '/proc' -prune -o -cmin -1 -print

mais si le make install traffique certains fichiers de configuration
du système, ils apparaissent dans la liste. Or moi je ne veux voir que
les fichiers qui ont été installés.

Je pourrais faire un ls -lR / > toto
installer
puis refaire ls -lR / > titi
et diff toto titi

mais je trouve ça vraiment lourd ....

Merci de votre aide.

4 réponses

Avatar
ericb
Bonjour,

Je me pose la question suivante. J'installe un progamme qui n'est pas
un rpm ou un .deb en faisant un make install après une
compilation.Comment avoir une trace de tous les fichiers qui sont
installés ?



Autre approche :

apt-get install checkinstall

Bon d'accord, si tu as Debian, mais peut-être existe-t-il l'équivalent
en rpm ?


Sinon, make -n install peut aussi te donner beaucoup d'infos...


Mes 2 centimes d'euro



--
NO ePATENTS / NON AUX BREVETS SUR LES LOGICIELS. See / Voir
http://swpat.ffii.org/

eric bachard

Avatar
Cem
Dans l'article , betty
Je me pose la question suivante. J'installe un progamme qui n'est pas
un rpm ou un .deb en faisant un make install après une
compilation.Comment avoir une trace de tous les fichiers qui sont
installés ?
J'ai essay é avec l'option -cmin de find en tapant juste après
l'install:

find / -path '/proc' -prune -o -cmin -1 -print

mais si le make install traffique certains fichiers de configuration
du système, ils apparaissent dans la liste. Or moi je ne veux voir que
les fichiers qui ont été installés.

Je pourrais faire un ls -lR / > toto
installer
puis refaire ls -lR / > titi
et diff toto titi

mais je trouve ça vraiment lourd ....


Ce sont déjà de très bonnes idées.
La 1ère me semble meilleure.
On peut encore l'améliorer en faisant:
touch /tmp/TIMEREF
make install
find / -path '/proc' -prune -o -cnewer /tmp/TIMEREF -print|sort|vi -

On a le résultat trié sous vi. C'est facile de repérer les éventuels
fichiers de config modifiés et de les supprimer (d'ailleurs, vu qu'ils
ne sont pas nouveau, il me semble qu'ils ne devraient pas être dans la
liste puisqu'ils ont été créé APRES le fichier /tmp/TIMEREF, non?) avant
d'enregistrer la liste dans un fichier afin d'en garder mémoire.

Une page intéressante
http://www.linuxfromscratch.org/lfs/faq.html#why-not-package-management
qui discute d'un outil de gestion de paquets pour le projet LFS.

J'ai personnellement testé install-log (qui en gros fait ce que fait la
commande find ci-dessus) et checkinstall (qui permet de transformer un
make install en paquet RPM/debian/Slackware à installer). Ce sont des
produits intéressants mais pas parfaits.
install-log ne repère notamment que les fichiers modifiés. Si le "make
install" a la malencontreuse idée de copier des fichiers sans mettre à
jour la date/heure de modif, le fichier n'est pas dans la liste. C'est
rarement le cas mais ça arrive.
Je n'ai pas assez utilisé checkinstall pour voir s'il avait des failles
ou non. Mais c'est un outil très intéressant puisqu'il permet de créer
des paquets qu'on peut ensuite gérer avec son "package manager"
habituel.

Avatar
Rakotomandimby
betty wrote:


mais je trouve ça vraiment lourd ....


on ne peut pas tout avoir

Moi ce que je fais , c'est que je lis le Makefile principal , celui au top
de l'arborescence des sources .

dedans on trouvera une variable DESTDIR ou prefix , en fonction de l'humeur
de la personne qui a fait le Makefile ( je pense )

ensuite, au lieu de taper un bete make install , je mets un argument qui va
installer ailleurs

donc en supposant que c'est une variable qui se nomme "prefix" que j'ai
trouvé dans le Makefile , je fais

make prefix=/tmp/nom_du_logiciel/usr install

cela va tout installer dans $prefix

du coup , c'est gagné j'ai _LA_ liste et j'ai qu'a refaire un autre make
install pour faire l'install finale .

et puis je fais ce que je veux des fichiers que j'ai recupere dans tmp
( listing + creation de script pour les virer ensuite , eventuellement )

Merci de votre aide.


2 rien .
--
http://mrakotom.free.fr

Avatar
henri
Il faut utiliser le programme checkinstall (
http://asic-linux.com.mx/~izto/checkinstall/) à la place du make
install, il fait l'installation et crée directement un rpm.

Henri
Je me pose la question suivante. J'installe un progamme qui n'est pas
un rpm ou un .deb en faisant un make install après une
compilation.Comment avoir une trace de tous les fichiers qui sont
installés ?
J'ai essay é avec l'option -cmin de find en tapant juste après
l'install:

find / -path '/proc' -prune -o -cmin -1 -print

mais si le make install traffique certains fichiers de configuration
du système, ils apparaissent dans la liste. Or moi je ne veux voir que
les fichiers qui ont été installés.

Je pourrais faire un ls -lR / > toto
installer
puis refaire ls -lR / > titi
et diff toto titi

mais je trouve ça vraiment lourd ....

Merci de votre aide.