У меня keybase
установлен CLI, но keybase
пакет, к сожалению, также содержит клиент GUI, который требует libadwaita, GTK и кучу других огромных вещей GUI - что значительно увеличило бы количество установленных мной пакетов и объем дискового пространства, которое использует WSL. Из-за этого я вручную установил keybase
с, dpkg -i
чтобы избежать добавления всех зависимостей GUI, что позволило мне использовать CLI без всякого раздувания.
Однако это привело apt
к остановке работы. Когда я пытаюсь установить любой другой пакет, даже что-то совершенно не связанное с keybase
, я получаю это сообщение об ошибке:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
keybase : Depends: libappindicator1 but it is not going to be installed or
libayatana-appindicator1 but it is not going to be installed
Depends: libgconf-2-4 but it is not going to be installed
Depends: libgtk-3-0 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Единственное решение, которое я нашел, это временно удалить keybase
с помощью dpkg
, выполнить мою apt
команду, а затем переустановить keybase
снова. Но мне не нравится это решение - я хочу сохранить keybase
свою систему. Есть ли способ игнорировать apt
эти неудовлетворенные зависимости? Или есть ли способ иметь какие-либо неудовлетворенные зависимости в системе, не нарушая apt
?
решение1
Apt нельзя использовать для обновления или установки программного обеспечения, если в системе имеются неудовлетворенные зависимости.
- "Не может быть использован для обновления" включает обновления пакета безопасности. Системы с неудовлетворенными зависимостями ненетполучать обновления безопасности. Поэтому большинству пользователей неразумно оставлять систему в таком состоянии.
Для большинства пользователей Ubuntu,неудовлетворенные зависимостипроисходят, когда они устанавливают не-Ubuntu или неправильную версию программного обеспечения. Проблема решается, когда они удаляют эти не-Ubuntu или неправильные версии пакетов.
Для бесстрашных продвинутых пользователей, Apt и dpkg имеют --force
(см. man dpkg
) опции, которые позволяют ограниченное переопределение. Это наследие эпохи до Ubuntu, и они редко используются сегодня... но могут быть тем, что вы ищете. Например, --force-depends-version
:
depends-version: Не обращать внимания на версии при проверке зависимостей. Это влияет на поля Pre-Depends и Depends.
Предупреждение: Force следует использовать с большой осторожностью и только временно, пока релиз вышестоящей ветки не исправит проблему зависимости. Apt и dpkg могут продолжать усиленно (и правильно!) жаловаться на пакеты неправильной версии. Могут возникнуть и другие побочные эффекты.
- НЕ используйте принудительные пакеты в качестве постоянного решения. Это закончится слезами и сломанной системой. Если вам нужно постоянное решение без deb-пакетов, рассмотрите возможность сборки из исходников, альтернативных приложений и/или альтернативных методов упаковки. НЕ релиз-обновляйте систему с установленными принудительными пакетами, так как эти пакеты могут привести к полному провалу релиз-обновления.