Instalé ffmpeg desde las fuentes con ayuda de esta página. https://trac.ffmpeg.org/wiki/CentosCompilationGuide
Noté que la mayoría de este tutorial llama make distclean
después make install
. Pero solo libvpx llama make clean
después de la instalación.
Según este documento,
http://www.gnu.org/software/automake/manual/automake.html#Clean
make clean
elimina todos los archivos que se make
crearon y make distclean
elimina todos los archivos que se ./configure
crearon.
hacer limpia
Borre del árbol de compilación los archivos creados por make all.
hacer distclean
Además borre cualquier cosa ./configure creado.
Entiendo que make distclean
se requiere para la próxima instalación, pero no podía entender por qué make clean
se llama después de la instalación.
El ffmpeg instalado funciona sin problemas. Entonces hice esta pregunta porque solo quiero mejorar mi conocimiento sobre Linux. Sería muy útil que alguien me diera una explicación.
Respuestas:
El parámetro utilizado después
make
solo depende de los desarrolladores que escribieron elMakefile
. La documentación a la que hace referencia más adelante, Autotools, es solo una de las muchas formas de crear unMakefile
.El estándar típico es
make clean
eliminar todos los archivos intermedios, ymake distclean
hace que el árbol esté como estaba cuando no estaba alquilado (o algo bastante parecido), incluida la eliminación de cualquier salida del script de configuración. Así es como funciona el kernel de Linux, por ejemplo.En otras palabras, depende totalmente de los desarrolladores para cada una de esas bibliotecas, y es por eso que a veces es así
clean
y otras veces lo esdistclean
. Por cierto, no necesita ejecutarclean
/distclean
- Supongo que tienen que ejecutarlo solo para ahorrar espacio en disco.make install
generalmente copia los archivos en el directorio de destino (nuevamente dependiente de los desarrolladores), generalmente coloca como/usr/lib
o/usr/bin
(también determinado por el script de configuración, si es un sistema de compilación de Autotools)Estos matices son la razón principal por la que las personas usan sistemas de administración de paquetes como paquetes RPM o Debian.
fuente
A mi entender, es simplemente para ahorrar espacio en disco. Después de compilar algún programa, tendrá una gran cantidad de archivos, por ejemplo, archivos de objetos que ya no son necesarios, ya que están vinculados entre sí en los archivos binarios. Todo se puede recrear gastando nuevamente algo de tiempo de CPU.
Tome este ejemplo con el
ffmpeg
código actual :git
repositorio, la fuente toma 53 160 kBmake clean
reduce esto a 53 636 kBmake distclean
que estamos casi al nivel justo después de la clonación: 53 188 kBfuente
¿Por qué utiliza el paso libvpx en
make clean
lugar demake distclean
Al momento de escribir la guía, libvpx no tenía ninguna regla
Makefile
para el objetivodistclean
, por lo queclean
se utilizó en su lugar.¿Por qué
make (dist)clean
se incluye despuésmake install
make distclean
/make clean
se incluye después de cada unomake install
simplemente como medida de precaución para proporcionar una "lista limpia" para los usuarios que regresan, cambian las opciones de configuración y vuelven a compilar (lo que ocurre con más frecuencia de lo esperado).En una versión anterior de la guía de compilación, sin el preventivo
make distclean
, uno de estos usuarios en ocasiones encontraría resultados inesperados.¿Qué pasa si
make distclean
/make clean
da un error?Me gusta esto:
o esto:
Ignoralo. Simplemente significa que probablemente corriste
make distclean
dos veces, lo que es inofensivo.fuente
make distclean
para libvpx.