Por que este pacote Emacs está na versão 46.1? 26 é a versão principal mais alta possível hoje

11

Estou construindo meu próprio emacs porque quero corrigir alguns problemas e obter as correções de bugs a montante. No entanto, o Ubuntu continua removendo automaticamente meus próprios emacs criados e eu tenho que continuar reconstruindo e reinstalando-o.

Aqui está minha saída de apt-cache policy emacsquando fui dormir na noite passada:

~/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 versão principal do emacs mais alta que você pode obter.

Percebo que este é um meta-pacote: https://packages.debian.org/source/jessie/emacs-defaults

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

Pergunta principal: O que devo fazer - atribua um número de versão do pacote superior a 46 apenas para mantê-lo?

Parece um truque horrível, ou talvez seja assim que deve funcionar?

Aaron Hall
fonte
2
Desde o changelog : "Definir a versão inicial maior do que qualquer pacote binário emacs existentes."
Muni
isso me deixa triste. : /
Aaron Hall

Respostas:

15

Existem muitas questões e perguntas aqui, por isso serei breve, mas tentarei cobrir todas elas.

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

  • Você está substituindo esse emacspacote por um pacote com 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á o que for instalado (ao instalar ou atualizar); portanto, o seu será constantemente consumido.

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

  • Você pode contornar as prioridades fixando ou falsificando o número da sua versão (algo maior que 46.1), mas isso ignora o problema (e pode deixar um emacs24pacote no lugar).

  • Sua melhor opção é remover o emacspacote e apenas criar e instalar um emacs25ou emacs26pacote. Você também pode criar um meta-pacote emacs que depende do seu pacote de versão em nome, mas isso é apenas uma vaidade. Eu não faria isso a menos que você esteja planejando distribuir.

  • Em relação ao Ubuntu fazer coisas sem "sem perguntar", verifique se as atualizações automáticas estão ativadas. Obter o mais recente disponível é o comportamento padrão, então acho que esse é 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 25 ou 26?", O Ubuntu e o Debian abaixo dele 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 contínuo, portanto as versões do Ubuntu com 24 permanecerão na versão 24 durante toda a vida útil desses lançamentos do Ubuntu (a menos que algo realmente louco aconteça). Os patches de segurança serão portados e aplicados, se necessário, mas ainda serão 24.

Oli
fonte
Eu nunca perguntei "por que versão 24" (acho que a resposta é óbvia) minhas palavras foram "por que essa versão" se refere a 46, mas como era redundante e menos clara que a pergunta anterior, eu a excluí. De qualquer forma, fui renomear emacs26 em um argumento para verificar a instalação - provavelmente postarei uma resolução mais tarde. Mais um. E obrigado
Aaron Hall
@Oli (+1) em relação ao seu último ponto, existe um bom argumento para não atualizar o Emacs além da versão que chega com um sistema operacional? Existem problemas conhecidos de estabilidade ou outros problemas? Estou trabalhando no Ubuntu 16.04 LTS e gostaria de passar para a versão Emacs 25.1.
N1k31t4 29/03
99 teria sido um número de versão melhor.
Thorbjørn Ravn Andersen
0

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

Acho que isso pode ser devido à sua Política de Atualização no Gerenciador de Atualizações (menu Editar). Eu recomendo a opção do meio: otimizar estabilidade e segurança. A última opção "Sempre atualiza 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 AKA ignorados).

Christopher J Poor
fonte
0

Seguindo a resposta de @ Oli, veja como você faz isso:

removendo o pacote emacs e apenas construindo e instalando um pacote emacs25 ou emacs26.

  1. Encontre o seu arquivo emacs.deb. Para mim, estava na minha pasta raiz do emacs e foi nomeadoemacs_25.1-1_amd64.deb
  2. Crie um diretório para armazenar o novo pacote debian que você irá criar: $ mkdir emacs-rename
  3. Desarquivar o pacote debian no diretório: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Acesse o diretório emacs-rename: $ cd emacs-rename
  5. Extraia mais control.tar.gz e data.tar.xz: $ tar -xzf control.tar.gze$ tar -xf data.tar.xz
  6. Edite o controlarquivo que resulta com o nano (já que você ainda não possui o emacs;) - $ nano controle mude Package: emacspara Package: emacs25(ou 26, 27 etc)
  7. Crie um diretório DEBIAN dentro do emacs-rename: $ mkdir DEBIANe copie o arquivo de controle lá:$ cp control DEBIAN/
  8. Vá para um diretório, volte para a raiz de origem do emacs ( $ cd ..) e execute $ dpkg --build emacs-rename. Isso pode levar alguns instantes.
  9. Agora você deve ter um pacote emacs-rename.deb. Não se preocupe, pois não segue a estrutura de nomenclatura adequada dos pacotes debian, é apenas para seu uso. Instale-o com$ sudo dpkg -i emacs-rename.pkg
  10. Se tudo funcionou, você deveria ver:

    Preparando para descompactar o emacs-rename.deb ...
    Descompactando o emacs25 (25.1-1) ...
    Configurando o emacs25 (25.1-1) ...

audiodude
fonte