Um pacote recém-lançado será enviado para a minha máquina? [fechadas]

0

Não tenho certeza se, como e quando um novo pacote que foi adicionado a um repositório do Ubuntu encontra seu caminho para minha máquina como um pacote instalado a menos que eu instale explicitamente isso.

Por exemplo, e se o Ubuntu 18.04 for lançado, mas uma semana depois, a Canonical percebe que esqueceu de incluir o pacote foo . Incluir o pacote foo é absolutamente crítico, porque há um cronjob executando toda noite chamando um comando incluído apenas no pacote foo . Então, até que este pacote seja lançado em todas as máquinas do Ubuntu 18.04, eles continuarão a travar a cada meia-noite.

Como outro exemplo, a última e melhor versão corre bem, até que a Canonical descubra que existe uma enorme falha de segurança que só pode ser "corrigida" instalando um novo pacote bar .

No que diz respeito ao meu entendimento, apt-get upgrade e apt upgrade concentram-se na atualização de pacotes já instalados . apt-get dist-upgrade e apt full-upgrade também podem extrair novas ou até mesmo remover pacotes dependências . 1 2

Mas e se um pacote totalmente novo for adicionado ao release / repositório do SO como nos exemplos anteriores? Eu tenho que manter um blog em algum lugar para que eu saiba instalar manualmente pacotes recém-lançados?

1 Comandos simples como apt-get dist-upgrade e apt full-upgrade são basicamente a mesma coisa que upgrade , mas lida com dependências de forma diferente - exatamente como está além de mim.

2 A atualização está limitada a "correções de bugs e correções de segurança"  (veja this ).

Alguns docs

apt-get upgrade diz:

Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed retrieved and installed.

apt upgrade diz

New packages will be installed if required to satisfy dependencies [...].

Outras distros

Como um bônus adicional, talvez o guru do Linux queira adicionar uma nota sobre como tudo isso é tratado em outras distros.

Para ser honesto, não tenho certeza se entendi como os releases, os pacotes e os repositórios se relacionam uns com os outros e pode haver algumas informações que faltam relacionadas a isso e que embaçam minha mente. Em particular, ficou muito nublado quando eu li em rolling distros lol.

De qualquer forma .. muitos e muitos agradecimentos!

    
por Martin Andersson 29.12.2017 / 00:16

3 respostas

2

Quando uma falha de segurança é encontrada no produto A, um novo pacote para o produto A é liberado, com uma versão superior. Isso é atualizado nas listas de pacotes, que fazem parte do repositório.

Quando você executar sudo apt update , baixará uma lista de pacotes disponíveis. Posteriormente, quando você executar sudo apt upgrade , já que o produto A está instalado, você fará o download da nova versão e a instalará.

Se você não tiver o produto A instalado, o pacote não será baixado nem instalado.

Seu sistema inteiro é pacotes. Se for encontrado um problema de segurança em um componente, por exemplo, o kernel, o pacote será atualizado para uma nova versão, mas com exatamente o mesmo nome de pacote.

Portanto, isso garante que você obtenha os patches de segurança apropriados para o software que você instalou.

Se você instalou o software por outros meios além dos repositórios do Ubuntu, você não obterá atualizações para eles através dos repositórios do Ubuntu.

Isso é um pouco diferente do modelo do Windows, no qual você obtém atualizações, e realmente não informa qual módulo ou parte do sistema operacional está atualizado, nem pode escolher o que instalar. Mas no Ubuntu (e outras distros) tudo é um pacote - e você pode escolher de um sistema muito pequeno, pesando menos de um gigabyte, sem qualquer ambiente gráfico, para um desktop completo - ou servidor.

Agora eu tenho um pacote que pode ser atualizado em uma caixa que eu tenho - firefox:

[~]$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  xserver-xorg-hwe-16.04
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/43.7 MB of archives.
After this operation, 21.5 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.

vamos dar uma olhada neste pacote, usando apt-cache policy firefox :

[~]$ apt-cache policy firefox
firefox:
  Installed: 57.0.1+build2-0ubuntu0.16.04.1
  Candidate: 57.0.3+build1-0ubuntu0.16.04.1
  Version table:
     57.0.3+build1-0ubuntu0.16.04.1 500
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
 *** 57.0.1+build2-0ubuntu0.16.04.1 500
        500 http://no.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     45.0.2+build1-0ubuntu1 500
        500 http://no.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
[~]$ 

Aqui mostra que eu tenho o 57.0.1 + build2-0ubuntu0.16.04.1 instalado, mas o 57.0.3 + build1-0ubuntu0.16.04.1 está disponível. Se eu optar por atualizar, irei obter a nova versão do firefox.

O xserver-xorg-hwe-16.04 é mantido no exemplo acima, porque depende de xserver-xorg-legacy-hwe-16.04 , que não está instalado. Assim, apt upgrade não irá tocá-lo, a menos que eu faça um sudo apt-get install xserver-xorg-legacy-hwe-16.04 :

[~]$ sudo apt-get install xserver-xorg-hwe-16.04
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  xserver-xorg-legacy-hwe-16.04
The following packages will be REMOVED:
  xserver-xorg-legacy
The following NEW packages will be installed:
  xserver-xorg-legacy-hwe-16.04
The following packages will be upgraded:
  xserver-xorg-hwe-16.04
1 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.
Need to get 41.1 kB of archives.
After this operation, 3,072 B of additional disk space will be used.
Do you want to continue? [Y/n] 

Portanto, um pacote só será atualizado, desde que não liste novas dependências.

    
por vidarlo 29.12.2017 / 01:07
0

No Debian / Ubuntu você precisa atualizar a lista de pacotes e depois atualizar

sudo apt update && sudo apt upgrade

Outras distros são um pouco fora do tópico bit algumas distros combinam estes 2 passos em 1

No fedora, por exemplo, você apenas

sudo dnf upgrade

No Ubuntu, você pode ativar atualizações automáticas, se desejar

askubuntu.com/questions/9/how-do-i-enable-updates automáticos

Veja man apt

update (apt-get (8))            A atualização é usada para baixar as informações do pacote de todas as            fontes. Outros comandos operam nestes dados para, e. realizar            atualizações de pacotes ou pesquisar e exibir detalhes sobre todos            pacotes disponíveis para instalação

Atualizações de fazer-release-upgrade para uma nova versão ou versão do Ubuntu

    
por Panther 29.12.2017 / 01:20
0

Esta não é de forma alguma uma resposta autoritária, basicamente apenas documenta pedaços da minha própria compreensão semi-superficial.

Novos pacotes nunca são considerados correções de bugs ou de segurança [citação necessária] . Eles são considerados novos programas e novos recursos do sistema operacional [carece de fontes?] . Novos pacotes nunca são adicionados a uma versão do Ubuntu porque é " froozen ".

Novos pacotes são adicionados ao próximo lançamento do Ubuntu, que deve ser finalizado dentro de 6 meses .

Mesmo remover um pacote já lançado " não é tecnicamente possível " e deve ser esvaziado.

No final do dia, acho que os exemplos apresentados na pergunta - por mais válidos que pareçam ser - nunca aconteceram na vida real? Por exemplo. A Canonical nunca teve que abandonar um pacote independente novo como parte de uma correção de bug ou de segurança.

    
por Martin Andersson 29.12.2017 / 03:38