¿Cuál es la diferencia entre yum, apt-get, rpm, ./configure && make install?

126

Soy nuevo en Linux y estoy ejecutando CentOS. He encontrado cuatro formas de actualizar o instalar software.

Hasta ahora, he visto:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

Ese último es un verdadero dolor, especialmente proveniente de Windows, donde la instalación de un programa suele ser un clic y un buen asistente de instalación.

Entonces, mis preguntas son:

  • ¿Por qué hay tantas formas diferentes de hacer esto en Linux?
  • ¿Cuál recomienda usar y por qué?
  • ¿Hay alguna otra forma de instalar programas en Linux?
Saif Bechan
fuente
Además, ¿qué yumvs up2date. Nunca he sido claro en la diferencia.
Josh
apt-getes para Debian, y realmente no debería aparecer en CentOS ...
Kyle Strand

Respuestas:

114

Todas estas herramientas instalan software en su sistema, pero están trabajando en diferentes niveles.

  • ./configure && make install

    Ejecutar ./configure && make installcompila e instala las bibliotecas o ejecutables directamente desde el código fuente.

    El make installpaso básicamente solo copia los archivos finales en su sistema. Muchas fuentes vienen con una make uninstallregla especial para eliminarlas nuevamente, pero esto no está garantizado y, por supuesto, solo funciona mientras tenga las fuentes configuradas. Además, esto no se ocupa de las dependencias requeridas.

    A menudo solo existe el código fuente disponible para un determinado paquete, por lo que este es el único camino a seguir. Además, ./configuregeneralmente acepta muchas opciones que le permiten personalizar su paquete.

    No poder averiguar qué software instaló qué archivo, y la falta de una forma confiable de eliminarlos del sistema son las principales deficiencias de este enfoque.

  • RPM (Redhat Package Manager)

    rpminstala software ya configurado y compilado en su sistema y también viene con una desinstalación para deshacerse de él nuevamente. Los paquetes deben ser creados por alguien. Esta persona ya decidió qué características incluir y cómo integrar mejor el paquete en el diseño de su sistema. También viene con una lista de dependencias.

    Dado que los rpms se usan para muchas distribuciones allí, a menudo querrá asegurarse de que este rpm se haya escrito para su distribución, de modo que las rutas de instalación, las dependencias y otras cosas de limpieza se integren bien.

    En los sistemas Debian, el formato de paquete equivalente es .deby la instalación y la base de datos son manejadas por la dpkgherramienta.

  • Ñam

    yumes una envoltura adicional alrededor rpm. Mantiene su propia base de datos de archivos rpm disponibles para su distribución, generalmente en repositorios en línea. Para las versiones estables de la mayoría de las distribuciones, todos los paquetes dentro de esa base de datos jugarán bien entre sí. Se puede buscar en esta base de datos (por ejemplo, con yum search some_name).

    También resolverá automáticamente las dependencias por usted. Los paquetes (y con un poco de ayuda adicional sus dependencias) también se pueden desinstalar fácilmente.

    En los sistemas Debian, el repositorio equivalente y las herramientas de resolución de dependencia son proporcionadas por Apt ( apt-gety aptitude).

Para resumir: si solo quieres un software, prueba yumprimero. Si no está disponible allí, puede intentar encontrar un rpmpaquete existente . Si no hay ninguno o tiene algunos requisitos especiales, compile desde la fuente.

Benjamin Bannier
fuente
más o menos lo que iba a decir. agregado en una mención de los equivalentes de Debian y retocado el formato.
quack quijote
2
@quack: Gracias. ¿Pero no podemos todos callarnos apt-geto todavía se recomienda para algo?
Benjamin Bannier
2
tienes razón, la aptitud es probablemente la mejor para recomendar; Incluí apt-get porque es ampliamente conocido, y un lector que no sabe sobre aptitude puede haber oído hablar de apt-get .
quack quijote
44
¿Qué hay de malo con apt-get?
recursivo el
55
@recursive: en algún momento apt-getno registró dependencias automáticas y las dejó atrás después de una desinstalación, mientras que aptitudeluego introdujo el seguimiento de dependencias adecuado. Además, también proporcionó algunas características adicionales que no están disponibles en apt-get. No estoy seguro, pero creo que en algún momento apt-gety aptitudedonde se actualizó para usar el mismo backend avanzado que proporciona gran parte de esa funcionalidad.
Benjamin Bannier
5

Yum son RPM son lo mismo, excepto que yum obtiene los paquetes de la red automáticamente y los instala (usando rpm -i) en un solo paso. Debe usarse siempre que sea posible para facilitar la actualización. Úselo rpmsolo cuando no haya un paquete que pueda encontrar yumy use el makemétodo solo cuando no haya un paquete .rpm disponible o necesite cambiar algunas opciones de tiempo de compilación.

marcusw
fuente