Respostas:
Em poucas palavras, apt-get update
na verdade não instala novas versões de software. Em vez disso, atualiza as listas de pacotes para atualizações de pacotes que precisam de atualização, bem como novos pacotes que acabaram de chegar aos repositórios.
apt-get update
baixa as listas de pacotes dos repositórios e as "atualiza" para obter informações sobre as versões mais recentes dos pacotes e suas dependências. Isso será feito para todos os repositórios e PPAs. Em http://linux.die.net/man/8/apt-get :
Usado para sincronizar novamente os arquivos de índice de pacotes de suas fontes. Os índices dos pacotes disponíveis são buscados no (s) local (is) especificado (s) em
/etc/apt/sources.list
(5). Uma atualização sempre deve ser realizada antes de uma atualização ou dist-upgrade.
apt-get upgrade
buscará novas versões de pacotes existentes na máquina se o APT souber dessas novas versões por meio de apt-get update
.
Em http://linux.die.net/man/8/apt-get :
Usado para instalar as versões mais recentes de todos os pacotes atualmente instalados no sistema a partir das fontes enumeradas em
/etc/apt/sources.list
(5). Pacotes atualmente instalados com novas versões disponíveis são recuperados e atualizados; sob nenhuma circunstância os pacotes instalados no momento são removidos, nem os pacotes que ainda não estão instalados são recuperados e instalados. Novas versões dos pacotes atualmente instalados que não podem ser atualizados sem alterar o status de instalação de outro pacote serão deixadas na versão atual. Uma ênfase deve ser realizada primeiro para que o apt-get saiba que novas versões de pacotes estão disponíveis.
apt-get dist-upgrade
fará o mesmo trabalho realizado apt-get upgrade
, além de também lidar com as dependências de maneira inteligente, para remover pacotes obsoletos ou adicionar novos. Veja aqui: O que é "dist-upgrade" e por que ele atualiza mais do que "upgrade"?
Em http://linux.die.net/man/8/apt-get :
Além de desempenhar a função de atualização, esta opção também lida de maneira inteligente com as dependências variáveis com as novas versões dos pacotes; O apt-get possui um sistema de resolução de conflitos "inteligente" e tentará atualizar os pacotes mais importantes às custas dos menos importantes, se necessário. O
/etc/apt/sources.list
arquivo (5) contém uma lista de locais para recuperar os arquivos de pacote desejados. Veja também apt_preferences (5) para um mecanismo para substituir as configurações gerais de pacotes individuais.
Você pode combinar comandos da &&
seguinte maneira:
sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg
ou para obter as versões mais recentes possíveis, de acordo com os requisitos de versão das dependências:
sudo apt-get update && sudo apt-get dist-upgrade
Você precisa das sudo
duas vezes, mas como, sudo
por padrão, não solicita sua solicitação dentro de 5 minutos ou mais desde a última sudo
operação, sua senha será solicitada apenas uma vez (ou não).
apt-get update
demora um pouco, a internet aqui ainda é primitiva.
Uma pesquisa no Google pode fornecer a definição para quase qualquer comando do terminal, como pode --help no terminal. Por exemplo,
apt-get --help
sudo apt-get update
essencialmente tem três partes:
sudo
executa o seguinte comando com recursos de superusuário (raiz). Muitas ações que exigem a modificação de arquivos do sistema ou a instalação de aplicativos requerem permissões extras para serem executadas.
apt-get
é uma ferramenta de linha de comando que o Ubuntu usa para instalar, remover e gerenciar pacotes de software
update
é uma opção para o programa apt-get usar, que atualiza as listas de pacotes de um servidor na internet. As listas de pacotes fornecem ao utilitário apt-get informações importantes sobre os pacotes de software que você pode instalar usando o apt-get. O apt-get usa essas listas para determinar qual software instalar quando receber um comando para instalar. Por exemplo
sudo apt-get install guake
instalaria o terminal Guake, conforme listado atualmente nas listas de software local do meu computador. No entanto, essa pode não ser a versão apropriada ou, se o programa for novo, pode não estar disponível. Portanto, ao instalar o software com o apt-get, você normalmente digita
sudo apt-get update
sudo apt-get install <package>
garantindo que o apt-get saiba instalar a versão mais recente do pacote.
Outra fonte útil de informações é o help.ubuntu.com
site. Por exemplo, se você pesquisasse nesse site apt-get
, encontraria o AptGet / Howto como um dos resultados.
&&
entre eles comosudo apt-get update&&sudo apt-get install foo bar baz
&&
significa que o segundo comando será executado apenas se o primeiro for bem-sucedido. Se você não se importa com o sucesso do primeiro comando, use ;
.
A execução sudo apt-get update
simplesmente garante que sua lista de pacotes de todos os repositórios e PPAs esteja atualizada. Se você não executar esse comando, poderá obter versões mais antigas de vários pacotes que estão instalando ou, pior ainda, problemas de dependência. Se você acabou de adicionar um PPA e não atualizou, nada do PPA funcionará, pois você não possui uma lista de pacotes desse PPA ou repositório.
Em poucas palavras: é altamente recomendável executar sudo apt-get update
antes da instalação, mas pode ser pulado se você realmente estiver com pressa de tempo, a menos que tenha alterado repositórios ou PPAs desde o último apt-get update
.
Ele atualiza a lista de softwares disponíveis no seu computador.
Seu computador possui uma lista (como um catálogo) que contém todo o software disponível que os servidores Ubuntu possuem. Mas o software e as versões disponíveis podem mudar, portanto, uma "atualização" chegará ao servidor e verá qual software está disponível para atualizar suas listas (ou catálogos) locais.
Note que update
é diferente de upgrade
. A atualização, conforme mencionado acima, buscará o software disponível e atualizará as listas, enquanto upgrade
instalará novas versões do software instaladas no seu computador (atualizações reais de software).
Para realmente atualizar seu software (não "atualizar" as listas), você executa o comando
sudo apt-get upgrade
que geralmente é executado após uma "atualização".
sudo apt-get install
então? Instalando pacotes específicos em vez de uma atualização geral?
Você precisa executar apt-get update
uma vez antes de instalar novos pacotes, pois isso atualiza as informações do repositório local. Se você deseja instalar vários pacotes logo após o outro, não precisa executar apt-get update
. Além disso, você pode instalar vários pacotes de uma vez, se digitar
sudo apt-get install package1 package2...
Quando você instala pacotes da linha de comando com sudo apt-get install ...
(ou sudo aptitude install ...
) ou quando você os atualiza da linha de comando (com upgrade
ou em dist-upgrade
vez de install
), as seguintes informações são obtidas na configuração do sistema local e não na Internet:
quais pacotes estão disponíveis
quais versões estão disponíveis
onde os pacotes disponíveis devem ser recuperados de
A execução sudo apt-get update
(ou sudo aptitude update
) atualiza isso no seu sistema local. Esta é a etapa que realmente recupera informações sobre quais pacotes podem ser instalados, incluindo as atualizações disponíveis nos pacotes de pacotes atualmente instalados , de fontes da Internet.
Quando você instala pacotes com uma interface GUI (o Update Manager, o Software Center ou o Synaptic Package Manager), o trabalho sudo apt-get update
é feito automaticamente. Quando você instala pacotes a partir da linha de comando, não é, e você sempre deve fazer isso sozinho, a menos que tenha feito isso muito recentemente .
Como as informações sobre quais versões atualizadas dos pacotes estão disponíveis são obtidas executando sudo apt-get update
(ou sudo aptitude update
), é recomendável executá-lo antes de instalar qualquer pacote e necessário para instalá-lo nas últimas atualizações, mesmo se você não adicionou ou removeu nenhum Software Fontes (como um PPA) .
Observe que, se você estiver executando várias operações de gerenciamento de pacotes ao mesmo tempo, não precisará executar sudo apt-get update
antes de cada uma. É apenas se as informações não forem atualizadas há um tempo que você deve executá-las.
Como Eliah Kagan mencionou acima, você esperaria que um aplicativo GUI fosse executado apt-get update
antes apt-get install
/ apt-get upgrade
, mas eu acabei de descobrir um erro 404 interessante, em uma máquina VM de segurança ofensiva relativamente nova, que me deixou perplexo por um minuto.
Na linha de comando, executei apt-get update
e tentei o comando System Tools / Software-Update novamente, e desta vez ele foi executado sem erros 404.
Então, acho que você nem sempre pode assumir que apt-get update
é executado a partir de aplicativos GUI ...
apt-get
que pela verificação automática executada ao executar o Atualizador de Software / Gerenciador de Atualizações? Você usa um proxy HTTP? E você é capaz de fazer isso acontecer de novo ou aconteceu apenas uma vez? Se for uma anomalia isolada, pergunto-me se talvez o problema seja devido a uma configuração incorreta temporária do servidor. Qual espelho você usa? Com mais informações, talvez eu possa melhorar minha resposta. (Btw, isso é concebido como uma resposta em separado, ou deve ser convertido em um comentário?)
Como dito por muitas pessoas antes de mim, isso atualiza seu repositório local (lista de pacotes).
Você pode ter problemas se tentar instalar
apt-get install foobar
e foobar ou uma dependência não têm sua versão mais recente no repositório. Isso pode ser especialmente problemático se você instalar um arquivo .deb manualmente ou um ppa de terceiros.
Basicamente, garante que sua lista corresponda à lista principal .
Vamos considerar o exemplo da instalação do VLC media player no Ubuntu:
sudo apt-get update
Ele verificará os repositórios para atualizações disponíveis.
Enquanto que
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
instalará o VLC media player a partir dos repositórios que procuramos.
Se você fez login como usuário root (administrador), não precisa usá-lo sudo
, porque já possui os privilégios de superusuário.
sudo apt-get update
comando sempre que instalamos pacotes? Qual é a desvantagem se não o fizermos?