Как сделать, чтобы apt система не ругалась на битые зависимости у пакета
Есть древний проприетарный пакет (т.е. пересобрать не вариант), установленный с нарушением зависимостей (не хватает кое-каких) на современной системе. Но он приемлемо для меня работает и без этих зависимостей.
fix broken install его просто удаляет. Вот как тут штатно отключить ругань на это?

praseodim ★★★★★
01.11.17 15:18:54 MSK

Если у тебя был deb этого пакета (или он есть еще), то ты просто распакуй его, подправь debian/control на новые зависимости (раз он с ними еще работает, то хуже ему не будет) и запакуй назад. Проблем быть не должно.
Zubok ★★★★★
( 01.11.17 15:27:25 MSK )

Я как-то делал один раз такое, поэтому у меня только один рецепт из практики:
При помощи dpkg-deb -e packagename.deb извлекаем спек. Автоматически создается каталог /DEBIAN со скриптами и упаковочной информацией. Затем извлекаем все дерево каталогов пакета при помощи dpkg-deb -x packagename.deb . И /DEBIAN, и дерево каталогов кладем во временную директорию /tmp. Затем подправляем спецификацию /DEBIAN/control на предмет зависимостей. Последний этап — перепаковка при помощи dpkg-deb -b /tmp new_package.deb .
Zubok ★★★★★
( 01.11.17 15:31:48 MSK )

И еще. Может быть, если нет пакета deb, можно подправить напрямую в базе данных пакетов. Вот только я сейчас не соображу где именно. Я думаю, что в /var/lib/dpkg/status и в /var/lib/dpkg/available может быть. Ты же не через apt этот пакет ставил наверняка, поэтому apt в списках пакетов его не имеет (кроме случая, если ты локальный репозиторий apt держишь). Ну, попробуй. Если не получится, то еще посмотрим, где может быть. Да, и кэш apt после этого на всякий случай потри и сгенери новый через apt-get update или aptitude update.
Zubok ★★★★★
( 01.11.17 15:49:28 MSK )
Последнее исправление: Zubok 01.11.17 15:52:24 MSK (всего исправлений: 2)
Посмотри на /var/lib/dpkg/status и заставь его думать, что у пакета нет тех зависимосией.
А можешь ещё скачать либы зависимостей и в .desktop прописать LD_PRELOAD. Вот тебе вектор.
anonymous
( 01.11.17 17:59:29 MSK )
Ответ на: комментарий от Zubok 01.11.17 15:31:48 MSK

Как вариант также можно распаковать куда-нибудь в /opt/packagename и перелинковать вручную, если это необходимо. По костыльности примерно одинаково. Впрочем решение с пакетом красивей, но проблема в том что если ТС это сделает не грубо, то ему придется потом так с каждой сменой релиза делать. Так что пожалуй самый красивый вариант, это создать свой пакет, который просто будет распаковывать архив. Вот пример debian/rules, например:
#!/usr/bin/make -f %: dh $@ override_dh_auto_install: mkdir -p $(CURDIR)/debian/packagename tar xfz $(CURDIR)/debian/packagename.tar.gz -C $(CURDIR)/debian/packagename --strip-components=1 override_dh_auto_test:
anonymous_sama ★★★★★
( 01.11.17 18:51:17 MSK )
Последнее исправление: anonymous_sama 01.11.17 18:51:39 MSK (всего исправлений: 1)

да просто игнорировать же
targitaj ★★★★★
( 01.11.17 18:58:48 MSK )
Ответ на: комментарий от Zubok 01.11.17 15:31:48 MSK

При помощи dpkg-deb -e packagename.deb извлекаем спек. Автоматически создается каталог /DEBIAN со скриптами и упаковочной информацией. Затем извлекаем все дерево каталогов пакета при помощи dpkg-deb -x packagename.deb. И /DEBIAN, и дерево каталогов кладем во временную директорию /tmp. Затем подправляем спецификацию /DEBIAN/control на предмет зависимостей. Последний этап — перепаковка при помощи dpkg-deb -b /tmp new_package.deb
Спасибо! Так и сделал и все получилось.
praseodim ★★★★★
( 01.11.17 19:07:25 MSK ) автор топика
Ответ на: комментарий от anonymous_sama 01.11.17 18:51:17 MSK

но проблема в том что если ТС это сделает не грубо, то ему придется потом так с каждой сменой релиза делать.
Вряд ли там будет новый релиз, а если вдруг и будет, то будет все совсем иначе.
praseodim ★★★★★
( 01.11.17 19:12:22 MSK ) автор топика
Ответ на: комментарий от praseodim 01.11.17 19:07:25 MSK

Можно было dpkg-deb -R вместо этих двух dpkg-deb в начале. Я до этого ключа в свое время просто не дошел тогда. Он все полностью распаковывает в нужную директорию.
Zubok ★★★★★
( 01.11.17 19:13:42 MSK )
Ответ на: комментарий от anonymous_sama 01.11.17 18:51:17 MSK

Ну можно и свой пакет сделать, но мне кажется, что проще просто спек подправить, повысить версии пакетов (можно же неравенствами задать типа >=2.2.1), заменить другие зависимости, если пакеты поменяли название. Это все чтобы они подтянулись автоматом при установке и все было в порядке.
А смена релиза — это весьма редкое событие. Главное, чтобы в релизе вообще нужные библиотеки были, а то внезапно qt3 уже не найти и тут уже вопрос правки отходит на второй план. На первый приходит вопрос, где взять qt3 (это просто пример).
Zubok ★★★★★
( 01.11.17 19:19:20 MSK )
Последнее исправление: Zubok 01.11.17 19:19:30 MSK (всего исправлений: 1)
Ответ на: комментарий от Zubok 01.11.17 19:13:42 MSK

Хорошо, хотя получилось и так.
Правда я создавая тему думал, что должен быть какой-то штатный способ принудительно отключить проверку зависимостей, но —force-all позволяет ставить «невзирая на», а вот в базе dpkg все-равно битая зависимость оставалась.
В принципе пересборка деба даже красивое решение.
praseodim ★★★★★
( 01.11.17 19:27:32 MSK ) автор топика
Рад, что у вас всё получилось. На будущее: в такой ситуации самый простой метод решения — использовать equivs.
Решение проблем при установке программ
Иногда, при работе с пакетными менеджерами, возникает проблема с неразрешенными зависимостями пакетов. В данной статье будут рассмотрены варианты решения этой проблемы.
Все операции выполняются в терминале.
Убедитесь что ни один пакетный менеджер не запущен. Это может быть: apt-get, aptitude, Synaptic, KPackageKit, Центр Приложений Ubuntu и тд.
Используя APT-GET
Обычно ошибка выглядит так:
E: Неудовлетворённые зависимости. Попытайтесь выполнить 'apt-get -f install', не указывая имени пакета, (или найдите другое решение).
Удалите кеш пакетов:
sudo apt-get clean
Удалите осиротевшие пакеты:
sudo apt-get autoremove
Обновите список пакетов:
sudo apt-get update
sudo apt-get -f install
Обычно этого достаточно.
Если вы запутались с зависимостями, поможет интеллектуальное обновление системы:
sudo apt-get dist-upgrade
Если установка была прервана, то следует переустановить пакет
sudo apt-get install --reinstall имя_пакета
Если репозиторий недоступен, исправить:
/etc/apt/sources.list — главный список репозиториев
/etc/apt/sources.list.d — каталог для сторонних репозиториев
Если невозможно удалить/переустановить пакет, исправить:
Как «починить» убунту?

apt update; — ВСЕ репы обновляет?
apt upgrade
попробовать разрулить зависимости через aptitude. не помню, кнопкой f или g в нём.
Ответ написан более года назад
lolSaByR @lolSaByR Автор вопроса
cat /etc/apt/sources.list
# deb cdrom:[Ubuntu 20.04.1 LTS _Focal Fossa_ - Release amd64 (20200731)]/ focal main restricted deb-src http://archive.ubuntu.com/ubuntu focal main restricted #Added by software-properties # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://kz.archive.ubuntu.com/ubuntu/ focal main restricted deb-src http://kz.archive.ubuntu.com/ubuntu/ focal universe restricted multiverse main ## Major bug fix updates produced after the final release of the ## distribution. deb http://kz.archive.ubuntu.com/ubuntu/ focal-updates main restricted deb-src http://kz.archive.ubuntu.com/ubuntu/ focal-updates universe restricted multiverse main ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://kz.archive.ubuntu.com/ubuntu/ focal universe # deb-src http://kz.archive.ubuntu.com/ubuntu/ focal universe deb http://kz.archive.ubuntu.com/ubuntu/ focal-updates universe # deb-src http://kz.archive.ubuntu.com/ubuntu/ focal-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://kz.archive.ubuntu.com/ubuntu/ focal multiverse # deb-src http://kz.archive.ubuntu.com/ubuntu/ focal multiverse deb http://kz.archive.ubuntu.com/ubuntu/ focal-updates multiverse # deb-src http://kz.archive.ubuntu.com/ubuntu/ focal-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://kz.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://kz.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu focal partner # deb-src http://archive.canonical.com/ubuntu focal partner deb http://security.ubuntu.com/ubuntu focal-security main restricted deb-src http://security.ubuntu.com/ubuntu focal-security universe restricted multiverse main deb http://security.ubuntu.com/ubuntu focal-security universe # deb-src http://security.ubuntu.com/ubuntu focal-security universe deb http://security.ubuntu.com/ubuntu focal-security multiverse # deb-src http://security.ubuntu.com/ubuntu focal-security multiverse # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual. deb https://dl.winehq.org/wine-builds/ubuntu/ focal main # deb-src https://dl.winehq.org/wine-builds/ubuntu/ focal main
sudo aptitude install -f sudo: aptitude: команда не найдена
lolSaByR @lolSaByR Автор вопроса
lolSaByR, apt update
Сущ:1 http://dl.google.com/linux/chrome/deb stable InRelease Пол:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease [91,7 kB] Игн:3 http://ppa.launchpad.net/cschramm/blueman/ubuntu focal InRelease Пол:4 http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04 InRelease [1 554 B] Сущ:5 http://archive.ubuntu.com/ubuntu focal InRelease Сущ:6 http://security.ubuntu.com/ubuntu focal-security InRelease Пол:7 https://dl.winehq.org/wine-builds/ubuntu focal InRelease [8 041 B] Пол:8 https://download.mono-project.com/repo/ubuntu stable-focal InRelease [4 416 B] Ошб:4 http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04 InRelease Следующие подписи неверны: EXPKEYSIG 1488EB46E192A257 home:manuelschneid3r OBS Project Сущ:9 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease Сущ:10 http://kz.archive.ubuntu.com/ubuntu focal InRelease Пол:11 https://download.sublimetext.com apt/stable/ InRelease [2 536 B] Сущ:12 http://kz.archive.ubuntu.com/ubuntu focal-updates InRelease Сущ:13 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease Ошб:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 7FCC7D46ACCC4CF8 Сущ:14 http://kz.archive.ubuntu.com/ubuntu focal-backports InRelease Ошб:7 https://dl.winehq.org/wine-builds/ubuntu focal InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 76F1A20FF987672F Ошб:8 https://download.mono-project.com/repo/ubuntu stable-focal InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY A6A19B38D3D831EF Ошб:11 https://download.sublimetext.com apt/stable/ InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY F57D4F59BD3DF454 Сущ:15 http://ppa.launchpad.net/linuxuprising/java/ubuntu focal InRelease Сущ:16 http://ppa.launchpad.net/lutris-team/lutris/ubuntu focal InRelease Сущ:17 http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu focal InRelease Ошб:18 http://ppa.launchpad.net/samoilov-lex/gamemode/ubuntu focal InRelease 403 Forbidden [IP: 185.125.190.52 80] Игн:19 http://ppa.launchpad.net/sunab/kdenlive-release/ubuntu focal InRelease Игн:20 http://ppa.launchpad.net/webupd8team/atom/ubuntu focal InRelease Ошб:21 http://ppa.launchpad.net/cschramm/blueman/ubuntu focal Release 404 Not Found [IP: 185.125.190.52 80] Ошб:22 http://ppa.launchpad.net/sunab/kdenlive-release/ubuntu focal Release 404 Not Found [IP: 185.125.190.52 80] Ошб:23 http://ppa.launchpad.net/webupd8team/atom/ubuntu focal Release 404 Not Found [IP: 185.125.190.52 80] Чтение списков пакетов… Готово W: Произошла ошибка при проверке подписи. Репозиторий не обновлён, и будут использованы предыдущие индексные файлы. Ошибка GPG: http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04 InRelease: Следующие подписи неверны: EXPKEYSIG 1488EB46E192A257 home:manuelschneid3r OBS Project W: Ошибка GPG: http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 7FCC7D46ACCC4CF8 E: Репозиторий «http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). W: Ошибка GPG: https://dl.winehq.org/wine-builds/ubuntu focal InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 76F1A20FF987672F E: Репозиторий «https://dl.winehq.org/wine-builds/ubuntu focal InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). W: Ошибка GPG: https://download.mono-project.com/repo/ubuntu stable-focal InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY A6A19B38D3D831EF E: Репозиторий «https://download.mono-project.com/repo/ubuntu stable-focal InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). W: Ошибка GPG: https://download.sublimetext.com apt/stable/ InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY F57D4F59BD3DF454 E: Репозиторий «https://download.sublimetext.com apt/stable/ InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). E: Не удалось получить http://ppa.launchpad.net/samoilov-lex/gamemode/ubuntu/dists/focal/InRelease 403 Forbidden [IP: 185.125.190.52 80] E: Репозиторий «http://ppa.launchpad.net/samoilov-lex/gamemode/ubuntu focal InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). E: Репозиторий «http://ppa.launchpad.net/cschramm/blueman/ubuntu focal Release» не содержит файла Release. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). E: Репозиторий «http://ppa.launchpad.net/sunab/kdenlive-release/ubuntu focal Release» не содержит файла Release. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8). E: Репозиторий «http://ppa.launchpad.net/webupd8team/atom/ubuntu focal Release» не содержит файла Release. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8).
apt upgrade
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Вы можете запустить «apt --fix-broken install» для исправления этих ошибок. Следующие пакеты имеют неудовлетворённые зависимости: libc6-dbg : Зависит: libc6 (= 2.31-0ubuntu9.9) но 2.31-0ubuntu9.7 уже установлен libc6-dev : Зависит: libc6 (= 2.31-0ubuntu9.9) но 2.31-0ubuntu9.7 уже установлен libc6-i386 : Зависит: libc6 (= 2.31-0ubuntu9.9) но 2.31-0ubuntu9.7 уже установлен E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt --fix-broken install», не указывая имени пакета (или указав решение).

justhostRU @justhostRU
lolSaByR,
>aptitude: команда не найдена
уже установили?

justhostRU @justhostRU
у вас куча репозитариев не из стандартной системы. убирайте из все и откатывайте пакеты на системные.
Linux Mint Forums
Его установка завершается с ошибкой:
E: /var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb: попытка перезаписать «/usr/lib/python3.10/_sysconfigdata__linux_x86_64-linux-gnu.py», который уже имеется в пакете libpython3.10-minimal:amd64 3.10.4-1+focal1
E: /var/cache/apt/archives/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb: попытка перезаписать «/usr/lib/python3.10/typing.py», который уже имеется в пакете libpython3.10-stdlib:amd64 3.10.4-1+focal1
При попытке установить любой пакет через apt:
sudo apt-get install mc
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет mc самой новой версии (3:4.8.24-2ubuntu1).
Вы можете запустить «apt —fix-broken install» для исправления этих ошибок.
Следующие пакеты имеют неудовлетворённые зависимости:
python3.10 : Зависит: libpython3.10-stdlib (= 3.10.4-1+focal2) но 3.10.4-1+focal1 должен быть установлен
python3.10-minimal : Зависит: libpython3.10-minimal (= 3.10.4-1+focal2) но 3.10.4-1+focal1 должен быть установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt —fix-broken install», не указывая имени пакета (или указав решение).
Ок, пробуем исправить:
sudo apt —fix-broken install
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Исправление зависимостей… Готово
Будут установлены следующие дополнительные пакеты:
libpython3.10-minimal libpython3.10-stdlib
Следующие пакеты будут обновлены:
libpython3.10-minimal libpython3.10-stdlib
Обновлено 2 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 18 пакетов не обновлено.
Установлено или удалено не до конца 2 пакетов.
Необходимо скачать 0 B/2 566 kB архивов.
После данной операции объём занятого дискового пространства уменьшится на 68,6 kB.
Хотите продолжить? [Д/н] y
(Чтение базы данных … на данный момент установлен 486081 файл и каталог.)
Подготовка к распаковке …/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb …
Распаковывается libpython3.10-stdlib:amd64 (3.10.4-1+focal2) на замену (3.10.4-1+focal1) …
dpkg: ошибка при обработке архива /var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb (—unpack):
попытка перезаписать «/usr/lib/python3.10/_sysconfigdata__linux_x86_64-linux-gnu.py», который уже имеется в пакете libpython3.10-minimal:amd64 3.10.4-1+focal1
Подготовка к распаковке …/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb …
Распаковывается libpython3.10-minimal:amd64 (3.10.4-1+focal2) на замену (3.10.4-1+focal1) …
dpkg: ошибка при обработке архива /var/cache/apt/archives/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb (—unpack):
попытка перезаписать «/usr/lib/python3.10/typing.py», который уже имеется в пакете libpython3.10-stdlib:amd64 3.10.4-1+focal1
dpkg-deb: ошибка: вставка subprocess was killed by signal (Обрыв канала)
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb
/var/cache/apt/archives/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Как видно, завершается с ошибкой
Удалить python3.10 тоже невозможно:
sudo apt purge python3.10
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Вы можете запустить «apt —fix-broken install» для исправления этих ошибок.
Следующие пакеты имеют неудовлетворённые зависимости:
python3.10-minimal : Зависит: libpython3.10-minimal (= 3.10.4-1+focal2) но 3.10.4-1+focal1 должен быть установлен
Рекомендует: python3.10 но он не будет установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt —fix-broken install», не указывая имени пакета (или указав решение).
python3.10
Python 3.10.4 (main, Apr 8 2022, 17:35:13) [GCC 9.4.0] on linux
Type «help», «copyright», «credits» or «license» for more information.
>>>
Что с этим всем делать?
Необходимо либо исправить, либо удалить python3.10. Как?
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.