잘못된 libstdc++6으로 인해 발생하는 문제

잘못된 libstdc++6으로 인해 발생하는 문제

내가 이것을 할 때 sudo apt-get -f install나는 얻는다.

Preparing to unpack .../libstdc++6_8.1.0-5ubuntu1~14.04_amd64.deb ...
Unpacking libstdc++6:amd64 (8.1.0-5ubuntu1~14.04) over (5.4.0-6ubuntu1~16.04.10) ...
dpkg: error processing archive /var/cache/apt/archives/libstdc++6_8.1.0-5ubuntu1~14.04_amd64.deb (--unpack):
 trying to overwrite shared '/usr/share/doc/libstdc++6', which is different from other instances of package libstdc++6:amd64
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Errors were encountered while processing:
 /var/cache/apt/archives/libstdc++6_8.1.0-5ubuntu1~14.04_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)}

우분투 14.04.5를 사용하고 있습니다

이는 libstdc++와의 충돌로 인한 것일 수 있습니다. (adobe acrobat을 설치하려고 할 때 발생) libstdc++6의 올바른 버전을 어떻게/어디에서 찾을 수 있으며 손상된 버전을 제거하려면 어떻게 해야 합니까?

의 출력은 apt-cache policy libstdc++6:i386다음과 같습니다

libstdc++6:i386:
  Installed: 8.1.0-5ubuntu1~14.04
  Candidate: 8.1.0-5ubuntu1~14.04
  Version table:
 *** 8.1.0-5ubuntu1~14.04 500
        500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty/main i386 Packages
        100 /var/lib/dpkg/status
     5.4.0-6ubuntu1~16.04.11 8500
        500 http://mirror.****/ubuntu xenial-updates/main i386 Packages
     5.4.0-6ubuntu1~16.04.10 500
        500 http://mirror.****/ubuntu xenial-security/main i386 Packages
     5.3.1-14ubuntu2 500
        500 http://mirror.****/ubuntu xenial/main i386 Packages

(위에 ****라고 썼을 때 전체 IP 주소를 가로채었습니다)

$ dpkg --print-foreign-architectures is
i386

의 출력은 dpkg -l libstdc++6다음과 같습니다

| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                 Version         Architecture    Description
+++-====================-===============-===============-==============================================
iU  libstdc++6:amd64     5.4.0-6ubuntu1~ amd64           GNU Standard C++ Library v3
iF  libstdc++6:i386      8.1.0-5ubuntu1~ i386            GNU Standard C++ Library v3

출력 grep -v "#" /etc/apt/sources.list:

deb http://mirror**/ubuntu/ xenial main restricted
deb-src http://mirror**/ubuntu/ xenial main restricted

등.
이 파일을 수동으로 편집하고 xenial을 trusty로 변경하면 문제가 해결됩니까? (실행해도 apt-get-clean이 문제를 해결하는 데 도움이 되지 않습니다.)

내가 실행하면 sudo apt-get install --reinstall libstdc++6:i386다음을 얻습니다.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libstdc++-5-dev : Depends: libstdc++6 (>= 5.5.0-12ubuntu1~14.04) but 5.4.0-6ubuntu1~16.04.10 is to be installed
 libstdc++6 : Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.10) but 5.5.0-12ubuntu1~14.04 is to be installed
              Breaks: libreoffice-core (<= 1:4.4.4~rc3-0ubuntu1) but 1:4.2.8-0ubuntu5.1 is to be installed
              Breaks: libstdc++6:i386 (!= 5.4.0-6ubuntu1~16.04.10) but 8.1.0-5ubuntu1~14.04 is to be installed
 libstdc++6:i386 : Breaks: libstdc++6 (!= 8.1.0-5ubuntu1~14.04) but 5.4.0-6ubuntu1~16.04.10 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

apt-get -f install스레드 시작 부분에서 언급한 것과 같은 이유로 실행할 수 없습니다. 무엇을 할 수 있는지 알려주세요.

답변1

/etc/apt/sources.list당신은 나쁜 상황에 처해 있는 것 같습니다 . 어떻게든 Trusty(14.04) 시스템에서 Xenial(16.04) 저장소를 활성화하게 되었습니다. 이는 분명히 이와 같은 이상한 패키지 충돌로 이어질 수 있습니다.

저장소 구성을 수정/정리하고 실행 apt-get clean하면 모든 것이 다시 작동하기 시작합니다.

답변2

최신(16.04) libstdc++6 패키지를 제거하려면 이 명령을 사용하십시오.

sudo dpkg --remove --force-dependents libstdc++6:amd64

여기 패키지 저장소에서 trusy(14.04)의 libstdc++6 버전을 다운로드하세요. https://launchpad.net/ubuntu/trusty/amd64/libstdc++6/4.8.2-19ubuntu1

패키지의 압축을 풀고 다운로드한 패키지의 3개 파일을 해당 위치에 복사합니다.

sudo cp libstdc++.so.6.0.19 /usr/lib/x86_64-linux-gnu/

sudo cp -P libstdc++.so.6 /usr/lib/x86_64-linux-gnu/

sudo cp -P libstdc++6 /usr/share/doc/

이제 apt-get이 작동할 것입니다. libstdc++6을 다시 설치하여 종속성을 수정하세요.

sudo apt-get install --libstdc++6 다시 설치 sudo apt-get -f install

이제 정상으로 돌아오셔야 합니다

관련 정보