Perché questo pacchetto Emacs è aggiornato alla 46.1? 26 è la versione maggiore più alta possibile oggi


11

Ho creato i miei emacs perché voglio risolvere alcuni problemi e ottenere le correzioni dei bug a monte. Tuttavia, Ubuntu continua a rimuovere automaticamente i miei emacs creati e devo continuare a ricostruirli e reinstallarli.

Ecco la mia uscita di apt-cache policy emacsquando sono andato a letto ieri sera:

~/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

Ecco quando mi sveglio:

~/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

Perché questo pacchetto viene aggiornato a 46 anziché a 24 o 25? 26 è attualmente la più grande versione di emacs che puoi ottenere.

Vedo che questo è un meta-pacchetto: https://packages.debian.org/source/jessie/emacs-defaults

Perché Ubuntu aggiorna il software senza chiedere?

Domanda principale: cosa dovrei fare - assegnare alla mia versione del pacchetto un numero superiore a 46 solo per farlo rimanere?

Sembra un orribile trucco, o forse è così che dovrebbe funzionare?


2
Dal log delle modifiche : "Imposta la versione iniziale più alta di qualsiasi pacchetto binario emacs esistente."
Muru,

Questo mi rende triste. : /
Aaron Hall,

Risposte:


15

Ci sono molti problemi e domande qui, quindi sarò breve ma proverò a coprirli tutti.

  • emacsè solo un meta-pacchetto che punta all'ultima versione di emacs...in Ubuntu (attualmente emacs24). "46.1" è solo una versione del pacchetto, volutamente alta per sostituire i pacchetti emacs più vecchi. Vedi apt show emacsper qualche informazione in più.

  • Stai sovrascrivendo quel emacspacchetto con un pacchetto con un numero di versione inferiore. Ubuntu dà la priorità alla versione del pacchetto installata dal numero di versione. Il più alto sarà quello che verrà installato (durante l'installazione o l'aggiornamento), quindi il tuo è costantemente disturbato.

    Puoi vederlo apt-cache policy emacsnell'output. Il candidato è la versione superiore.

  • Puoi aggirare le priorità bloccando o spostando il tuo numero di versione (qualcosa di superiore a 46.1), ma questo piuttosto ignora il problema (e può lasciare un emacs24pacchetto in atto).

  • L'opzione migliore è rimuovere il emacspacchetto e semplicemente creare e installare un pacchetto emacs25o emacs26. Si potrebbe anche costruire un emacs meta-pacchetto che dipendeva il pacchetto versione-in-nome, ma questo è solo una vanità. Non lo farei se non prevedi di distribuirlo.

  • Per quanto riguarda Ubuntu che fa cose senza "senza chiedere", controlla se gli aggiornamenti automatici sono attivi. Ottenere l'ultimo disponibile è il comportamento predefinito, quindi penso che questo sia più un caso di "non capire cosa fa Ubuntu" piuttosto che un fantasma nella macchina, o peggio.

  • E per quanto riguarda "perché la versione 24, non 25 o 26?", Ubuntu e Debian sotto di essa puntano entrambe a versioni software stabili e testate. 26 è ancora in fase di sviluppo e 25 non sono usciti fino a settembre 2016.

    Inoltre, Ubuntu non è una versione progressiva, quindi le versioni di Ubuntu con 24 rimarranno sulla versione 24 per la durata di quelle versioni di Ubuntu (a meno che non accada qualcosa di veramente folle). Le patch di sicurezza verranno backportate e applicate se necessario, ma saranno comunque 24.


Non ho mai chiesto "perché la versione 24" (penso che la risposta sia ovvia) le mie parole erano "perché questa versione" si riferiva a 46, ma poiché era ridondante e meno chiara della domanda precedente, l'ho cancellata. Ad ogni modo, ho scelto di rinominarlo emacs26 in un argomento per verificare l'installazione - probabilmente posterò una risoluzione in seguito. Più uno. E grazie
Aaron Hall il

@Oli (+1) riguardo al tuo ultimo punto, c'è un buon argomento per non aggiornare Emacs oltre la versione che arriva con un sistema operativo? Sono noti problemi di stabilità o altri problemi? Sto lavorando su Ubuntu 16.04 LTS e vorrei passare alla versione Emacs 25.1.
n1k31t4,

99 sarebbe stato un numero di versione migliore.
Thorbjørn Ravn Andersen,

0

Perché Ubuntu aggiorna il software senza chiedere?

Penso che ciò potrebbe essere dovuto alla tua politica di aggiornamento in Update Manager (menu Modifica). Raccomando l'opzione centrale: ottimizzare la stabilità e la sicurezza. L'ultima opzione "Aggiorna sempre tutto" - che non vuoi.

Puoi anche inserire nella blacklist il pacchetto "emacs-defaults" in Modifica> Preferenze> Pacchetti nella lista nera (pacchetti ignorati AKA).


0

Seguendo la risposta di @ Oli, ecco come procedere:

rimuovendo il pacchetto emacs e costruendo e installando invece un pacchetto emacs25 o emacs26.

  1. Trova il tuo file emacs.deb. Per me, era nella mia cartella radice di origine emacs ed è stato chiamatoemacs_25.1-1_amd64.deb
  2. Crea una directory per contenere il nuovo pacchetto debian che stai per creare: $ mkdir emacs-rename
  3. Annulla l'archiviazione del pacchetto debian nella directory: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Vai nella directory emacs-rename: $ cd emacs-rename
  5. Estrarre ulteriormente control.tar.gz e data.tar.xz: $ tar -xzf control.tar.gze$ tar -xf data.tar.xz
  6. Modifica il controlfile che risulta con nano (poiché non hai ancora emacs;) - $ nano controle cambia Package: emacsin Package: emacs25(o 26, 27 ecc.)
  7. Crea una directory DEBIAN all'interno di emacs-rename: $ mkdir DEBIANe copia lì il file di controllo:$ cp control DEBIAN/
  8. Vai su una directory, torna alla radice dei sorgenti di emacs ( $ cd ..) ed esegui $ dpkg --build emacs-rename. Questo potrebbe richiedere qualche istante.
  9. Ora dovresti avere un pacchetto emacs-rename.deb. Non preoccuparti che non segua la corretta struttura dei nomi dei pacchetti debian, è solo per il tuo uso. Installalo con$ sudo dpkg -i emacs-rename.pkg
  10. Se tutto ha funzionato dovresti vedere:

    Preparazione per decomprimere emacs-rename.deb ...
    Disimballaggio di emacs25 (25.1-1) ...
    Impostazione di emacs25 (25.1-1) ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.