Проблема зависимости при удалении хранилищ oibaf и paulo dias

Я добавил хранилища Oibaf и Paulo Diases и обновил свою систему, которая привела к сломанному apt. Я не могу ppa-чистить любой из них.

Это происходит всякий раз, когда я пытаюсь использовать любую команду apt. apt --fix-broken install не работает:

sudo apt upgrade 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: libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed libgl1-mesa-glx : Depends: libglapi-mesa (= 17.2~git1704220730.d682f8~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is installed Breaks: libgl1-mesa-glx:i386 (!= 17.2~git1704220730.d682f8~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is installed libgl1-mesa-glx:i386 : Breaks: libgl1-mesa-glx (!= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Вывод ppa-purge:

sudo ppa-purge ppa:paulo-miguel-dias/mesa Updating packages lists PPA to be removed: paulo-miguel-dias mesa Package revert list generated: libgl1-mesa-glx:amd64/zesty mesa-vdpau-drivers:amd64/zesty mesa-vdpau-drivers:i386/zesty Disabling paulo-miguel-dias PPA from /etc/apt/sources.list.d/paulo-miguel-dias-ubuntu-mesa-zesty.list Updating packages lists Reading package lists... Done Building dependency tree Reading state information... Done Selected version '17.2~git1704230730.070072~gd~z' (Updated and Optimized Open Graphics Drivers:17.04/zesty [amd64]) for 'libgl1-mesa-glx' Selected version '17.2~git1704230730.070072~gd~z' (Updated and Optimized Open Graphics Drivers:17.04/zesty [amd64]) for 'libglapi-mesa' because of 'libgl1-mesa-glx' Selected version '17.2~git1704230730.070072~gd~z' (Updated and Optimized Open Graphics Drivers:17.04/zesty [amd64]) for 'mesa-vdpau-drivers' Selected version '17.2~git1704230730.070072~gd~z' (Updated and Optimized Open Graphics Drivers:17.04/zesty [i386]) for 'mesa-vdpau-drivers:i386' You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704230730.070072~gd~z is to be installed libgl1-mesa-glx : Depends: libglapi-mesa (= 17.2~git1704230730.070072~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is to be installed Breaks: libgl1-mesa-glx:i386 (!= 17.2~git1704230730.070072~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is to be installed libgl1-mesa-glx:i386 : Breaks: libgl1-mesa-glx (!= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704230730.070072~gd~z is to be installed mesa-vdpau-drivers : Depends: libomxil-bellagio0 but it is not going to be installed mesa-vdpau-drivers:i386 : Depends: libomxil-bellagio0:i386 but it is not going to be installed Depends: libxv1:i386 but it is not going to be installed Depends: libxvmc1:i386 but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution)

Зависимость ад, похоже, не заканчивается при попытке вручную решить проблему:

sudo apt-get install libgl1-mesa-glx=17.0.3-1ubuntu1 libgl1-mesa-dev=17.0.3-1ubuntu1 libgl1-mesa-glx:i386=17.0.3-1ubuntu1 libglapi-mesa=17.0.3-1ubuntu1Reading 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: libgl1-mesa-dev : Depends: mesa-common-dev (= 17.0.3-1ubuntu1) but 1:17.2~git170422012800.d682f8a~z~padoka0 is to be installed libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 17.0.3-1ubuntu1) but 1:17.2~git170422012800.d682f8a~z~padoka0 is to be installed libglapi-mesa : Breaks: libglapi-mesa:i386 (!= 17.0.3-1ubuntu1) but 1:17.2~git170422012800.d682f8a~z~padoka0 is to be installed libglapi-mesa:i386 : Breaks: libglapi-mesa (!= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.0.3-1ubuntu1 is to be installed libgles2-mesa : Depends: libglapi-mesa (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.0.3-1ubuntu1 is to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

вывод cat /etc/apt/sources.list:

# deb cdrom:[budgie-remix 16.10 _Budgie-remix_ - amd64 (20161013)]/ xenial main restricted # deb cdrom:[budgie-remix 16.10 _Budgie-remix_ - amd64 (20161013)]/ yakkety contrib main non-free # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://hr.archive.ubuntu.com/ubuntu/ zesty main restricted # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://hr.archive.ubuntu.com/ubuntu/ zesty-updates main restricted # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety-updates main restricted ## 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://hr.archive.ubuntu.com/ubuntu/ zesty universe # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety universe deb http://hr.archive.ubuntu.com/ubuntu/ zesty-updates universe # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety-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://hr.archive.ubuntu.com/ubuntu/ zesty multiverse # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety multiverse deb http://hr.archive.ubuntu.com/ubuntu/ zesty-updates multiverse # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety-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://hr.archive.ubuntu.com/ubuntu/ zesty-backports main restricted universe multiverse # deb-src http://hr.archive.ubuntu.com/ubuntu/ yakkety-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 yakkety partner # deb-src http://archive.canonical.com/ubuntu yakkety partner deb http://security.ubuntu.com/ubuntu zesty-security main restricted # deb-src http://security.ubuntu.com/ubuntu yakkety-security main restricted deb http://security.ubuntu.com/ubuntu zesty-security universe # deb-src http://security.ubuntu.com/ubuntu yakkety-security universe deb http://security.ubuntu.com/ubuntu zesty-security multiverse # deb-src http://security.ubuntu.com/ubuntu yakkety-security multiverse

Выход sudo apt --fix-broken install:

Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... failed. The following packages have unmet dependencies: libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed libgl1-mesa-glx : Depends: libglapi-mesa (= 17.2~git1704220730.d682f8~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is installed Breaks: libgl1-mesa-glx:i386 (!= 17.2~git1704220730.d682f8~gd~z) but 1:17.2~git170422012800.d682f8a~z~padoka0 is installed libgl1-mesa-glx:i386 : Breaks: libgl1-mesa-glx (!= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages. E: Unable to correct dependencies

Вывод sudo dpkg --configure -a:

dpkg: dependency problems prevent configuration of libgl1-mesa-dev:amd64: libgl1-mesa-dev:amd64 depends on libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0); however: Version of libgl1-mesa-glx:amd64 on system is 17.2~git1704220730.d682f8~gd~z. dpkg: error processing package libgl1-mesa-dev:amd64 (--configure): dependency problems - leaving unconfigured dpkg: error processing package libgl1-mesa-glx:i386 (--configure): package libgl1-mesa-glx:i386 1:17.2~git170422012800.d682f8a~z~padoka0 cannot be configured because libgl1-mesa-glx:amd64 is at a different version (17.2~git1704220730.d682f8~gd~z) Errors were encountered while processing: libgl1-mesa-dev:amd64 libgl1-mesa-glx:i386

/etc/apt/sources.list.d/:

# deb http://ppa.launchpad.net/budgie-remix/ppa/ubuntu zesty main # disabled on upgrade to zesty # deb-src http://ppa.launchpad.net/budgie-remix/ppa/ubuntu yakkety main deb http://ppa.launchpad.net/budgie-remix/ppa/ubuntu yakkety main # deb-src http://ppa.launchpad.net/budgie-remix/ppa/ubuntu yakkety main # deb http://ppa.launchpad.net/budgie-remix/ppa/ubuntu zesty main # disabled on upgrade to zesty # deb-src http://ppa.launchpad.net/budgie-remix/ppa/ubuntu yakkety main deb http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu zesty main # deb-src http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu zesty main deb http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu zesty main # deb-src http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu zesty main deb http://ppa.launchpad.net/morphis/anbox-support/ubuntu zesty main # deb-src http://ppa.launchpad.net/morphis/anbox-support/ubuntu zesty main deb http://ppa.launchpad.net/morphis/anbox-support/ubuntu zesty main # deb-src http://ppa.launchpad.net/morphis/anbox-support/ubuntu zesty main deb http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu zesty main # deb-src http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu zesty main deb http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu zesty main # deb-src http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu zesty main # deb http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu zesty main # disabled on upgrade to zesty # deb-src http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu yakkety main deb http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu yakkety main # deb-src http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu yakkety main # deb http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu zesty main # disabled on upgrade to zesty # deb-src http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu yakkety main # deb-src http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu zesty main # deb-src http://ppa.launchpad.net/oranchelo/oranchelo-icon-theme/ubuntu zesty main # deb http://ppa.launchpad.net/paulo-miguel-dias/mesa/ubuntu zesty main # deb-src http://ppa.launchpad.net/paulo-miguel-dias/mesa/ubuntu zesty main # deb http://ppa.launchpad.net/paulo-miguel-dias/mesa/ubuntu zesty main # deb-src http://ppa.launchpad.net/paulo-miguel-dias/mesa/ubuntu zesty main deb http://ppa.launchpad.net/webupd8team/sublime-text-2/ubuntu zesty main # deb-src http://ppa.launchpad.net/webupd8team/sublime-text-2/ubuntu zesty main deb http://ppa.launchpad.net/webupd8team/sublime-text-2/ubuntu zesty main # deb-src http://ppa.launchpad.net/webupd8team/sublime-text-2/ubuntu zesty main deb http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu zesty main # deb-src http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu zesty main deb http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu zesty main # deb-src http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu zesty main
1
задан 26 April 2017 в 11:37

3 ответа

Несколько недель назад у меня были подобные проблемы с oibaf ppa. Даже когда ppa-purge терпит неудачу, вы можете вернуться к официальной версии репо Ubuntu. Особенно, потому что зависимости этих пакетов не огромны.

Итак, я предлагаю просто отметить имена пакетов из показанного вывода и использовать команду apt policy package-name для отображения версии из соответствующего репозитория. Например, apt policy libgl1-mesa-dev может вернуться так:

apt policy libgl1-mesa-dev 
libgl1-mesa-dev: 
Installed: 1:17.2~git170422012800.d682f8a~z~padoka0 
Candidate: 1:17.2~git170422012800.d682f8a~z~padoka0 
Version table: 
*** 1:17.2~git170422012800.d682f8a~z~padoka0 100 
100 /var/lib/dpkg/status 
17.2~git1704230730.070072~gd~z 500 
500 ppa.launchpad.net/oibaf/… zesty/main amd64 Packages 
17.0.3-1ubuntu1 500 
500 hr.archive.ubuntu.com/ubuntu zesty/main amd64 Packages

Вы можете видеть, что последняя версия из официального репозитория - 17.0.3-1ubuntu1. Обратите внимание на эту версию. Сделайте это для всех повреждающих пакетов.

После того, как вы собрали все имена пакетов с официальной последней версией, вы можете использовать этот тип команды sudo apt install libgl1-mesa-dev=version для всех пакетов. Это заставит apt установить пакеты, упомянутые вами в этой версии.

Для большего количества пакетов, похоже, то же самое относится и к этим пакетам.

После этого и с некоторой удачей вы должны быть в последнем официальном репозитории. Затем используйте ppa-purge, чтобы изящно очистить оба ppas.

Мы обсудили проблему в чате и, похоже, эта команда работала.

sudo apt-get install libgl1-mesa-glx=17.0.3-1ubuntu1 libgl1-mesa-dev=17.0.3-1ubuntu1 libgl1-mesa-glx:i386=17.0.3-1ubuntu1 libglapi-mesa=17.0.3-1ubuntu1 mesa-common-dev=17.0* libglapi-mesa:i386=17.0* libglapi-mesa=17.0* libglapi-mesa=17.0* libgles2-mesa=17.0*
[d8 ]

Совет. Я бы посоветовал всегда устанавливать aptitude. Если он установлен, ppa-purge может работать более соответствующим образом.

Совет Равексина пыталась помочь, прежде чем я вступил в чат.

Еще один трюк, обнаруженный недавно

Недавно я обнаружил более удобный способ понизить / ускользнуть от зависимый ад, не указав версию. Я перечисляю шаги

Вы удалили ppa и идентифицировали пакеты, которые создают проблему зависимости от этого ppa. Обычно это пакеты, которые вы найдете в следующем стиле сообщений

 libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed

. Вы знаете, что пакет libgl1-mesa-glx, который больше, чем пакет apt находит в соответствии с requeste libgl1-mesa-dev , создавая проблему.

Как только вы идентифицируете проблемные пакеты из этого ppa, вы будете использовать этот apt для установки пакета из другого репо без использования имени выпуска вместо строки версии, подобной этой (для 16.04, xenial)

sudo apt install libgl1-mesa-dev/xenial

Это выберет версию из репозитория, имеющего имя архива xenial (обратите внимание, что все ppa имеют это xenial как имя архива). Поскольку установленный пакет не из архива xenial (это было, но после удаления ppa, это от неизвестной версии для apt), apt выберет версию, которая поставляется с той же версией. В большинстве случаев это официальный репозиторий поставляется с Ubuntu (если у вас нет этого пакета из другого ppa или repo).

Удивительно, но apt более разумно действуют в этом случае. Вместо того, чтобы выбрать самую высокую версию для зависимостей libgl1-mesa-dev, она выберет самую высокую версию из , что ppa , которая будет от официального репо, даже если это требует понижения рейтинга других установленных пакетов, что эффективно устраняет проблема!

4
ответ дан 22 May 2018 в 23:18
  • 1
    Вы только что спасли меня от переустановки моей ОС. Спасибо! – dcmm88 23 September 2017 в 03:49

Несколько недель назад у меня были подобные проблемы с oibaf ppa. Даже когда ppa-purge терпит неудачу, вы можете вернуться к официальной версии репо Ubuntu. Особенно, потому что зависимости этих пакетов не огромны.

Итак, я предлагаю просто отметить имена пакетов из показанного вывода и использовать команду apt policy package-name для отображения версии из соответствующего репозитория. Например, apt policy libgl1-mesa-dev может вернуться так:

apt policy libgl1-mesa-dev libgl1-mesa-dev: Installed: 1:17.2~git170422012800.d682f8a~z~padoka0 Candidate: 1:17.2~git170422012800.d682f8a~z~padoka0 Version table: *** 1:17.2~git170422012800.d682f8a~z~padoka0 100 100 /var/lib/dpkg/status 17.2~git1704230730.070072~gd~z 500 500 ppa.launchpad.net/oibaf/… zesty/main amd64 Packages 17.0.3-1ubuntu1 500 500 hr.archive.ubuntu.com/ubuntu zesty/main amd64 Packages

Вы можете видеть, что последняя версия из официального репозитория - 17.0.3-1ubuntu1. Обратите внимание на эту версию. Сделайте это для всех повреждающих пакетов.

После того, как вы собрали все имена пакетов с официальной последней версией, вы можете использовать этот тип команды sudo apt install libgl1-mesa-dev=version для всех пакетов. Это заставит apt установить пакеты, упомянутые вами в этой версии.

Для большего количества пакетов, похоже, то же самое относится и к этим пакетам.

После этого и с некоторой удачей вы должны быть в последнем официальном репозитории. Затем используйте ppa-purge, чтобы изящно очистить оба ppas.

Мы обсудили проблему в чате и, похоже, эта команда работала.

sudo apt-get install libgl1-mesa-glx=17.0.3-1ubuntu1 libgl1-mesa-dev=17.0.3-1ubuntu1 libgl1-mesa-glx:i386=17.0.3-1ubuntu1 libglapi-mesa=17.0.3-1ubuntu1 mesa-common-dev=17.0* libglapi-mesa:i386=17.0* libglapi-mesa=17.0* libglapi-mesa=17.0* libgles2-mesa=17.0*

Совет. Я бы посоветовал всегда устанавливать aptitude. Если он установлен, ppa-purge может работать более соответствующим образом.

Совет Равексина пыталась помочь, прежде чем я вступил в чат.

Еще один трюк, обнаруженный недавно

Недавно я обнаружил более удобный способ понизить / ускользнуть от зависимый ад, не указав версию. Я перечисляю шаги

Вы удалили ppa и идентифицировали пакеты, которые создают проблему зависимости от этого ppa. Обычно это пакеты, которые вы найдете в следующем стиле сообщений

libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed

. Вы знаете, что пакет libgl1-mesa-glx, который больше, чем пакет apt находит в соответствии с requeste libgl1-mesa-dev , создавая проблему.

Как только вы идентифицируете проблемные пакеты из этого ppa, вы будете использовать этот apt для установки пакета из другого репо без использования имени выпуска вместо строки версии, подобной этой (для 16.04, xenial)

sudo apt install libgl1-mesa-dev/xenial

Это выберет версию из репозитория, имеющего имя архива xenial (обратите внимание, что все ppa имеют это xenial как имя архива). Поскольку установленный пакет не из архива xenial (это было, но после удаления ppa, это от неизвестной версии для apt), apt выберет версию, которая поставляется с той же версией. В большинстве случаев это официальный репозиторий поставляется с Ubuntu (если у вас нет этого пакета из другого ppa или repo).

Удивительно, но apt более разумно действуют в этом случае. Вместо того, чтобы выбрать самую высокую версию для зависимостей libgl1-mesa-dev, она выберет самую высокую версию из , что ppa , которая будет от официального репо, даже если это требует понижения рейтинга других установленных пакетов, что эффективно устраняет проблема!

4
ответ дан 18 July 2018 в 14:25

Несколько недель назад у меня были подобные проблемы с oibaf ppa. Даже когда ppa-purge терпит неудачу, вы можете вернуться к официальной версии репо Ubuntu. Особенно, потому что зависимости этих пакетов не огромны.

Итак, я предлагаю просто отметить имена пакетов из показанного вывода и использовать команду apt policy package-name для отображения версии из соответствующего репозитория. Например, apt policy libgl1-mesa-dev может вернуться так:

apt policy libgl1-mesa-dev libgl1-mesa-dev: Installed: 1:17.2~git170422012800.d682f8a~z~padoka0 Candidate: 1:17.2~git170422012800.d682f8a~z~padoka0 Version table: *** 1:17.2~git170422012800.d682f8a~z~padoka0 100 100 /var/lib/dpkg/status 17.2~git1704230730.070072~gd~z 500 500 ppa.launchpad.net/oibaf/… zesty/main amd64 Packages 17.0.3-1ubuntu1 500 500 hr.archive.ubuntu.com/ubuntu zesty/main amd64 Packages

Вы можете видеть, что последняя версия из официального репозитория - 17.0.3-1ubuntu1. Обратите внимание на эту версию. Сделайте это для всех повреждающих пакетов.

После того, как вы собрали все имена пакетов с официальной последней версией, вы можете использовать этот тип команды sudo apt install libgl1-mesa-dev=version для всех пакетов. Это заставит apt установить пакеты, упомянутые вами в этой версии.

Для большего количества пакетов, похоже, то же самое относится и к этим пакетам.

После этого и с некоторой удачей вы должны быть в последнем официальном репозитории. Затем используйте ppa-purge, чтобы изящно очистить оба ppas.

Мы обсудили проблему в чате и, похоже, эта команда работала.

sudo apt-get install libgl1-mesa-glx=17.0.3-1ubuntu1 libgl1-mesa-dev=17.0.3-1ubuntu1 libgl1-mesa-glx:i386=17.0.3-1ubuntu1 libglapi-mesa=17.0.3-1ubuntu1 mesa-common-dev=17.0* libglapi-mesa:i386=17.0* libglapi-mesa=17.0* libglapi-mesa=17.0* libgles2-mesa=17.0*

Совет. Я бы посоветовал всегда устанавливать aptitude. Если он установлен, ppa-purge может работать более соответствующим образом.

Совет Равексина пыталась помочь, прежде чем я вступил в чат.

Еще один трюк, обнаруженный недавно

Недавно я обнаружил более удобный способ понизить / ускользнуть от зависимый ад, не указав версию. Я перечисляю шаги

Вы удалили ppa и идентифицировали пакеты, которые создают проблему зависимости от этого ppa. Обычно это пакеты, которые вы найдете в следующем стиле сообщений

libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 1:17.2~git170422012800.d682f8a~z~padoka0) but 17.2~git1704220730.d682f8~gd~z is installed

. Вы знаете, что пакет libgl1-mesa-glx, который больше, чем пакет apt находит в соответствии с requeste libgl1-mesa-dev , создавая проблему.

Как только вы идентифицируете проблемные пакеты из этого ppa, вы будете использовать этот apt для установки пакета из другого репо без использования имени выпуска вместо строки версии, подобной этой (для 16.04, xenial)

sudo apt install libgl1-mesa-dev/xenial

Это выберет версию из репозитория, имеющего имя архива xenial (обратите внимание, что все ppa имеют это xenial как имя архива). Поскольку установленный пакет не из архива xenial (это было, но после удаления ppa, это от неизвестной версии для apt), apt выберет версию, которая поставляется с той же версией. В большинстве случаев это официальный репозиторий поставляется с Ubuntu (если у вас нет этого пакета из другого ppa или repo).

Удивительно, но apt более разумно действуют в этом случае. Вместо того, чтобы выбрать самую высокую версию для зависимостей libgl1-mesa-dev, она выберет самую высокую версию из , что ppa , которая будет от официального репо, даже если это требует понижения рейтинга других установленных пакетов, что эффективно устраняет проблема!

4
ответ дан 24 July 2018 в 20:23

Другие вопросы по тегам:

Похожие вопросы: