Я создавал свой собственный 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 только, чтобы заставить его придерживаться?
Это походит на ужасный взлом, или возможно это - то, как он, как предполагается, работает?
Существует много проблем и вопросов здесь, таким образом, я буду краток, но попытаюсь покрыть их всех.
emacs
просто метапакет, который указывает на последнюю версию emacs...
в Ubuntu (в настоящее время emacs24
). Эти "46.1" просто версия пакета, сознательно высоко для перемещения более старых emacs пакетов. См. apt show emacs
некоторое время больше информации
, Вы являетесь переопределяющими что emacs
пакет с более низким пакетом номера версии. Ubuntu располагает по приоритетам версию пакета, установленную номером версии. Самым высоким будет тот, который установлен (при установке или обновлении), следовательно Ваш постоянно guzzumped.
Вы видите это в эти 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.
, Почему Ubuntu обновляет программное обеспечение без выяснения?
я думаю, что это могло бы произойти из-за Вашей политики Обновления в Менеджере обновлений (Меню Edit). Я рекомендую среднюю опцию: Оптимизируйте устойчивость и безопасность. Последняя опция будет "Всегда обновлять все" - который Вы не хотите.
можно также поместить в черный список пакет "emacs-значения-по-умолчанию" в Редактировании> Предпочтения> Помещенные в черный список пакеты (иначе Проигнорированные пакеты).
Ответ @Oli развития, вот то, как Вы идете о:
удаление emacs пакета и просто создание и установка emacs25 или emacs26 пакета вместо этого.
emacs_25.1-1_amd64.deb
$ mkdir emacs-rename
$ ar -x emacs_25.1-1_amd64.deb emacs-rename/
$ cd emacs-rename
$ tar -xzf control.tar.gz
и $ tar -xf data.tar.xz
control
файл, который заканчивается с нано (так как у Вас еще нет emacs ;)- $ nano control
и изменение Package: emacs
кому: Package: emacs25
(или 26, 27 и т.д.)$ mkdir DEBIAN
и скопируйте файл управления там: $ cp control DEBIAN/
$ cd ..
) и выполненный $ dpkg --build emacs-rename
. Это могло бы занять некоторое время.$ sudo dpkg -i emacs-rename.pkg
Подготовка распаковать emacs-rename.deb...
Распаковка emacs25 (25.1-1)...
Установка emacs25 (25.1-1)...