Как apt-get справится с моим программным обеспечением, установленным вручную?

Предположим, что версия Emacs в репозитории APT составляет 24.3, я configure && make install my emacs 24.4. После долгого времени программное обеспечение в репозитории APT было обновлено до 24.5. Что сделает APT, когда я запустил apt-get update && atp-get safeupgrade ?

Каков общий способ позволить APT обрабатывать мое установленное вручную программное обеспечение?

У Apt-get нет команды safeupgrade. Вы думаете о «безопасном обновлении aptitude»?

В стороне, apt-get только «знает» вещи, потому что система пакетов поддерживает базу данных всех изменений, которые делают программы подсистемы пакета. Когда вы загружаете источник и сами его создаете, а затем устанавливаете его, это не делается с использованием подсистемы пакетов, поэтому ни одна из этих изменений не записывается нигде, поэтому apt-get просто не может знать о них.

Если вы никогда не делали «apt-get install emacs» на своем компьютере, подсистема пакета никогда не узнает, что emacs установлен, поэтому «apt-get upgrade» никогда не коснется его, и вы в безопасности. Только программы, перечисленные в «dpkg -list», будут обрабатываться «apt-get upgrade».

Если вы сделали «apt-get install emacs», это совсем другая история.

Если вы достаточно умны, чтобы использовать «./configure –prefix = / usr / local / bin» (и, возможно, несколько других параметров, определяющих местоположения), то ваши пользовательские файлы emacs будут находиться в разных местах, чем «apt-get install emacs ", загруженный в вашу систему, и у вас будет две рабочие установки emacs. Поэтому, когда вы выполняете «apt-get upgrade», и в репозитории есть более новый пакет emacs, чем раньше, чем он найдет apt-get, он заменит его, и ваша пользовательская версия не будет затронута.

Если вы не использовали параметры конфигурации при создании пользовательских emacs, они, вероятно, написали их сверху, если файлы упакованных emacs. Но это действительно зависит от того, какие параметры использовал поддерживающий пакет, когда они построили .deb для размещения в репозитории, поэтому он немного непредсказуем. В любом случае, все, что было переписано вашей пользовательской установкой, снова будет перезаписано, когда вы выполните apt-get upgrade. После каждой установки у вас будет только одна рабочая версия emacs с несколькими посторонними шансами и концами.

APT ничего не знает о вашем установленном вручную программном обеспечении.

Если вы установили Emacs в /usr/local (местоположение по умолчанию), эта установка полностью независима от установки Emacs в /usr управляемой APT. Запуск emacs будет запущен /usr/local/bin/emacs (ваша ручная установка); running /usr/bin/emacs запустит Emacs, установленный APT (более конкретно, самая последняя версия – Debian's¹ Emacs package поддерживает установку нескольких версий).

Если вы установили Emacs в /usr – ну, вы создали беспорядок, но, надеюсь, не большой. /usr зарезервирован для менеджера пакетов, за исключением /usr/local который предназначен для системного администратора (диспетчер пакетов создает только несколько каталогов). Запустите make uninstall из исходного каталога Emacs, чтобы удалить эти файлы. Сделайте это, прежде чем переустанавливать пакеты Debian.

Если вы хотите установить программное обеспечение вручную (в разделе /usr/local ), но объявите его менеджеру пакетов для выполнения зависимостей, вы можете создать поддельный пакет с equivs . См. Как сделать apt распознающим установленный пакет tar?

Debian автоматически байт-компилирует пакеты Elisp для установленных версий Emacs. Чтобы воспользоваться этим, установите версию Emacs через диспетчер пакетов в дополнение к установленному вручную. Не забудьте выбрать один с совместимым байт-кодом ( старшая второстепенная версия с той же основной версией должна быть в порядке , например, 24.3 deb и 24.4 ручная установка). Сделайте вручную установленную версию, прочитайте одни и те же каталоги байт-кодов: загрузите /usr/share/emacs/24.3/lisp/startup.elc из вашей startup.el установки startup.el .

¹ В этом посте «Debian» включает производные, которые используют ту же упаковку Emacs, включая Ubuntu, Mint и т. Д.