Cambiaré mi sistema de 32 bits a 64 bits, y será el mismo que tenía antes, Debian Squeeze, pero no quiero perder los programas que instalé antes, porque no recuerdo el nombre de todos ellos.
Entonces, quería que un comando hiciera esto por mí, guardar el nombre de todos los programas que instalé en un archivo, pero no los programas estándar que venían con el sistema, y cuando estoy usando el otro sistema mencionaría el nombre de el archivo y su directorio para que todo se instale automáticamente.
Una pregunta más: ¿es posible hacer esto con programas que se instalaron manualmente dpkg-i package.deb
? Si es así, ¿cómo puedo hacer eso?
En las versiones actuales de Debian, puede obtener una lista de paquetes instalados explícitamente con
Para aquellos que ejecutan versiones antiguas de Debian donde
apt-mark showmanual
no existe, o si desea realizar selecciones adicionales, puede usar aptitude.~i
coincide con los paquetes instalados;!~M
omite los paquetes que se instalaron automáticamente como una dependencia de algún otro paquete.-F %p
cambia el formato de salida para incluir solo el nombre del paquete.Luego puede instalar esos paquetes con
Debian squeeze no tiene
apt-mark showmanual
, pero tieneapt-mark showauto
listas de paquetes instalados automáticamente. Si utiliza esto, puede enumerar todos los paquetes en el sistema anteriordpkg --get-selections >package.list
, restaurarlos y luego marcar los paquetes automáticos conapt-mark markauto
. Para su caso de uso (32 bits a 64 bits), es probable que este enfoque deje algunas bibliotecas marcadas como manuales, porque tienen nombres diferentes en arquitecturas diferentes.Tenga en cuenta que si el caso de uso es reproducir una instalación idéntica, en lugar de mantener el conjunto de paquetes pero cambiar la arquitectura, ahora hay una herramienta llamada apt-clone (distribuida en Debian desde wheezy) que hace todo automáticamente.
fuente
acl
podría considerarse una parte importante del sistema base y, por lo tanto, se marcaría como instalado manualmente. Fue instalado "manualmente" por el instalador inicial en lugar de por el usuario, pero aun así, el significado de "instalado automáticamente" es "puede eliminarlo de manera segura si no interrumpe las dependencias", y los paquetes fundamentales necesarios para hacer el el sistema funciona correctamente no se ajusta a la factura.No veo una manera simple y estándar de hacerlo. Me temo que tendrá que jugar con
dpkg
los registros y las opciones, porquedpkg
no distingue los "programas estándar que vienen con el sistema" y los demás.ESTO NO SERÁ RECTAMENTE ADELANTE , prefiero dejarlo claro usando texto en negrita en mayúscula , pero puede hacer algo como esto
Extraiga la lista de software instalado de los
/var/log/dpkg.log*
archivos.Elimine los instalados durante la instalación del sistema. (Use el tiempo de instalación para detectarlos)
Guarde la lista en el
dpkg --get-selections
formatoEt voilà! Cuando su sistema esté funcionando, reinstale sus programas con
fuente