Pourquoi ce package Emacs est-il versionné à 46.1? 26 est la version majeure la plus élevée possible aujourd'hui

11

J'ai construit mes propres emacs parce que je veux résoudre certains problèmes et obtenir les correctifs de bogues en amont. Cependant, Ubuntu continue de supprimer automatiquement mes propres emacs construits et je dois continuer à le reconstruire et à le réinstaller.

Voici ma sortie de apt-cache policy emacsquand je suis allé me ​​coucher hier soir:

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

Le voici quand je me réveille:

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

Pourquoi ce package est-il versionné à 46 au lieu de 24 ou 25? 26 est la version emacs la plus élevée actuellement disponible.

Je peux voir qu'il s'agit d'un méta-package: https://packages.debian.org/source/jessie/emacs-defaults

Pourquoi Ubuntu met-il à jour le logiciel sans demander?

Question principale: que dois-je faire - attribuer un numéro supérieur à 46 à ma version de package juste pour la faire coller?

Cela semble être un horrible hack, ou c'est peut-être ainsi que cela devrait fonctionner?

Aaron Hall
la source
2
Depuis le changelog : "Définissez la version initiale plus haut que n'importe quel paquet binaire emacs existant."
muru
cela me rend triste. : /
Aaron Hall

Réponses:

15

Il y a beaucoup de problèmes et de questions ici, donc je serai bref mais essayez de les couvrir tous.

  • emacsest juste un méta-package qui pointe vers la dernière version d' emacs...Ubuntu (actuellement emacs24). Le "46.1" n'est qu'une version de package, délibérément élevée pour déplacer les anciens packages emacs. Voir apt show emacspour un peu plus d'informations.

  • Vous remplacez ce emacspackage par un package avec un numéro de version inférieur. Ubuntu priorise la version du package installée par numéro de version. Le plus élevé sera celui qui sera installé (lors de l'installation ou de la mise à niveau), donc le vôtre est constamment guzzumped.

    Vous pouvez le voir dans la apt-cache policy emacssortie. Le candidat est la version supérieure.

  • Vous pouvez contourner les priorités avec l'épinglage ou le fudging de votre numéro de version (quelque chose de supérieur à 46.1) mais cela ignore plutôt le problème (et peut laisser un emacs24package en place).

  • Votre meilleure option consiste à supprimer le emacspackage et à simplement créer et installer un package emacs25or à la emacs26place. Vous pouvez également créer un méta-package emacs qui dépend de votre package de version au nom, mais ce n'est qu'une vanité. Je ne ferais cela que si vous envisagez de distribuer.

  • Concernant Ubuntu faisant des choses sans "sans demander", vérifiez si les mises à jour automatiques sont activées. Obtenir la dernière version disponible est le comportement par défaut, donc je pense que c'est plus un cas de "ne pas comprendre ce que fait Ubuntu" plutôt qu'un fantôme dans la machine, ou pire.

  • Et en ce qui concerne «pourquoi la version 24, pas 25 ou 26?», Ubuntu et Debian en dessous visent tous deux des versions logicielles stables et testées. 26 est toujours en développement et 25 n'est sorti qu'en septembre 2016.

    De plus, Ubuntu n'est pas une version roulante, donc les versions d'Ubuntu avec 24 resteront sur la version 24 pour la durée de vie de ces versions d'Ubuntu (sauf si quelque chose de vraiment fou se produit). Les correctifs de sécurité seront rétroportés et appliqués si nécessaire, mais ce sera toujours 24.

Oli
la source
Je n'ai jamais demandé "pourquoi la version 24" (je pense que la réponse à cela est évidente) mes mots étaient "pourquoi cette version" se référant à 46, mais comme elle était redondante et moins claire que la question précédente, je l'ai supprimée. Quoi qu'il en soit, j'ai choisi de le renommer emacs26 dans un argument pour vérifier l'installation - je publierai probablement une résolution plus tard. Un de plus. Et merci
Aaron Hall
@Oli (+1) concernant votre dernier point, y a-t-il un bon argument pour ne pas mettre à jour Emacs au-delà de la version qui arrive avec un OS? Y a-t-il des problèmes de stabilité connus ou d'autres problèmes? Je travaille sur Ubuntu 16.04 LTS et j'aimerais passer à la version Emacs 25.1.
n1k31t4
99 aurait été un meilleur numéro de version.
Thorbjørn Ravn Andersen
0

Pourquoi Ubuntu met-il à jour le logiciel sans demander?

Je pense que cela peut être dû à votre politique de mise à jour dans Update Manager (menu Edition). Je recommande l'option du milieu: Optimiser la stabilité et la sécurité. La dernière option sera "Toujours tout mettre à jour" - ce que vous ne voulez pas.

Vous pouvez également mettre sur liste noire le package "emacs-defaults" dans Edition> Préférences> Packages sur liste noire (packages AKA ignorés).

Christopher J Poor
la source
0

Pour donner suite à la réponse de @ Oli, voici comment procéder:

supprimer le package emacs et simplement construire et installer un package emacs25 ou emacs26 à la place.

  1. Trouvez votre fichier emacs.deb. Pour moi, il était dans mon dossier racine source emacs et a été nomméemacs_25.1-1_amd64.deb
  2. Créez un répertoire pour contenir le nouveau paquet Debian que vous allez créer: $ mkdir emacs-rename
  3. Désarchivez le paquet debian dans le répertoire: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Allez dans le répertoire emacs-rename: $ cd emacs-rename
  5. Extraire davantage control.tar.gz et data.tar.xz: $ tar -xzf control.tar.gzet$ tar -xf data.tar.xz
  6. Modifiez le controlfichier qui en résulte avec nano (puisque vous n'avez pas encore emacs;) - $ nano controlet changez Package: emacsen Package: emacs25(ou 26, 27 etc)
  7. Créez un répertoire DEBIAN dans emacs-rename: $ mkdir DEBIANet copiez-y le fichier de contrôle:$ cp control DEBIAN/
  8. Remontez dans un répertoire, retournez à la racine de la source emacs ( $ cd ..) et exécutez $ dpkg --build emacs-rename. Cela peut prendre quelques instants.
  9. Vous devriez maintenant avoir un paquet emacs-rename.deb. Ne vous inquiétez pas, il ne suit pas la structure de nommage des paquets Debian, il est juste pour votre usage. Installez-le avec$ sudo dpkg -i emacs-rename.pkg
  10. Si tout fonctionnait, vous devriez voir:

    Préparation du déballage d'emacs-rename.deb ...
    Déballage d'emacs25 (25.1-1) ...
    Configuration d'emacs25 (25.1-1) ...

audiodude
la source