dpkg 오류 :“파일 덮어 쓰기 시도 중…


108

예를 들면 다음과 같습니다.

$ sudo apt-get install curl
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:
bsh : Depends: libjline-java but it is not going to be installed
groovy : Depends: libjline-java but it is not going to be installed
rhino : Depends: libjline-java but it is not going to be installed
E: Unmet dependencies. 

Try 'apt-get -f install' with no packages (or specify a solution).

clojure1.3, leiningen 및 기타 여러 패키지를 설치하려고 할 때 동일하거나 유사한 오류가 발생합니다.

오류 메시지에서 제안을 시도하면 다음과 같은 일이 발생합니다.

$ sudo apt-get -f install 
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:
  diffstat linux-headers-3.2.0-26-generic linux-headers-3.2.0-26 dh-apparmor dkms html2text libmail-sendmail-perl libsys-hostname-long-perl
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libjline-java
Suggested packages:
  libjline-java-doc
The following NEW packages will be installed:
  libjline-java
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
23 not fully installed or removed.
Need to get 0 B/72.0 kB of archives.
After this operation, 129 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 226243 files and directories currently installed.)
Unpacking libjline-java (from .../libjline-java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-java_1.0-1_all.deb (--unpack):
 trying to overwrite '/usr/share/java/jline.jar', which is also in package scala 2.9.2-400
Errors were encountered while processing:
 /var/cache/apt/archives/libjline-java_1.0-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ sudo apt-get upgrade
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:
 bsh : Depends: libjline-java but it is not installed
 groovy : Depends: libjline-java but it is not installed
 rhino : Depends: libjline-java but it is not installed
E: Unmet dependencies. Try using -f.

또한, 자바를 설치 소프트웨어 센터에서 검색해야 사는 모습
마크 커비를

1
아마도이 Q & A 의 복제본 이나 최소한 해결책 이 도움이 될 것입니다
danjjl

@ markkirby, sudo apt-get update그것이 당신이 요구 하는 것이라면 달려 왔습니다 .
missingfaktor

@markkirby, JDK가 이미 설치되어 있습니다.
missingfaktor

답변:


72

이런 종류의 "덮어 쓰기 시도 중"오류에 직면하는 경우 danjjl 응답을 직접 사용 하지 마십시오 . 먼저 해결해야 할 충돌 패키지가있을 수 있습니다.

이 문제에 대한 즉각적인 해결책은이 경우 바람직하지 않은 충돌하는 패키지를 제거하는 것입니다 scala.

sudo dpkg -P scala

다음으로 해당 패키지 관리자에게 버그 보고서를 제출하는 것이 좋습니다. 이것은 일반적으로 Conflict: package제어 파일에 행을 추가 함을 의미 합니다.

이 오류에 대한 자세한 설명 은 답변을 참조하십시오 .


3
이 조언에 대해 잘 모르겠습니다. 상황에 따라 다르다고 생각합니다. 이전 게시물에 대한 링크에서 동일한 소프트웨어의 두 버전과 충돌이 있습니다. 이전 소프트웨어를 먼저 제거해야한다는 데 동의합니다. 그러나 두 개의 다른 프로그램을 패키지화하는 방법에 문제가 있고 덮어 쓰는 파일이 동일하거나 무해한 경우 조언에 문제가 없습니다. 아니, 이상적이지 않지만 ... 문제가 해결 될 때까지 기다리는 것이 대안이라면 누군가에게 특정 답변을 가지지 말라고 요청하는 것이 약간 극단적 일 것입니다.
Ray

이 경우 @Ray는 버그 보고서가 순서대로있을 수 있지만 우분투 리포지토리의 소프트웨어는 이러한 문제가 있음을 의심합니다. 데비안과 데비안 테스트에서 이러한 종류의 문제에 대한 철저한 테스트가 필요하기 때문입니다.
Braiam

1
@Braiam 데비안을 사용한 지 오래되었습니다. 아마도 지금은 나아졌지 만 데비안에서도 비슷한 문제가 발생했습니다. 철저한 테스트 부족으로 인한 것이 아니라 가능한 모든 시나리오를 테스트하기가 어려운 경우가 있습니다. 아무리 많은 테스트를 수행하더라도 문제가 발생할 수 있습니다. 나는 버그 리포트를 작성하는 것에 반대하지 않고 "더 쉬웠다"고 말했다. 결국 충돌하는 모든 패키지를 요약하기가 어려울 수 있습니다. 그리고 버그가 "핫"하지 않으면 (즉, 많은 사람들에게 영향을 미치지 않음) 기다리게됩니다.
Ray

아마도 원래 답변이 "어떤 이유로 인해서하지 마십시오."라고 수정 된 것이 더 나을 것입니다. 장단점을 알면 누군가 무시하도록 선택할 수 있습니다. 그대로, 위의 대답은하지 않는다고 말합니다.
Ray

@Ray umm ... 패키지를 빌드 할 때 dpkg는 파일 목록 (dpkg -L 패키지)을 저장하며 단순히 충돌을 찾는 것만으로도 충분합니다. 그리고 철저한 테스트를 통해 나는 실제 테스트, 불안정 및 테스트가 이런 종류의 것들에 대해 정확하게 존재한다는 것을 의미했습니다
Braiam

97

문제를 해결하려면

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libjline-java_1.0-1_all.deb

다음을 실행하여 모든 것이 수정되었는지 확인하십시오. sudo apt-get -f install

여전히 문제가 지속되면 dpkg: error processing (...)나머지 단계로 첫 단계를 다시 실행하십시오.

webupd8 에서 찾은 솔루션


9
이렇게하면 패키지가 효과적으로 설치되지만 두 패키지가 동일한 라이브러리 / 파일 / 이진을 사용하려고 할 때 문제가 남아 있습니다.
Braiam


내 odroid Plex 미디어 서버 업데이트를 수정했습니다. 감사합니다!
마크

나를 위해 일했습니다, 감사합니다
Miguel Mota

44

@danjjl의 명령은 .deb파일에서 작동 합니다. 이 명령이 apt/에서 작동한다는 것을 알았습니다 apt-get.

sudo apt-get -o Dpkg::Options::="--force-overwrite" install <package-name>

4
좋은 팁. 주의 사항 : 파일을 덮어 쓰면 내용을 덮어 쓰면 심각한 문제가 발생할 수 있습니다. 충돌하는 패키지 중 하나가 더 이상 제대로 작동하지 않습니다.
Potaito

1
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f비슷한 문제에 대해 나를 위해 일했다
user2205916

@ 고양이 : 그렇다면 "위대한 핵"과 비슷합니다. ;-]
David Foerster

1

동일한 문제가 있었지만 Nvidia-390과 충돌하는 캐시의 libglx-mesa 파일을 사용하는 것이 글로벌 픽스인지 확실하지 않습니다. 나는 파일을 제거하고, 발행 apt install -f -y, 완성 된 다음에 진행하자 apt update, upgradeautoremove에 그 순서를.

apt dist-upgradeUbuntu 18.04에서 실행하는 동안 오류가 발생하여 더 이상 문제가 없으며 프로세스가 "내"수정 인 것처럼 보였습니다.

명령 :

sudo su -
mv /var/cache/apt/archives/libglx-mesa0_18.0.0~rc5-1ubuntu1_amd64.deb ~
apt install -f -y
apt update -y
apt upgrade -y
apt autoremove -y
apt dist-upgrade

추신 : 덮어 쓰기를 강요하는 것은 내가 시도하고 운이 좋았다는 나쁜 생각이었습니다. 근본 원인을 찾아 수정하는 것이 좋습니다. 여전히 조사해야하지만 오류로 인해 파일을 다른 곳으로 옮길 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.