web-dev-qa-db-fra.com

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

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

Voici mon résultat de apt-cache policy emacs quand je me suis couché la nuit dernière:

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

La 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 paquet est-il mis à la version 46 au lieu de 24 ou 25? 26 est actuellement la version majeure majeure d’Emacs que vous pouvez obtenir.

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

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

Question principale: que dois-je faire - attribuer à la version de mon package un nombre supérieur à 46 simplement pour le conserver?

Cela ressemble à un bidouillage horrible, ou peut-être que c'est comme ça que ça fonctionne?

10
Aaron Hall

Il y a beaucoup de problèmes et de questions ici, alors je serai bref mais j'essaierai de les couvrir tous.

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

  • Vous substituez ce package emacs à un package avec un numéro de version inférieur. Ubuntu donne la priorité à la version du paquet installée par numéro de version. Le plus haut sera celui qui sera installé (lors de l’installation ou de la mise à niveau), le vôtre sera donc constamment éjecté.

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

  • Vous pouvez contourner les priorités en épinglant ou en falsifiant votre numéro de version (supérieur à 46.1), mais cela ignore plutôt le problème (et peut laisser un paquet emacs24 en place).

  • Votre meilleure option consiste à supprimer le paquet emacs et à juste construire et installer un paquet emacs25 ou emacs26 à la place. Vous pourriez également créer un Le méta-paquet emacs qui dépend de votre paquet version-en-nom, mais ce n'est qu'une vanité. Je ne le ferais pas à moins que vous n'ayez prévu de le distribuer.

  • En ce qui concerne Ubuntu qui fait des choses sans "sans demander", vérifiez si les mises à jour automatiques sont activées. Le comportement par défaut est le dernier comportement à avoir. Je pense donc qu'il s'agit plus d'un cas de "ne pas comprendre ce que fait Ubuntu" plutôt que d'un fantôme dans la machine, ou pire.

  • Et pour ce qui est de "pourquoi la version 24, et non pas la version 25 ou 26?", Ubuntu et Debian se trouvent en dessous et visent des versions logicielles stables et testées. 26 sont encore en développement et 25 ne sont pas sortis avant septembre 2016.

    De plus, Ubuntu n'étant pas une version mobile, les versions d'Ubuntu avec 24 resteront sur la version 24 pendant toute la durée de vie de ces versions d'Ubuntu (à moins que quelque chose de vraiment fou ne se produise). Les correctifs de sécurité seront rétroportés et appliqués si nécessaire, mais le nombre de correctifs sera toujours de 24.

15
Oli

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

enlever le paquet emacs et juste construire et installer un paquet emacs25 ou emacs26 à la place.

  1. Trouvez votre fichier emacs.deb. Pour moi, il se trouvait dans mon dossier racine source emacs et portait le nom 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.gz et $ tar -xf data.tar.xz
  6. Editez le fichier control qui résulte avec nano (puisque vous n’avez pas encore emacs;) - $ nano control et remplacez Package: emacs par Package: emacs25 (ou 26, 27, etc.).
  7. Créez un répertoire DEBIAN dans emacs-rename: $ mkdir DEBIAN et copiez le fichier de contrôle à cet emplacement: $ cp control DEBIAN/
  8. Montez un répertoire, revenez à la racine 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 s'il ne suit pas la structure de nommage des paquets Debian appropriée, c'est juste pour votre usage. Installez-le avec $ Sudo dpkg -i emacs-rename.pkg
  10. Si tout a fonctionné, vous devriez voir:

    Préparer le déballage emacs-rename.deb ...
    Déballer emacs25 (25.1-1) ...
    Configuration d’emacs25 (25.1-1) ...

0
audiodude

Pourquoi Ubuntu met-il à jour le logiciel sans rien 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 le paquet "emacs-default" dans la liste noire dans Edition> Préférences> Paquets en liste noire (paquets AKA ignorés).

0