Me gustaría generar una lista de todos los paquetes instalados en un archivo de texto para poder revisarlo e instalarlo de forma masiva en otro sistema. ¿Cómo haría esto?
apt
package-management
Ivan
fuente
fuente
Respuestas:
Ubuntu 14.04 y superior
La
apt
herramienta en Ubuntu 14.04 y superior lo hace muy fácil.Versiones mas antiguas
Para obtener una lista de paquetes instalados localmente, haga esto en su terminal:
(La
-v
etiqueta "invierte" grep para devolver líneas no coincidentes)Para obtener una lista de un paquete específico instalado:
Para guardar esa lista en un archivo de texto llamado
packages
en su escritorio, haga esto en su terminal:Alternativamente, simplemente use
(no es necesario ejecutar ninguno de estos comandos como superusuario, por lo que aquí no se necesita
sudo
ninguna otra variante)fuente
cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade
fuentesudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
Hace el truco.apt list installed
. Algún día deberíamos dejar de fallar sistemáticamente el principio de "mantener las cosas simples fáciles".Para obtener solo los paquetes que se instalaron expresamente (no solo como dependencias), puede ejecutar
Esto también incluirá una breve descripción, que puede desear. Si no, también agregue la opción
-F '%p'
, como lo menciona karthick87.Parece que otra opción es copiar el archivo
/var/lib/apt/extended_states
, que es una base de datos de archivos de texto en este formato:Auto-Installed: 0
indica que el paquete se instaló expresamente y no es solo una dependencia.fuente
apt-get
?Para enumerar todos los paquetes instalados intencionalmente (no como dependencias) mediante comandos apt, ejecute lo siguiente:
Esto proporciona una vista basada en el tiempo inverso, con los comandos más antiguos enumerados primero:
Los datos de instalación también muestran el uso sináptico, pero sin detalles (lo mismo con la fecha de instalación):
proporcionando lo siguiente:
fuente
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??Cree una copia de seguridad de los paquetes que están instalados actualmente:
Luego (en otro sistema) restaure las instalaciones de esa lista:
Para deshacerse de los paquetes obsoletos:
Para instalarse como en el momento de la copia de seguridad (es decir, para instalar paquetes establecidos por
dpkg --set-selections
)fuente
ubuntu-desktop
se desinstaló, probablemente debido a uno de los comandos dpkg. ¡cuidado, me tomó horas reparar el daño!sudo apt-mark hold name-your-package
. Esto evitará que apt-get se actualice a la versión actual, que es el valor predeterminado para el proceso de actualización.estado de las páginas man:
Por lo tanto, solo debe dar una lista de paquetes instalados explícitamente (aunque esto incluye los paquetes que formaban parte de la instalación inicial predeterminada) sin todas las dependencias incluidas debido a la instalación de estos paquetes.
Para generar el resultado en un archivo de texto:
fuente
apt-mark showmanual
realidad no. También enumera toneladas de paquetes instalados automáticamente, probablemente parte de la instalación base.apt list --manual-installed
.dpkg-query
(en lugar dedpkg --get-selections
, que enumera algunos paquetes que no están instalados) de la siguiente manera:O:
fuente
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
en el segundo sistema, hice esto para que instale los paquetes.apt-get install -y $(< installed-pkgs)
hará que apt-get se ejecute solo una vez y se encargue de todas las dependencias a la vez.sudo apt-get build-dep name-package; sudo apt-get install name-package;
?Para enumerar todos los paquetes instalados,
o
o
Nota:
Obtendrá el resultado 1.txt en su carpeta de inicio o puede especificar su propia ruta.
fuente
Puede usar Synaptic para guardar el estado actual de su paquete instalado. En Synaptic, seleccione "archivo / guardar marcas", ingrese el nombre del archivo para guardar el estado y asegúrese de marcar la casilla "Guardar estado completo, no solo cambios".
El archivo guardado a partir de esto se puede cargar en una nueva máquina usando "marcas de archivo / lectura" en Synaptic.
fuente
Recomiendo usar blueprint . Aunque está diseñado para servidores, también se puede usar desde escritorios. Creará un script de shell / chef / puppet que puede usar para reinstalar todos sus paquetes.
fuente
Desea reinstalar los paquetes ahora allí en 12.04, ¿verdad?
Si es así, es muy fácil. Necesitará una "cuenta de inicio de sesión único de Ubuntu". (Créelo antes de reinstalar para que su sistema esté sincronizado).
Vaya al Centro de software y busque la opción "Sincronizar entre computadoras ..." en el menú Archivo.
Cuando haga clic en él, verá su computadora registrada y una lista de todas las aplicaciones en su computadora.
Cuando instale fresh, esa computadora se considerará una computadora nueva.
Solo tiene que iniciar sesión en su cuenta de Ubuntu y se mostrará su computadora anterior.
Haz click en eso; obtendrá una lista de todas las aplicaciones. Seleccione "instalar" en la aplicación que desea instalar.
fuente
También hay una herramienta llamada Aptik (línea de comandos y GUI) que puede ayudarlo a ver una lista de todos los paquetes instalados, con la opción de seleccionar / deseleccionar algunos de ellos, hacer una lista de respaldo y luego restaurar el mismo conjunto de paquetes en otro sistema
Instalar:
Más información: https://teejeetech.in/aptik/
Como se puede ver en la captura de pantalla, Aptik también le permite hacer copias de seguridad y restaurar PPA , que sin duda será necesario para instalar algunos de los paquetes instalados.
fuente
apt-get install aptik-gtk
, asíAPT-Clone es utilizado por
ubiquity
(instalador de Ubuntu) para el proceso de actualización. Es mucho mejor que ladpkg --get-selections
solución porque:Cómo utilizar
Instalar en pc
Hacer una copia de seguridad
Restaurar copia de seguridad
Restaurar a una versión más reciente:
Crea un archivo tar comprimido con gzip que se puede editar y revisar fácilmente antes de restaurarlo en otras máquinas. Aquí un ejemplo de su estructura:
fuente
Hay una gran explicación en Unix StackExchange que describe cómo usar aptitude para enumerar paquetes no instalados como dependencias, y cómo comparar esa lista con la lista de paquetes predeterminados para su versión de Ubuntu.
Para obtener el archivo de manifiesto para las versiones de escritorio de 12.04 y posteriores, visite este sitio , elija su versión y desplácese hacia abajo debajo de las imágenes del CD hasta la sección de archivos. Encontrará algo como "ubuntu-12.04.4-desktop-amd64 + mac.manifest" que coincide con su arquitectura.
Para las versiones de servidor, deberá obtener el archivo de manifiesto de la ISO que se utilizó para instalar el sistema original. Para un servidor VPS o en la nube, su proveedor puede hacer que las imágenes estén disponibles o puede que necesite contactarlas.
Aquí hay un ejemplo usando el código de la publicación referenciada, junto con modificaciones para instalar en el nuevo servidor.
Servidor anterior (código de otra publicación, salida guardada en el archivo):
En el nuevo servidor, copie el archivo usando scp, luego use sed para agregar 'instalar' a cada línea (-i realiza un reemplazo en línea). Luego puede usar la lista como entrada para 'dpkg --set-selections' e instalar los paquetes con apt-get:
Antes de comenzar esta tarea, recomiendo leer y comprender todas las partes de la publicación mencionada al principio, y luego consultar la guía de referencia de aptitud para obtener detalles sobre los patrones de búsqueda.
fuente
Puede mirar el
apt
registro debajo/var/log/apt/
y eldpkg
registro debajo/var/log/
y puede obtener la lista de los paquetes instalados con solo un comando:
fuente
Me sorprende que el
apt-cache
comando diseñado exactamente para este propósito no se haya mencionado anteriormente ...Para más información, ejecute
apt-cache --help
:fuente
apt --installed list
da el mejor resultado (como se sugiere en la respuesta superior anterior. Aunqueapt-cache pkgnames
parece hacer el truco a primera vista, enumera "todos los paquetes en el sistema" (según el texto de ayuda anterior), que también incluye paquetes que apt conoce pero en realidad no están instalados. Hay una--installed
opción pero parece que no funcionapkgnames
.apt-cache pkgnames | wc -l
da55909
paquetes (el sistema lo sabe), mientras queaptitude search '~i!~M' | wc -l
da2160
(paquetes instalados explícitamente, sin dependencias).Para el resumen completo ver:
https://help.ubuntu.com/community/SwitchingToUbuntu/FromLinux/RedHatEnterpriseLinuxAndFedora#Command_Line_Tools
a mitad de la página:
fuente
El siguiente comando también enumerará todos los paquetes instalados,
fuente
/var/log/dpkg.log*
obtener todos los registros rotados.Ayude a este wiki de la comunidad: agregue soluciones actualizadas.
dpkg, xargs y apt-get
Este comando debe lograr la creación de un archivo de texto que contiene los paquetes instalados:
Para realizar la instalación masiva de los paquetes enumerados, deberá editar 'package_list.txt'. Elimine las líneas extrañas en la parte superior del archivo con un editor de texto. Luego puede usar este comando para instalar paquetes desde el archivo creado usando:
apt-cache, xargs y apt-get
Utilice este método solo si desea que todos los paquetes actuales se instalen utilizando la lista ( que incluye la instalación automática, etc.).
Envíe la respuesta de 'apt-cache pkgnames' a un archivo que simplemente llamaremos "package_list.txt". Puede lograr esto con:
Luego, cuando desee instalar paquetes desde "package_list.txt", usaría este comando:
apt-mark, xargs y apt-get
Podemos usar el comando
apt-mark showmanual
para dar una lista de paquetes que se instalaron manualmente o inicialmente con Ubuntu. Queremos enviarlo a un archivo que llamaremos "package-list.txt". Use este comando para lograr eso:El comando que usaríamos para instalar paquetes desde el archivo "package_list.txt" está debajo.
Utilidad de migración de Aptik
Para obtener información sobre Aptik, intente visitar su página oficial y, para obtener una captura de pantalla, haga clic aquí o vea el final de esta sección.
Instalar Aptik es simple. Sigue estos pasos:
Agregue el PPA con:
sudo add-apt-repository -y ppa:teejee2008/ppa
Actualice apt con el siguiente comando.
sudo apt-get update
Instale Aptik usando:
sudo apt-get install aptik
fuente
apt-mark showmanual
incluye Bash, Unity y Xorg, entre otros. ¿Se supone que deben estar allí?Para guardar una lista de paquetes instalados en un archivo llamado
installed_packages.txt
, simplemente ejecute:fuente
Creo que es interesante notar
apt list --installed
odpkg-query --list
usar el archivo llamado/var/lib/dpkg/status
detrás, donde toda la información sobre los paquetes es barba.Entonces, si desea lidiar con la lista súper extendida de paquetes solo
cat /var/lib/dpkg/status
.Nota: no modifique el
/var/lib/dpkg/status
archivo.fuente
Además de los paquetes APT , muchos paquetes GUI se distribuyen actualmente como snaps .
Si no puede encontrar su paquete
apt list --installed
, intentesnap list
:También es una buena idea agregar
/snap/bin
a la RUTA para que pueda iniciarlos desde el terminal (hecho automáticamente para usuarios no root).fuente
El paquete
dctrl-tools
proporciona lagrep-status
herramienta para obtener la lista de los paquetes marcados como instalados en su sistema:Uso:
ver :
man dctrl-tools
fuente
https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :
fuente
Hay muchas formas de hacer eso. En caso de que esté usando CentOS como yo, puede usar estos: 1.
yum list installed
2.rpm -qa
fuente