Linux Mint tiene un agradable Administrador de actualizaciones basado en GUI con niveles de actualización seleccionables. Los valores predeterminados son para los niveles 1 a 3 de un total de 5 niveles posibles. Sin embargo, a menudo me encargo de tareas administrativas para varios sistemas de escritorio Linux Mint usando SSH en lugar de visitar las máquinas físicas. ¿Cómo logro la misma funcionalidad desde la línea de comando?
Ya conozco los comandos apt-get update
y apt-get upgrade
, pero hasta donde yo sé, esos comandos todavía funcionannotener alguna funcionalidad equivalente al comportamiento de cinco niveles de Update Manager ( /usr/lib/linuxmint/mintUpdate/mintUpdate.py
).
Actualización: cuando planteé esta pregunta originalmente, estaba buscando una solución Linux Mint 17. Ahora estoy ejecutando 18.3 en algunos de nuestros sistemas y he podido brindarles una respuesta.
Respuesta1
No había alternativa ya que mintUpdate.py era GUI (gtk) solo hasta que decidí escribir una. Lo describí en mi blog.CLI de actualización de Linux MintTambién puede encontrar el enlace a gitHub. También publicaré algunas capturas de pantalla.
Respuesta2
En Mint 19, hay una mintupdate-cli
herramienta que tiene las mismas funciones que la versión GUI mintupdate
. Obtenga el uso con su -h
opción.
Sin embargo, no encontré su página de manual (con man mintupdate-cli
). Entonces no puedo encontrar sus códigos fuente y autores en la propia aplicación. Aunque después de algunas búsquedas, parece que es parte delactualización perfectaproyecto:
https://github.com/linuxmint/mintupdate/blob/master/usr/lib/linuxmint/mintUpdate/mintupdate-cli.py
Respuesta3
Esta respuesta se aplica a Linux Mint 18.2 y posteriores, aunque la he probado solo para 18.3.
mintupdate-tool
Ahora se incluye con la distribución una herramienta de línea de comandos llamada . Se anuncia en las notas de la versión 18.2 como "Esta herramienta admite todas las funciones disponibles en la interfaz de usuario, incluida la selección de niveles, actualizaciones de seguridad, actualizaciones del kernel y listas negras". Esa "UI" se refiere al Administrador de actualizaciones y esa afirmación está muy lejos de ser cierta, pero es un gran paso adelante.
No hay ninguna man
página para esta herramienta, entonces:
$ mintupdate-tool --help
usage: mintupdate-tool [-h] [-k | -nk] [-s] [-r] [-d] [-y]
[--install-recommends] [-l LEVELS]
command
positional arguments:
command command to run (possible commands are: list, upgrade)
optional arguments:
-h, --help show this help message and exit
-k, --kernel ignore settings and include all kernel updates
-nk, --no-kernel ignore settings and exclude all kernel updates
-s, --security ignore settings and include all security updates
-r, --refresh-cache refresh the APT cache
-d, --dry-run simulation mode, don't upgrade anything
-y, --yes automatically answer yes to all questions
--install-recommends install recommended packages (use with caution)
-l LEVELS, --levels LEVELS
ignore settings and restrict to this list of levels
Las preferencias de Update Manager determinan el comportamiento predeterminado. Esas preferencias están en el dconf
almacén de datos del usuario activo (esquemacom.linuxmint.actualizaciones), por lo que anteponer el comando con simple sudo
no cambia esto. Esto es importante porque las actualizaciones no son posibles sin privilegios de root.
Advertencia: No hay forma de excluir actualizaciones de seguridad si incluirlas está habilitado en las preferencias de Update Manager.
El análisis de opciones para “--levels” es un poco descuidado y poco obvio. LEVELS es una cadena en la que se busca la apariencia de los dígitos del 1 al 5. No es un umbral ni un rango. Tampoco busca caracteres no válidos, por lo que "14", "1-4", "1,4", "4..1" y "two4u14me" solo significan los niveles 1 y 4.
Para simplemente enumerar las actualizaciones disponibles que se instalarían de forma predeterminada según las preferencias del Administrador de actualizaciones del usuario, probablemente desee esto:
$ mintupdate-tool -r list
Probablemente no desees la opción "-r" en los siguientes comandos para evitar sorpresas.
Para realizar un ensayo de lo que haría una actualización real con esta herramienta:
$ mintupdate-tool --dry-run upgrade
Para hacer realmente la misma actualización que obtendríamos si usáramos el Administrador de actualizaciones sin modificar las selecciones mostradas:
$ sudo mintupdate-tool upgrade
En mi opinión, es un descuido importante no incluir una columna de tipo de actualización para el comando "lista" tal como aparece en Update Manager y no proporcionar ningún medio para consultar la descripción de una actualización o el registro de cambios. Mi ejemplo actual:
$ sudo mintupdate-tool -l 12345 list
4 package mesa 17.2.4-0ubuntu1~16.04.4
Esa es una actualización de nivel 4 llamada "mesa", que no es un nombre de paquete, por lo que no puedo consultarla con ninguna otra herramienta de línea de comandos que yo sepa. Sé por Update Manager que esta actualización en particular en realidad incluye 9 paquetes diferentes, pero eso es hacer trampa.