Вопрос или проблема
У меня свежая Ubuntu 20.04.1, и я хочу установить Emacs 27. Стандартный Emacs из apt-get – 26.3, поэтому я хочу установить его через ppa.
Запускаю software-properties-gtk
, перехожу в другие программы и добавляю ppa:kelleyk/emacs
. Появляется всплывающее окно с просьбой обновить источники пакетов, я подтверждаю. Теперь я пытаюсь установить его:
$ sudo apt-get install emacs27
[sudo] пароль для myusername:
Чтение списков пакетов... Готово
Формирование дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты были установлены автоматически и больше не нужны:
emacs-bin-common emacs-common emacs-el emacs-gtk gsfonts imagemagick-6-common libfprint-2-tod1
liblqr-1-0 libmagickcore-6.q16-6 libmagickwand-6.q16-6
Используйте 'sudo apt autoremove', чтобы удалить их.
Следующие дополнительные пакеты будут установлены:
emacs27-common
Следующие НОВЫЕ пакеты будут установлены:
emacs27 emacs27-common
0 обновлено, 2 новыми установлено, 0 для удаления и 12 не обновлено.
Необходимо скачать 21,9 МБ архивов.
После этой операции будет использовано 95,8 МБ дополнительного дискового пространства.
Вы хотите продолжить? [Y/n] Y
Получение:1 http://ppa.launchpad.net/kelleyk/emacs/ubuntu focal/main amd64 emacs27-common all 27.1~1.git86d8d76aa3-kk2+20.04 [18,2 MB]
Получение:2 http://ppa.launchpad.net/kelleyk/emacs/ubuntu focal/main amd64 emacs27 amd64 27.1~1.git86d8d76aa3-kk2+20.04 [3.651 kB]
Загружено 21,9 МБ за 5с (4.847 kB/s)
Выбор ранее невыбранного пакета emacs27-common.
(Чтение базы данных ... 185797 файлов и каталогов в настоящее время установлено.)
Подготовка к распаковке .../emacs27-common_27.1~1.git86d8d76aa3-kk2+20.04_all.deb ...
Распаковка emacs27-common (27.1~1.git86d8d76aa3-kk2+20.04) ...
dpkg: ошибка при обработке архива /var/cache/apt/archives/emacs27-common_27.1~1.git86d8d76aa3-kk2+20.04_all.deb (--unpack):
пытается перезаписать '/usr/include/emacs-module.h', который также есть в пакете emacs-common 1:26.3+1-1ubuntu2
dpkg-deb: ошибка: под процессом paste была прервана сигналом (Broken pipe)
Выбор ранее невыбранного пакета emacs27.
Подготовка к распаковке .../emacs27_27.1~1.git86d8d76aa3-kk2+20.04_amd64.deb ...
Распаковка emacs27 (27.1~1.git86d8d76aa3-kk2+20.04) ...
Во время обработки возникли ошибки:
/var/cache/apt/archives/emacs27-common_27.1~1.git86d8d76aa3-kk2+20.04_all.deb
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Появляется всплывающее окно от обновления программного обеспечения:
Система пакетов сломана
Проверьте, используете ли вы сторонние репозитории. Если да, отключите их, так как они являются распространенным источником проблем.
Кроме того, выполните следующую команду в терминале: apt-get install -f
Транзакция не удалась: система пакетов сломана
Следующие пакеты имеют неудовлетворенные зависимости:
emacs27: Зависит от: emacs27-common, но он не установлен
Зависит от: libgmp10 (>= 2:6.0.0), но установлен 2:6.2.0+dfsg-4
Зависит от: libice6 (>= 1:1.0.0), но установлен 2:1.0.10-0ubuntu1
Зависит от: libxfixes3 (>= 1:4.0.1), но установлен 1:5.0.3-2
Зависит от: zlib1g (>= 1:1.1.4), но установлен 1:1.2.11.dfsg-2ubuntu1.1
Но sudo apt-get install libgmp10 libice6 libxfixes3 zlib1g
показывает, что они уже установлены.
После установки emacs27-common с помощью sudo apt-get install emacs27-common
я могу установить emacs27
с помощью sudo apt-get install emacs27
. Я не уверен, почему это необходимо, поскольку оба пакета находятся в одном и том же ppa…
Ответ или решение
Чтобы установить Emacs 27.1 на Ubuntu 20.04.1 через PPA, следуйте приведенной ниже пошаговой инструкции. Данная инструкция учитывает возникшие ошибки и особенности, описанные вами.
Шаг 1: Добавление PPA репозитория
Откройте терминал и добавьте PPA репозиторий, используя следующую команду:
sudo add-apt-repository ppa:kelleyk/emacs
Вы также можете использовать графический интерфейс, как вы уже упоминали, через software-properties-gtk
. Однако, использование терминала — быстрее и более эффективно.
Шаг 2: Обновление индекса пакетов
После добавления PPA, обновите индекс пакетов:
sudo apt update
Это действие последовательно обновит список доступных пакетов и позволит системе обнаружить новые версии, включая Emacs 27.1.
Шаг 3: Установка Emacs 27.1
Попробуйте установить Emacs с помощью следующей команды:
sudo apt install emacs27
Решение возникающих ошибок
Если вы столкнетесь с ошибками, похожими на те, что были описаны вами, это может быть связано с конфликтом версий пакетов, как, например, emacs-common
. Если установка зависает или не проходит, попробуйте следующее:
-
Устранение проблем с зависимостями. Если система сообщает о «порванной» системе пакетов, выполните команду:
sudo apt --fix-broken install
Это поможет исправить проблемы с зависимостями и может установить необходимые пакеты, если они еще не были установлены.
-
Прямой импорт пакета. Если ошибка продолжает возникать, попробуйте установить
emacs27-common
отдельно:sudo apt install emacs27-common
Затем установите
emacs27
:sudo apt install emacs27
Шаг 4: Проверка установки
После успешной установки проверьте версию Emacs, чтобы убедиться, что все прошло корректно:
emacs --version
Это должно вывести GNU Emacs 27.1
.
Итоги
Установка Emacs 27.1 на Ubuntu 20.04.1 через PPA не должна вызвать серьезных проблем, если придерживаться вышеуказанных шагов. В случае возникновения конфликтов с уже установленными пакетами, придется немного поработать с ними, как описано. Удачи в работе с Emacs!