
Я использую Ubuntu 18.04 и пытался обновить libc6 с версии 2.27 до 2.29, но в итоге сломал систему пакетов. Я не могу исправить, потому что когда я пытаюсь использовать команды исправления, он всегда показывает, что тонны пакетов в системе будут УДАЛЕНЫ.
Synaptic показывает, что эти пакеты неисправны:
- glibc-doc 2.27-3
- libc-dev-bin 2.27-3
- libc6 2.29-0
- libc6-dbg 2.27-3
- libc6-dev 2.27-3
- libc6:i386 2.27-3
Как я сломался? Я скачал следующие пакеты сhttps://packages.ubuntu.com/
- glibc-doc_2.29-0ubuntu2_all.deb
- glibc-source_2.29-0ubuntu2_all.deb
- libc6_2.29-0ubuntu2_amd64.deb
- libc6-amd64_2.29-0ubuntu2_i386.deb
- libc-bin_2.29-0ubuntu2_amd64.deb
- locales_2.29-0ubuntu2_all.deb
Я попытался установить их через dpkg по одному, но это не сработало из-за ошибок зависимостей, и, наконец, я использовал эту команду:
sudo dpkg -i libc-bin_2.29-0ubuntu2_amd64.deb libc6_2.29-0ubuntu2_amd64.deb libc6-amd64_2.29-0ubuntu2_i386.deb
После этого я ответил «Да» в приглашении, в котором говорилось, что необходимо перезапустить некоторые программы, такие как postgres.
Затем я увидел ошибку «Поврежденные пакеты».
sudo apt update
не выдает ошибку. Когда я пытаюсь исправить, он показывает, что почти все нужно удалить:
sudo apt install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
alex freeglut3 freeglut3-dev happy hscolour libbsd-dev libdrm-dev libffi-dev
libgl1-mesa-dev libgles1 libglu1-mesa-dev libglvnd-core-dev libglvnd-dev
libgmp-dev libgmpxx4ldbl libopengl0 libtinfo-dev libx11-xcb-dev
libx11-xcb1:i386 libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev
libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev
libxcb-sync-dev libxcb-xfixes0-dev libxdamage-dev libxext-dev libxfixes-dev
libxi-dev libxmu-dev libxmu-headers libxshmfence-dev libxxf86vm-dev
linux-headers-4.18.0-17 linux-headers-4.18.0-17-generic
linux-image-4.18.0-17-generic linux-libc-dev linux-modules-4.18.0-17-generic
linux-modules-extra-4.18.0-17-generic mesa-common-dev x11proto-damage-dev
x11proto-fixes-dev x11proto-xext-dev x11proto-xf86vidmode-dev
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
glibc-doc-reference
The following packages will be REMOVED:
build-essential cabal-install g++ g++-7 ghc haskell-platform libbsd0:i386
libc-dev-bin libc6:i386 libc6-amd64:i386 libc6-dbg libc6-dev
libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386
libffi6:i386 libgcc1:i386 libghc-async-dev libghc-attoparsec-dev
libghc-call-stack-dev libghc-case-insensitive-dev libghc-fgl-dev
libghc-fixed-dev libghc-gluraw-dev libghc-glut-dev libghc-half-dev
libghc-hashable-dev libghc-haskell-src-dev libghc-html-dev libghc-http-dev
libghc-hunit-dev libghc-integer-logarithms-dev libghc-mtl-dev
libghc-network-dev libghc-network-uri-dev libghc-objectname-dev
libghc-opengl-dev libghc-openglraw-dev libghc-parallel-dev
libghc-parsec3-dev libghc-primitive-dev libghc-quickcheck2-dev
libghc-random-dev libghc-regex-base-dev libghc-regex-compat-dev
libghc-regex-posix-dev libghc-scientific-dev libghc-split-dev
libghc-statevar-dev libghc-stm-dev libghc-syb-dev libghc-text-dev
libghc-tf-random-dev libghc-unordered-containers-dev libghc-vector-dev
libghc-zlib-dev libgl1:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386
libllvm7:i386 libncurses5-dev libnvidia-compute-418:i386
libnvidia-decode-418:i386 libnvidia-encode-418:i386 libnvidia-fbc1-418:i386
libnvidia-gl-418:i386 libnvidia-ifr1-418:i386 libpciaccess0:i386
libsensors4:i386 libstdc++-7-dev libstdc++6:i386 libtinfo5:i386
libx11-6:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386
libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386
libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386
libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386 zlib1g-dev
The following NEW packages will be installed:
glibc-doc-reference
0 upgraded, 1 newly installed, 97 to remove and 0 not upgraded.
6 not fully installed or removed.
Need to get 5.483 kB of archives.
After this operation, 1.303 MB disk space will be freed.
Do you want to continue? [Y/n]
решение1
Apt не сломан - он все еще работает просто отлично. Но вы неблагоразумно сказали apt сделатьФранкенсистема, смешивая пакеты из разных выпусков Ubuntu.
Apt не сможет отработать теперь нелогичные зависимости... никогда. (И вы тоже). Поскольку apt не может работать, вы никогда не получите никаких обновлений или исправлений безопасности, пока не удалите пакеты неправильной версии.
Мы не оказываем поддержку Frankensystems. По определению они нестабильны и склонны к необычным и труднодиагностируемым проблемам. Системы на основе Deb разработаны для работы с определенными версиями пакетов. Пакеты с неправильными версиями вызывают проблемы.
Удалите пакеты неправильной версии. Если вы хотите запустить пакеты 19.04, то рассмотрите возможность установки Ubuntu 19.04. Возможно, в виртуальной машине или в запасном разделе, если вы хотите сохранить свою текущую систему 18.04.
решение2
Я исправил это, загрузив версию 2.27 всех этих пакетов и запустив для них dpkg.
Я пытался установить их в том же порядке, прежде чем сломался. Я использовал dpkg на нескольких deb-файлах, чтобы предотвратить циклические зависимости или что-то в этом роде. Не уверен, меняет ли это что-то.
решение3
Итак, реальным решением будет обновить дистрибутив, если вам НУЖНА библиотека, которая поставляется только с новым дистрибутивом и требуется для нескольких игр...
Вот вам и поддержка до 2023 года для 18.04, если вы планируете играть в игры на своей системе Ubuntu... например, у меня есть три игры Linux от 2020 года, которые после обновления требуют glibc6-2.29 или более поздней версии! За исключением того, что для меня это означает загрузку нового дистрибутивного ISO и полную установку! поскольку disptr-upgrade не работает...