Quiero que el Servidor B tenga exactamente la misma configuración que el Servidor A. El Servidor A y B tienen el mismo Arch y el mismo hardware.
Mi plan es tener una lista de todas las cosas instaladas en el Servidor A e instalarla usando la lista en el Servidor B algo así como:
yum -y install $(cat installed.txt)
En el Servidor A, debería usar:
rpm -qa > installed.txt
o:
yum list installed > installed.txt
Las listas parecen ser diferentes y no tengo idea de por qué.
yum list installed
tiene 930 líneas mientras que rpm -qa
tiene 895 líneas, ¿cuál podría ser la diferencia?
diff
editado las salidas (posible después de ordenar)?rpm
list ya que tiene la lista que se puede usar en elyum
comando de su servidor b .Respuestas:
La razón principal de la diferente cantidad de líneas es que la salida producida por
yum
está formateada para que cada campo se alinee verticalmente (independientemente de la longitud del nombre del paquete y / o número de versión). Para ello, utiliza dos líneas para enumerar dichos paquetes y rellena la segunda línea con caracteres de espacio para alinear los campos correctamente. El siguiente resultado (de un cuadro de CentOS 6) muestra que se usan dos líneas para enumerar eldevice-mapper-persistent-data.x86_64
paquete:Sin embargo, esta no es la única razón y se puede ver al masajear la salida de los dos comandos antes de compararlos:
Para la salida del
rpm
comando:Ordénelo de modo que los paquetes que comiencen con una letra mayúscula aparezcan antes que aquellos con minúscula:
Use un
sed
comando para eliminar los números de versión del paquete:Para la salida del
yum
comando:Elimine las dos primeras líneas de encabezado (
Loaded plugins
yInstalled Packages
):Podemos usar
sed
para esto:También podemos usar
sed
para eliminar todas las líneas que son continuación de una lista de paquetes (estas líneas comienzan con varios espacios para que todas las versiones del paquete se alineen).Ahora, podemos usar el
diff
comando para comparar la salida de los dos archivos. Aquí están los resultados del cuadro CentOS 6:Conclusión
Esto muestra que
rpm -qa
también incluye listados de paquetes para las claves públicas de confianza para firmar paquetes, mientras que elyum
comando omite estos paquetes.fuente
Esto es probable que solo formatee las diferencias. yum list hará un montón de ajustes inteligentes al tamaño de su terminal.
Lo que probablemente quieras hacer es usar:
fuente
No estoy completamente seguro de por qué las listas son diferentes, pero sé que esa
rpm -qa > installed.txt
es la forma correcta de encontrar todos los paquetes instalados. Lo buscaráyum installed
tan bien comorpm installed
.Además, el formato de
rpm -qa
salida funcionará mejor con elyum install
comando que desea ejecutar.fuente
yum list installed
me da la salida de la siguiente manera.Ahora,
rpm -qa
tiene lo siguiente para decir.Ambos comandos me dan la misma cantidad de líneas que la salida. Yo iría con la
rpm -qa
lista.Además, de esta respuesta, veo la siguiente información.
Entonces, la diferencia podría ser
yum
resolver las dependencias, perorpm
ha instalado todas las dependencias y, por lo tanto, proporciona una lista más completa.Veo la diferencia real entre
yum
yrpm
como a continuación.El problema más destacado
rpm
es un estado comúnmente conocido por la mayoría de las personas como infierno de dependencia . Este problema ocurre con paquetes que dependen de muchos otros paquetes, algunos de esos paquetes también dependen de muchos otros paquetes. Es de conocimiento común que debe instalar todas las dependencias para que el programa funcione correctamente.rpm
no puede hacer esto automáticamente por usted. Solo puede verificar si todos los paquetes necesarios están instalados antes de instalar el paquete necesario. El seguimiento e instalación manual de cada dependencia es una tarea importante para la mayoría de las personas que solo desean instalar un solo paquete inicialmente.yum
es capaz de rastrear las dependencias de un paquete e instalarlas antes de instalar el paquete que el usuario quería instalar. Esto simplifica todo el proceso, ya que solo necesita saber el nombre del paquete que desea instalar y no preocuparse si los paquetes necesarios se han instalado o no. Los paquetes que no se pueden encontrar en el sistema se buscan en los repositorios disponibles para el sistema.Referencias
http://www.differencebetween.net/technology/difference-between-yum-and-rpm/
fuente
Yum
maneja dependencias y busca paquetes para llenarlos.Yum
ejecuta efectivamente el mismo comandorpm
pero también incluye todos los paquetes necesarios para hacer coincidir las dependencias.yum
es un regalo del cielo para administrar dependencias de paquetes, pero eso es irrelevante cuando simplemente enumera los paquetes instalados en un sistema. Ver James y mi respuesta por la razón de la diferencia.yum list installed
puede crear una salida de dos líneas, si el nombre del paquete y la versión del paquete son largos.fuente