Por que o apt-get não requer reinicializações, onde o gerenciador de atualizações?

53

Muitas vezes, tento "vencer" o gerenciador de atualizações abrindo um console e inserindo a sequência

sudo apt-get update
sudo apt-get upgrade

que, de acordo com meu conhecimento, deve atualizar todos os pacotes para seus lançamentos estáveis ​​mais recentes. O gerenciador de atualizações faz o mesmo, tanto quanto eu sei.

No entanto, o gerenciador de atualizações às vezes (com mais freqüência quando um novo kernel é distribuído) requer uma reinicialização após o término. apt-getnunca faz, mesmo quando parece que estou atualizando o kernel. Porque isto é assim?


Em resposta à votação duplicado: Estou não perguntar que pacotes requerem uma reinicialização como a questão ligada é. Antes, eu estou perguntando por que apt-get não me peça para reiniciar mesmo quando eu reconhecer um pacote que está sendo atualizado que o gerenciador de atualização iria exigir uma reinicialização para.

Jan
fonte
10
também é importante notar que o tipo de atualizações cobertas, apt-get dist-upgrademas não as, apt-get updgradeé mais provável que sejam aquelas que levariam o gerente de atualizações a sugerir uma reinicialização.
Jon Hanna
4
FWIW, você pode verificar se a reinicialização é necessária, verificando a existência de /var/run/reboot-required. Além disso, o Byobu mostra um ícone "atualização necessária" na barra de status, quando necessário.
Andrea Corbellini
2
@ Pilot6 Nem remotamente perto de ser uma duplicata. A pergunta que você marcou está perguntando quais pacotes requerem uma reinicialização. Minha pergunta é perguntar por que um método de atualização não está pedindo para eu reiniciar, mesmo que eu reconheça um pacote sendo atualizado que exigiria reinicializações.
Janeiro
11
ESTÁ BEM. Mas está intimamente relacionado.
Pilot6
11
@ Pilot6 Com o qual eu posso concordar;)
Jan

Respostas:

81

Porque apt-get(ou simplesmente simples apt) é para os profissionais e quando os profissionais fazem:

sudo apt-get dist-upgrade

e ver um novo kernel sendo instalado, os profissionais sabem que precisam reiniciar para ativá-lo ...

A atualização automática é para todos os outros por aí!

;-)

Como alternativa, agora você pode instalar o Ubuntu Live kernel Patching a partir da versão 16.04, o que permite atualizar seu kernel enquanto o servidor estiver em execução.

Fabby
fonte
4
Eu gostaria de poder aceitar todas as três respostas, porque tecnicamente todas dizem a mesma coisa. Mas eu acho que vou levar a sua porque você me fez sorrir mais ;-) #
:
6
> :) Um pouco de humor em uma resposta nunca é ruim! ;-)
Fabby
4
O suporte ao livepatching do kernel está nos kernels convencionais agora, portanto, com um pouco de sorte, talvez não tenhamos que reiniciar mais quando chegarmos ao LTS 16.04.
kasperd
Sua descrição do apt-get upgradevs. apt-get dist-upgradenão corresponde à man apt-getminha experiência com a ferramenta. Tenho certeza de que a diferença tem a ver com a forma como são tratadas as dependências que exigiriam a instalação ou remoção de pacotes; "upgrade" ignora esses pacotes, "dist-upgrade" tenta instalar / remover pacotes para fazer a atualização acontecer.
21316 derobert
11
@Fabby um pouco confuso porque você removeu atualmente esse parágrafo, mas se você olhar para a página de manual do apt-get, a descrição de "upgrade" diz, por exemplo, "em nenhuma circunstância os pacotes instalados no momento foram removidos ou os pacotes ainda não instalados recuperados e instalado. " Portanto, se uma atualização normal do aplicativo exigir a instalação de um novo pacote (nova biblioteca, por exemplo), isso não será feito. Ou se uma atualização do kernel usasse o mesmo nome de pacote, isso seria feito.
derobert
37

O Gerenciador de atualizações sugere reiniciar quando os kernels forem atualizados ou alguns outros pacotes do sistema com serviços marcados para reinicialização quando atualizados.

Nesse caso, /var/run/reboot-requiredé definido por um script de instalação do pacote.

A linha de comando apt-get upgradenão sugere nada, pois é direcionada a usuários mais avançados que podem decidir quando reiniciar o sistema ;-)

Mas após a atualização, usando o apt-get Update Manager em algum tempo, sugerimos que você reinicie também.

Pilot6
fonte
Não acredito nisso, é verdade? "serviços que não podem ser reiniciados sem a reinicialização de todo o sistema."
AB
2
Sim isso é verdade. Como "iniciante" e alguns outros. Nao muitos.
precisa saber é o seguinte
2
@ Pilot6 Parece ridículo se o iniciante não puder ser reiniciado sem uma reinicialização. Era para ser uma atualização do SysV init que pode ser reiniciada sem uma reinicialização.
kasperd
@ Kasperd Isso foi apenas um exemplo. Notei que o gerenciador de atualizações solicita a reinicialização em alguns pacotes que não são do kernel. Deve haver alguma lista desses pacotes. Não tenho certeza se o iniciante está lá.
usar o seguinte comando
11
O @MaxNanasy Update manager irá aparecer e sugerir a reinicialização. isso pode acontecer daqui a pouco.
Pilot6
15

Quando você instala um novo kernel, você precisa reiniciar a máquina para que as alterações entrem em vigor, o apt-get não se preocupa com isso.

Marreta
fonte
11
Não apenas atualizações do kernel. Você também deve reiniciar ou reiniciar alguns serviços quando outros pacotes forem atualizados. Se você for mais experiente, poderá reiniciar serviços relevantes e evitar uma reinicialização. Caso contrário, uma reinicialização sempre funcionará. Geralmente, não é simples descobrir quais serviços precisam ser reiniciados, porque os pacotes atualizados podem envolver bibliotecas compartilhadas das quais muitos outros softwares dependem direta ou indiretamente, por meio de outro software. Também não confio 100% necessariamente no gerenciador de atualizações gráficas.
thomasrutter
7

O apt-get realmente notifica você no terminal quando após a instalação de um determinado pacote, se for necessário reiniciar.

O update-manager é um tipo de solução tudo-em-um que cuida sozinho de todas as suas necessidades de atualização.

Eu prefiro o apt-get, não sei por que :)

121n3
fonte
2

apt-get upgrade não atualiza o kernel.

apt-get dist-upgrade atualiza o kernel no Ubuntu.

As versões do kernel Linux anteriores ao 4.1 precisam de uma reinicialização quando o kernel é atualizado.

Outros pacotes não precisam de uma reinicialização, apenas uma reinicialização do próprio aplicativo. Alguns aplicativos do Windows em execução no Wine solicitam uma reinicialização, mas apenas digite o comando:

wineserver -k

e reinicie o aplicativo.

user222789
fonte