Por que esse pacote do Emacs é versionado no 46.1? 26 é a maior versão possível hoje

9

Eu tenho criado o meu próprio emacs porque quero consertar alguns problemas e obter as correções de erros no upstream. No entanto, o Ubuntu continua removendo automaticamente meu próprio emacs construído e tenho que continuar reconstruindo e reinstalando-o.

Aqui está minha saída de apt-cache policy emacs quando fui dormir ontem à noite:

~/emacs$ sudo apt-cache policy emacs
emacs:
  Installed: 26.0.50.aaron-1
  Candidate: 46.1
  Version table:
     46.1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu xenial/main i386 Packages
 *** 26.0.50.aaron-1 100
        100 /var/lib/dpkg/status

Aqui é quando eu acordo:

~/emacs$ sudo apt-cache policy emacs
[sudo] password for excelsiora:
emacs:
  Installed: 46.1
  Candidate: 46.1
  Version table:
 *** 46.1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu xenial/main i386 Packages
        100 /var/lib/dpkg/status

Por que este pacote está sendo versionado em 46 em vez de 24 ou 25? 26 é atualmente a maior versão do emacs que você pode obter.

Eu posso ver que este é um meta-pacote: link

Por que o Ubuntu está atualizando o software sem perguntar?

Pergunta principal: O que devo fazer - atribuir à minha versão do pacote um número maior que 46 apenas para que ela fique firme?

Isso parece um hack horrível, ou talvez seja assim que funciona?

    
por Aaron Hall 10.02.2017 / 15:26

3 respostas

15

Há muitos problemas e perguntas aqui, então serei breve, mas tente cobrir todos eles.

  • emacs é apenas um meta-pacote que aponta para a versão mais recente de emacs... no Ubuntu (atualmente emacs24 ). O "46.1" é apenas uma versão do pacote, deliberadamente alta para substituir pacotes antigos do emacs. Veja apt show emacs para mais informações.

  • Você está substituindo o pacote emacs por um pacote de número de versão inferior. O Ubuntu prioriza a versão do pacote instalada pelo número da versão. O mais alto será aquele que for instalado (quando estiver instalando ou atualizando), portanto o seu é constantemente guzzumped.

    Você pode ver isso na saída apt-cache policy emacs . O candidato é a versão superior.

  • Você pode trabalhar em torno de prioridades com pinagem ou falsificação do seu número de versão (algo maior que 46.1), mas isso ignora o problema (e pode deixar um pacote emacs24 no lugar).

  • Sua melhor opção é remover o pacote emacs e apenas criar e instalar um pacote emacs25 ou emacs26 . Você poderia também criar um meta-pacote do emacs que dependia do seu pacote version-in-name, mas isso é apenas uma vaidade. Eu não faria isso a menos que você esteja planejando distribuir.

  • Em relação ao Ubuntu fazendo coisas sem "sem perguntar", verifique se as atualizações automáticas estão ativadas. Obtendo o mais recente disponível para ele é o comportamento padrão, então eu acho que este é mais um caso de "não entender o que o Ubuntu faz" em vez de um fantasma na máquina, ou pior.

  • E quanto a "por que a versão 24, não a 25 ou a 26?", o Ubuntu e o Debian abaixo dela visam versões de software estáveis e testadas. 26 ainda está em desenvolvimento e 25 não foram lançados até setembro de 2016.

    Além disso, o Ubuntu não é um lançamento para que versões do Ubuntu com 24 permaneçam na versão 24 para a vida útil desses lançamentos do Ubuntu (a menos que algo realmente louco aconteça). Patches de segurança serão backportados e aplicados, se necessário, mas ainda serão 24.

por Oli 10.02.2017 / 15:50
0

Por que o Ubuntu está atualizando o software sem perguntar?

Acho que isso pode ser devido à sua política de atualização no Update Manager (menu Editar). Eu recomendo a opção do meio: otimizar a estabilidade e segurança. A última opção será "Atualizar sempre tudo" - o que você não deseja.

Você também pode colocar na lista negra o pacote "emacs-defaults" em Editar > Preferências > Pacotes na lista negra (Pacotes ignorados pela AKA).

    
por Chris Poor 20.05.2017 / 17:13
0

Seguindo a resposta de @ Oli, veja como você está:

% bl0ck_qu0te%
  1. Encontre o seu arquivo emacs.deb. Para mim, estava na pasta raiz do meu emacs e foi nomeado emacs_25.1-1_amd64.deb
  2. Crie um diretório para conter o novo pacote debian que você vai criar: $ mkdir emacs-rename
  3. Descompacte o pacote debian no diretório: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Entre no diretório emacs-rename: $ cd emacs-rename
  5. Além disso, extraia control.tar.gz e data.tar.xz: $ tar -xzf control.tar.gz e $ tar -xf data.tar.xz
  6. Edite o arquivo control que resulta com nano (já que você ainda não tem emacs;) - $ nano control e altere Package: emacs para Package: emacs25 (ou 26, 27 etc)
  7. Crie um diretório DEBIAN dentro da renomeação do emacs: $ mkdir DEBIAN e copie o arquivo de controle: $ cp control DEBIAN/
  8. Suba um diretório, volte para a raiz de origem do emacs ( $ cd .. ) e execute $ dpkg --build emacs-rename . Isso pode demorar alguns instantes.
  9. Agora você deve ter um pacote emacs-rename.deb. Não se preocupe se não seguir a estrutura de nomenclatura do pacote debian adequada, é apenas para seu uso. Instale-o com $ sudo dpkg -i emacs-rename.pkg
  10. Se tudo funcionou, você deve ver: % bl0ck_qu0te%
por audiodude 22.05.2017 / 23:21