#linux #archlinux #обновление #зависимости
TL;DR Arch Linux, pacman, два пакета конфликтуют, первый нужен, а второй является зависимостью нужного meta-пакета. Удалил второй пакет, но при обновлении pacman выдаёт ошибку, как убрать её? В arch linux есть пакеты openbabel и babel-cli, которые конфликтуют. Пакет openbabel является зависимостью пакета kalzium, тот является зависимостью пакета kde-meta-kdeedu, который является зависимостью пакета kde-applications-meta. Вот схема зависимости: kde-applications-meta | v kde-meta-kdeedu | v kalzium | v openbabel Пакет kde-applications-meta скорее всего полезный, так что его удалять нельзя. Пакет openbabel мне не нужен (там что-то, связанное с химией), поэтому при установки пакета babel-cli я удалил пакет openbabel, выполнив pacman -Rdd openbabel. Однако теперь при обновлении системы (pacman -Syu) pacman пытается заново установить openbabel (как зависимость kalzium), и у него, конечно, не получается: разрешение зависимостей... проверка конфликтов... ошибка: обнаружен неразрешимый конфликт пакетов ошибка: не удалось подготовить транзакцию (конфликтующие зависимости) :: 'babel-cli' и 'openbabel' конфликтуют Какой наиболее правильный способ сказать pacman'у, чтобы он при обновлении kalzium не пытался установить openbabel? В комментариях советуют добавить пакет openbabel к игнорируем с помощью строки IgnorePkg в файле /etc/pacman.conf. Совет хороший, но тогда каждый раз при обновлении pacman будет спрашивать, примерно так: разрешение зависимостей... предупреждение: пропуск пакета openbabel-2.4.1-4 предупреждение: не удалось разрешить "openbabel", зависимость "kalzium" :: Этот пакет не может быть обновлен из-за неразрешимых зависимостей: kalzium :: Вы уверены что хотите пропустить этот пакет при обновлении? [y/N] Как тогда убрать этот вопрос?
Ответы
Ответ 1
Создай виртуальный пакет openbabel-fake, который будет предоставлять альтернативу openbabel. Не прокатило из-за явного конфликта. Когда-нибудь мейнтейнеры должны с этим разобраться. А пока: extra/kalzium 17.08.1-1 (kde-applications kdeedu) Periodic Table of Elements Кажется не очень нужным пакетом. Заменим его, тогда мета не будет ругаться. Создай виртуальный пакет kalzium-fake, который будет предоставлять альтернативу kalzium Пример aur/akonadi-fake. Если только один раз поставить, то можно прямо на месте исправить PKGBUILD. Создавай свой пакет если ставить не один раз. А полный текст пакета будет такой: # Maintainer: Your Name pkgname=kalzium-fake pkgver=1000.0.0 pkgrel=3 pkgdesc="A fake empty kalzium package for those who don't want openbabel installed on their system" arch=('any') url="https://aur.archlinux.org/packages/${pkgname}/" license=('GPL') provides=('kalzium') replaces=('kalzium') package() { true }
Комментариев нет:
Отправить комментарий