O que acontece com os pacotes construídos automaticamente quando estou apto a atualizar?

1

Eu instalei alguns pacotes deb de auto-construção (PAM) com

sudo dpkg --force-all -i /opt/bzr/build-area/*.deb

tree é:

/opt/bzr/build-area 
.
├── libpam0g_1.1.8-3ubuntu1_amd64.deb
├── libpam0g-dev_1.1.8-3ubuntu1_amd64.deb
├── libpam-cracklib_1.1.8-3ubuntu1_amd64.deb
├── libpam-doc_1.1.8-3ubuntu1_all.deb
├── libpam-modules_1.1.8-3ubuntu1_amd64.deb
├── libpam-modules-bin_1.1.8-3ubuntu1_amd64.deb
├── libpam-runtime_1.1.8-3ubuntu1_all.deb
├── pam_1.1.8-3ubuntu1_amd64.build
├── pam_1.1.8-3ubuntu1_amd64.changes
├── pam_1.1.8-3ubuntu1.diff.gz
├── pam_1.1.8-3ubuntu1.dsc
└── pam_1.1.8.orig.tar.gz
  1. Importante: O que acontece quando uma nova versão oficial do Ubuntu PAM é lançada e eu corro apt dist-upgrade -y ? Sobrescreverá meus próprios pacotes?

  2. Opcional: preciso de --force-all em dpkg -i ?

  3. Opcional: link se parece com um "ramo de desenvolvedor" para mim? Existe um "ramo estável"? Como obtê-lo com bzr?

Relacionado a: link

    
por uav 31.07.2017 / 20:51

1 resposta

2
  1. Sim, eles usarão um número de versão mais alto do que seus pacotes, a menos que você ajuste suas prioridades de PIN adequadamente (ou mantenha os pacotes, conforme apontado por cas ). Note que os pacotes dos repositórios são passíveis de sobrescrever os seus se você usar o mesmo número de versão, então você deve realmente incrementar sua versão quando você reconstruir localmente (tipicamente “1.1.8-3ubuntu1.1”).

  2. Não, e você deve evitá-lo a menos que seja absolutamente necessário. Se você acha que é necessário, provavelmente há algo errado com seus pacotes e você deve corrigir isso.

  3. Esse repositório de código não foi atualizado desde 2014, por isso duvido que seja um repositório de desenvolvimento ativo. Você pode ver as várias ramificações pam no Launchpad e cloná-las usando, por exemplo, bzr branch lp:ubuntu/vivid/pam .

A maneira como lidei com esse tipo de situação é a seguinte:

  • confira o código-fonte ( debcheckout ou apt-get source )
  • se estiver em um repositório, crie uma nova filial com o patch em que estou interessado
  • se não estiver, aplique o patch manualmente
  • em ambos os casos, incremente a versão com uma entrada de changelog apropriada usando dch -n (sem confirmar, para evitar problemas de mesclagem)
  • construa o pacote e instale-o (no meu caso, via um repositório de pacotes local)

Quando uma nova versão do pacote é lançada, repito o acima; no caso de um repositório de origem, eu rebaso o patch em vez de começar do zero.

    
por 31.07.2017 / 23:33

Tags