Чому цей пакет Emacs перетворений на 46,1? 26 - найвища можлива основна версія на сьогодні


11

Я будував власні emacs, тому що я хочу виправити деякі проблеми в ньому та отримати виправлення помилок вище за течією. Однак Ubuntu продовжує автоматично видаляти власні вбудовані emacs, і мені доведеться продовжувати перебудову та перевстановлення.

Ось мій результат, apt-cache policy emacsколи я лягала спати минулої ночі:

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

Ось це, коли я прокидаюся:

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

Чому цей пакет складається з 46 замість 24 або 25? 26 - це найвища в даний час основна версія emacs, яку ви можете отримати.

Я бачу, що це метапакет: https://packages.debian.org/source/jessie/emacs-defaults

Чому Ubuntu оновлює програмне забезпечення, не запитуючи?

Головне запитання: Що я повинен зробити - призначити моїй версії пакета номер вище 46, просто щоб він приклеївся?

Це здається жахливим злом, а може, саме так воно і має працювати?


2
З журналу змін : "Встановіть початкову версію вище, ніж будь-який існуючий двійковий пакет emacs."
муру

це мене сумує. : /
Аарон Холл

Відповіді:


15

Тут є багато питань і запитань, тому я коротко, але спробую їх охопити.

  • emacsце лише метапакет, який вказує на останню версію emacs...Ubuntu (на даний момент emacs24). "46.1" - це лише версія пакету, навмисно висока для переміщення старих пакетів emacs. Перегляньте apt show emacsдетальну інформацію.

  • Ви переосмислюєте цей emacsпакет із пакетом із меншою версією версії. Ubuntu визначає пріоритет версії пакета, встановленої за номером версії. Найвищий буде встановлений (при встановленні або модернізації), отже, ваш постійно перебуває у глузді.

    Це можна побачити у apt-cache policy emacsвисновку. Кандидат - вища версія.

  • Ви можете подолати пріоритети за допомогою закріплення або підробки номера своєї версії (щось вище 46.1), але це ігнорує проблему (і може залишити emacs24пакет на місці).

  • Ваш найкращий варіант видалення emacsпакета і просто будівля і установка emacs25або emacs26пакет замість цього. Ви могли б також створити EMACS мета-пакет , який залежав від пакета версія-в-імені, але це просто суєта. Я б цього не робив, якщо ви не плануєте розповсюдження.

  • Що стосується того, що Ubuntu робить речі без "запитань", перевірте, чи не включені автоматичні оновлення. Отримати найновіші доступні для нього поведінки за замовчуванням, тому я думаю, що це скоріше випадок "не розуміння того, що робить Ubuntu", а не привид у машині, або ще гірше.

  • А що стосується "чому версія 24, а не 25 чи 26?", То Ubuntu та Debian під ним обидва мають на меті стабільні, перевірені версії програмного забезпечення. 26 ще знаходиться в стадії розробки, а 25 не з'явилося до вересня 2016 року.

    Крім того, Ubuntu не є прокатним випуском, тому версії Ubuntu з 24 залишатимуться на версії 24 впродовж життя цих релізів Ubuntu (якщо не трапиться щось справді божевільне). Патчі безпеки будуть підтримуватися та застосовуватись у разі потреби, але це все одно буде 24.


Я ніколи не запитував "чому версія 24" (я вважаю, що відповідь на це очевидна) мої слова були "чому ця версія" стосується 46, але оскільки вона була зайвою і менш зрозумілою, ніж попереднє питання, я її видалив. У будь-якому разі я пішов із перейменуванням його на emacs26 в аргументі перевірити інсталяцію - я, мабуть, опублікую резолюцію пізніше. Плюс один. І дякую
Аарон Холл

@Oli (+1) щодо вашої останньої точки, чи є хороший аргумент для того, щоб не модернізувати Emacs після версії, що надходить із ОС? Чи відомі проблеми стабільності чи інші проблеми? Я працюю над Ubuntu 16.04 LTS і хотів би перейти до версії Emacs 25.1.
n1k31t4

99 був би кращим номером версії.
Thorbjørn Ravn Andersen

0

Чому Ubuntu оновлює програмне забезпечення, не запитуючи?

Я думаю, це може бути пов’язано з вашою політикою оновлень у Менеджері оновлень (меню редагування). Я рекомендую середній варіант: Оптимізуйте стабільність та безпеку. Останній варіант буде "Завжди оновлювати все" - чого ви не хочете.

Ви також можете передати чорний список пакету "emacs-defaults" у меню Правка> Налаштування> Пакети з чорного списку (пакети AKA Ignored).


0

Слідом за відповіддю @ Олі, ось як ви працюєте:

видалення пакета emacs та просто створення та встановлення натомість пакета emacs25 або emacs26.

  1. Знайдіть свій файл emacs.deb. Для мене це було у моїй кореневій папці джерела Emacs і було названо ім'яemacs_25.1-1_amd64.deb
  2. Створіть каталог для зберігання нового пакета debian, який ви збираєтеся створити: $ mkdir emacs-rename
  3. Скасувати передачу пакета debian у каталог: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Перейдіть у каталог emacs-rename: $ cd emacs-rename
  5. Далі витягнути control.tar.gz і data.tar.xz: $ tar -xzf control.tar.gzі$ tar -xf data.tar.xz
  6. Відредагуйте controlфайл, у результаті якого є nano (оскільки у вас ще немає emacs;) - $ nano controlі змініть Package: emacsна Package: emacs25(або 26, 27 тощо)
  7. Створіть каталог DEBIAN всередині emacs-перейменуйте: $ mkdir DEBIANта скопіюйте туди файл керування:$ cp control DEBIAN/
  8. Перейдіть до каталогу, поверніться до початкового корінця ( $ cd ..) emacs ( ) та запустіть $ dpkg --build emacs-rename. Це може зайняти кілька моментів.
  9. Тепер у вас повинен бути пакет emacs-rename.deb. Не хвилюйтеся, що вона не відповідає належній структурі іменування пакунків Debian, це лише для вашого використання. Встановіть його за допомогою$ sudo dpkg -i emacs-rename.pkg
  10. Якщо все спрацювало, ви повинні побачити:

    Підготовка до розпакування emacs-rename.deb ...
    Розпакування emacs25 (25.1-1) ...
    Налаштування emacs25 (25.1-1) ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.