¿Qué hace "sudo apt-get update"?

Respuestas:

551

En pocas palabras, en apt-get updaterealidad no instala nuevas versiones de software. En cambio, actualiza las listas de paquetes para las actualizaciones de los paquetes que necesitan actualización, así como los paquetes nuevos que acaban de llegar a los repositorios.

  • apt-get updatedescarga las listas de paquetes de los repositorios y las "actualiza" para obtener información sobre las versiones más recientes de paquetes y sus dependencias. Hará esto para todos los repositorios y PPA. De http://linux.die.net/man/8/apt-get :

    Se utiliza para volver a sincronizar los archivos de índice del paquete desde sus fuentes. Los índices de los paquetes disponibles se obtienen de las ubicaciones especificadas en /etc/apt/sources.list(5). Siempre se debe realizar una actualización antes de una actualización o dist-upgrade.

  • apt-get upgradebuscará nuevas versiones de paquetes existentes en la máquina si APT conoce estas nuevas versiones apt-get update.

    De http://linux.die.net/man/8/apt-get :

    Se utiliza para instalar las versiones más recientes de todos los paquetes actualmente instalados en el sistema desde las fuentes enumeradas en /etc/apt/sources.list(5). Los paquetes instalados actualmente con nuevas versiones disponibles se recuperan y actualizan; bajo ninguna circunstancia se eliminan los paquetes instalados actualmente, ni se recuperan e instalan paquetes que aún no están instalados. Las nuevas versiones de los paquetes instalados actualmente que no se pueden actualizar sin cambiar el estado de instalación de otro paquete se dejarán en su versión actual. [El énfasis es mío] Primero se debe realizar una actualización para que apt-get sepa que hay nuevas versiones de paquetes disponibles.

  • apt-get dist-upgradehará el mismo trabajo que realiza apt-get upgrade, además de que también manejará de forma inteligente las dependencias, por lo que podría eliminar paquetes obsoletos o agregar otros nuevos. Ver aquí: ¿Qué es "dist-upgrade" y por qué se actualiza más que "actualizar"?

    De http://linux.die.net/man/8/apt-get :

    Además de realizar la función de actualización, esta opción también maneja inteligentemente las dependencias cambiantes con nuevas versiones de paquetes; apt-get tiene un sistema de resolución de conflictos "inteligente" e intentará actualizar los paquetes más importantes a expensas de los menos importantes, si es necesario. El /etc/apt/sources.listarchivo (5) contiene una lista de ubicaciones para recuperar los archivos de paquete deseados. Consulte también apt_preferences (5) para obtener un mecanismo para anular la configuración general de paquetes individuales.

Puede combinar comandos de la &&siguiente manera:

sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg

o para obtener las versiones más nuevas posibles según los requisitos de versión de las dependencias:

sudo apt-get update && sudo apt-get dist-upgrade

Necesita las sudodos veces, pero dado que, sudode manera predeterminada, no le solicita dentro de los 5 minutos más o menos desde la última sudooperación, se le pedirá su contraseña solo una vez (o nada).

ζ--
fuente
11
¿Siempre necesitamos ejecutar sudo apt-get updatecomandos cada vez que instalamos paquetes? ¿Cuál es la desventaja si no lo hacemos?
JohnnyQ
14
@JohnnyQ Si no ejecuta ese comando, entonces puede obtener un paquete desactualizado instalado.
ζ--
ah suena como si fuera una convención entonces. Así que supongo que no es realmente necesario, especialmente si solo está utilizando paquetes básicos con comandos básicos que no se actualizan generalmente. El problema en mi situación es que apt-get updatelleva un tiempo, Internet aquí todavía es primitivo.
JohnnyQ
2
@JohnnyQ, si su actualización de apt-get es lenta, entonces su actualización de apt-get dist también será lenta, por lo que ese no es realmente un argumento para no hacer primero la actualización de apt-get. Por cierto, puede acelerar su actualización de apt-get buscando en la carpeta /etc/apt/sources.d/ para ver si tiene agregados repositorios personalizados y uno de ellos podría no responder, lo que ralentizará todo el proceso de actualización.
Mladen B.
1
Por cierto, "apt" significa Advanced Packaging Tool ( wiki.debian.org/Apt "¿Qué es APT?"). Algo que aprendí el otro día, pensé en compartir. ("apt" aparece a menudo en man apt-get, man apt, pero nunca había visto el acrónimo ampliado antes).
Jgreve
47

Una búsqueda en Google puede darle la definición de casi cualquier comando de terminal, como puede ayudar en la terminal. Por ejemplo,

apt-get --help

sudo apt-get update esencialmente tiene tres partes:

sudo

realiza el siguiente comando con capacidades de superusuario (root). Muchas acciones que requieren modificar archivos del sistema o instalar aplicaciones requieren permisos adicionales para pasar.

apt-get

es una herramienta de línea de comandos que Ubuntu usa para instalar, eliminar y administrar paquetes de software

update

es una opción para el uso del programa apt-get que actualiza las listas de paquetes desde un servidor en Internet. Las listas de paquetes proporcionan a la utilidad apt-get información importante sobre los paquetes de software que puede instalar utilizando apt-get. apt-get usa estas listas para determinar qué software instalar cuando se le da un comando para instalar. Por ejemplo

sudo apt-get install guake

instalaría el terminal Guake tal como aparece actualmente en las listas de software locales de mi computadora. Sin embargo, esta puede no ser la versión adecuada o, si el programa es nuevo, es posible que no esté disponible en absoluto. Por lo tanto, al instalar software con apt-get, normalmente escribe

sudo apt-get update
sudo apt-get install <package>

asegurando que apt-get sepa instalar la versión más reciente del paquete.

Otra fuente útil de información es el help.ubuntu.comsitio. Por ejemplo, si buscó en ese sitio apt-get, encontrará AptGet / Howto como uno de los resultados.

Alex
fuente
Alex, ¿puedo usar básicamente el comando como lo expresaste: "apt-get update apt-get install <package>" Básicamente, se pueden realizar 2 cosas simplemente escribiendo los 2 comandos juntos de esta manera?
Elysium
1
@Elysium Sí, si tienes &&entre ellos comosudo apt-get update&&sudo apt-get install foo bar baz
ζ--
77
Usar &&significa que el segundo comando solo se ejecutará si el primero tiene éxito. Si no le importa el éxito del primer comando, use ;en su lugar.
Flimm
44
Una búsqueda en Google me llevó a esta pregunta / respuesta. Solo para tu información;)
teewuane
19

La ejecución sudo apt-get updatesimplemente asegura que su lista de paquetes de todos los repositorios y PPA esté actualizada. Si no ejecuta este comando, podría estar obteniendo versiones anteriores de varios paquetes que está instalando, o peor aún, problemas de dependencia. Si acaba de agregar un PPA y no lo ha actualizado, nada del PPA funcionará en absoluto, ya que no tiene una lista de paquetes de ese PPA o repositorio.

En pocas palabras: Está altamente recomendable ejecutar sudo apt-get updateantes de instalar, pero puede omitirse si está realmente presionado por el tiempo , a menos que haya cambiado o repositorios PPA desde la última apt-get update.

ζ--
fuente
13

Actualiza la lista de software disponible en su computadora.

Su computadora tiene una lista (como un catálogo) que contiene todo el software disponible que los servidores Ubuntu tienen disponibles. Pero el software y las versiones disponibles pueden cambiar, por lo que una "actualización" llegará al servidor y verá qué software está disponible para actualizar sus listas locales (o catálogos).

Tenga en cuenta que updatees diferente de upgrade. La actualización, como se mencionó anteriormente, buscará el software disponible y actualizará las listas mientras upgradeinstalará nuevas versiones del software instalado en su computadora (actualizaciones de software reales).

Para actualizar realmente su software (no "actualizar" las listas), ejecute el comando

sudo apt-get upgrade

que generalmente se ejecuta después de una "actualización".

Sam
fuente
¿ sudo apt-get installPara qué sirve entonces? ¿Instalar paquetes particulares en lugar de una actualización general?
Peter Mortensen el
12

Debe ejecutar apt-get updateuna vez antes de instalar nuevos paquetes, ya que esto actualiza la información del repositorio local. Si va a instalar varios paquetes poco después de otro, no necesita ejecutarlo apt-get update. Además, puede instalar varios paquetes a la vez si escribe sudo apt-get install package1 package2...

Jason Petrilla
fuente
Buen truco para eso!
Emerson Hsieh
6

Cuando instala paquetes desde la línea de comandos con sudo apt-get install ...(o sudo aptitude install ...), o cuando los actualiza desde la línea de comandos (con upgradeo en dist-upgradelugar de install), la siguiente información se obtiene de la configuración de su sistema local y no de Internet:

  1. qué paquetes están disponibles

  2. qué versiones de ellos están disponibles

  3. donde deben recuperarse los paquetes disponibles

Ejecutar sudo apt-get update(o sudo aptitude update) actualiza esto en su sistema local. Este es el paso que realmente recupera información sobre qué paquetes se pueden instalar, incluidas las actualizaciones de los paquetes de paquetes actualmente instalados disponibles , de fuentes de Internet.

Cuando instala paquetes con una interfaz GUI (el Administrador de actualizaciones, el Centro de software o el Administrador de paquetes Synaptic), el trabajo sudo apt-get updatese realiza automáticamente. Cuando instala paquetes desde la línea de comandos, no lo es, y siempre debe hacerlo usted mismo a menos que lo haya hecho muy recientemente .

Debido a que la información sobre qué versiones actualizadas de paquetes están disponibles se obtiene al ejecutar sudo apt-get update(o sudo aptitude update), es recomendable ejecutar esto antes de instalar cualquier paquete, y es necesario ejecutarlo para instalar las últimas actualizaciones, incluso si no ha agregado o eliminado ningún Software Fuentes (como un PPA) .

Tenga en cuenta que si va a realizar varias operaciones de administración de paquetes al mismo tiempo, no necesita ejecutar sudo apt-get updateantes de cada una. Solo si la información no se ha actualizado durante un tiempo, debe asegurarse de ejecutarla.

Eliah Kagan
fuente
4

Como Eliah Kagan mencionó anteriormente, esperaría que una aplicación GUI se ejecutara apt-get updateantes apt-get install/ apt-get upgrade, pero acabo de descubrir un interesante error 404, en una máquina VM de seguridad ofensiva relativamente nueva, que me dejó perplejo por un minuto.

Desde la línea de comandos, ejecuté apt-get update, y luego probé nuevamente el comando Herramientas del sistema / Actualización de software, y esta vez se ejecutó sin errores 404.

Entonces, supongo que no siempre se puede suponer que apt-get updatese ejecuta desde aplicaciones GUI ...

mikepratt
fuente
Interesante ... ¿Podría haber una situación de red inusual entre usted y el servidor que se maneja mejor cuando se ejecuta apt-getque con la verificación automática realizada al ejecutar el Actualizador de software / Administrador de actualizaciones? ¿Utiliza un proxy HTTP? ¿Y puedes hacer que vuelva a suceder, o ha sucedido solo una vez? Si se trata de una anomalía aislada, me pregunto si tal vez el problema se deba a una mala configuración temporal del servidor. ¿Qué espejo usas? Con más información, tal vez podría mejorar mi respuesta. (Por cierto, ¿se pretende que esto sea una respuesta por separado, o debería convertirse en un comentario?)
Eliah Kagan
3

Como han dicho muchas personas antes que yo, esto actualiza su repositorio local (lista de paquetes).

Puede tener problemas si intenta instalar

apt-get install foobar

y foobar o una dependencia no tienen su última versión en el repositorio. Esto puede ser especialmente problemático si instala un archivo .deb manualmente o un ppa de un tercero.

Básicamente se asegura de que su lista coincida con la lista maestra .

N8tron
fuente
2

Consideremos el ejemplo de instalación del reproductor multimedia VLC en Ubuntu:

sudo apt-get update

Verificará los repositorios para las actualizaciones disponibles.

Mientras

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

instalará el reproductor multimedia VLC de los repositorios que buscamos.

Si inició sesión como usuario root (administrador), no tiene que usarlo sudoporque ya tiene los privilegios de superusuario.

Praveen Vinny
fuente