J'ai installé ffmpeg à partir de sources avec l'aide de cette page. https://trac.ffmpeg.org/wiki/CentosCompilationGuide
J'ai remarqué que la plupart de ce tutoriel appelle make distclean
après make install
. Mais seuls libvpx appelle make clean
après l'installation.
Selon ce document,
http://www.gnu.org/software/automake/manual/automake.html#Clean
make clean
supprime tous les fichiers make
créés et make distclean
supprime tous les fichiers ./configure
créés.
nettoyer
Effacez de l'arborescence de construction les fichiers créés par make all.
rendre propre
Supprimez également tout ce qui est créé ./configure.
Je comprends que cela make distclean
est demandé pour la prochaine installation, mais je ne comprends pas pourquoi make clean
est appelé après l'installation.
Le ffmpeg installé fonctionne sans problème. J'ai donc posé cette question parce que je veux seulement améliorer mes connaissances sur Linux. Il serait très utile que quelqu'un me donne une explication.
Réponses:
Le paramètre utilisé après
make
dépend uniquement du ou des développeurs qui ont écrit leMakefile
. La documentation que vous référerez plus tard, Autotools, n'est qu'une des nombreuses façons de créer un fichierMakefile
.La norme typique
make clean
supprime tous les fichiers intermédiaires etmake distclean
rend l'arborescence telle qu'elle était lorsqu'elle n'était pas goudronnée (ou quelque chose d'assez proche), y compris la suppression de toute sortie de script de configuration. C'est ainsi que le noyau Linux fonctionne par exemple.En d'autres termes, cela dépend totalement des développeurs pour chacune de ces bibliothèques, et c'est pourquoi parfois c'est le cas
clean
et d'autres foisdistclean
. Soit dit en passant, vous n'avez pas besoin d'exécuterclean
/distclean
- Je suppose qu'ils vous ont exécuté juste pour économiser de l'espace disque.make install
copie généralement les fichiers dans le répertoire de destination (dépendant à nouveau des développeurs) - généralement des endroits comme/usr/lib
ou/usr/bin
(également déterminé par le script de configuration, s'il s'agit d'un système de construction Autotools)Ces nuances sont la principale raison pour laquelle les gens utilisent des systèmes de gestion de paquets comme les paquets RPM ou Debian.
la source
À ma connaissance, il s'agit simplement de sécuriser l'espace disque. Après avoir compilé un programme, vous aurez beaucoup de fichiers, par exemple des fichiers objets qui ne sont plus nécessaires, car ils sont liés entre eux dans les binaires. Tout peut être recréé en passant à nouveau du temps CPU.
Prenez cet exemple avec le
ffmpeg
code actuel :git
dépôt, la source prend 53 160 kBmake clean
réduit cela à 53 636 kBmake distclean
nous sommes presque au niveau juste après le clonage: 53 188 kBla source
Pourquoi l'étape libvpx utilise
make clean
au lieu demake distclean
Au moment de la rédaction, le guide libvpx n'avait pas de règle
Makefile
pour la cibledistclean
, ilclean
a donc été utilisé à la place.Pourquoi
make (dist)clean
est inclus aprèsmake install
make distclean
/make clean
est inclus après chacunmake install
simplement comme mesure de précaution pour fournir une "table rase" aux utilisateurs qui reviennent en arrière, modifient les options de configuration et recompilent (ce qui s'est produit plus souvent que prévu).Dans une version précédente du guide de compilation, sans prévention
make distclean
, l'un de ces utilisateurs rencontrait parfois des résultats inattendus.Et si
make distclean
/make clean
donne une erreur?Comme ça:
ou ca:
Ignorez-le. Cela signifie simplement que vous avez probablement couru
make distclean
deux fois, ce qui est inoffensif.la source
make distclean
pour libvpx.