“E : 하위 프로세스 / usr / bin / dpkg가 오류 코드 (1)를 반환했습니다.”이것은 무엇을 의미합니까?


31

누군가 소프트웨어를 설치, 업그레이드 또는 제거하는 데 문제가있을 때마다이 메시지를 여러 번 보았지만 그 의미가 무엇인지 , 더 중요한 것은이 문제를 해결할 수 있을까요?

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

(위의 실제 문제가 아니라 예일뿐입니다)


2
내가 시도한 apt-get install (something)것처럼이 오류 메시지가 표시되면 해결책은 apt-get upgrade (something)입니다.
PJ Brunet

답변:


30

그 메시지는 일반적입니다. 그것은 / 가 dpkg호출 한 인스턴스 가 어떤 이유로 실패했음을 의미합니다 . 이유, 방법 또는 힌트 해결 방법을 설명하지 않습니다. 진단 메시지로 유용하지 않습니다.aptapt-get

설치를 완료하지 못하게하는 실제 오류를 찾으려면 메시지 앞의 행 (때로는 상당수)을 읽어야합니다.

예,하지만 어떻게 해결합니까?

그것을 해결하는 유일한 방법은 없습니다. 이런 일이 발생할 수있는 많은 이유가 있기 때문에 단일 게시물에 모두 나열하는 것은 무의미합니다. 각 상황은 패키지 / 환경에 거의 고유합니다.

그러나 구속이 있습니다. 이 메시지가 표시된다는 것은 메시지 앞의 줄에 더 관련 정보가있을 수 있음을 의미합니다. 설명을 위해 예제를 사용합니다.

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

이제 문제를 찾으려면 뒤로 읽으십시오.

  • E: Sub-process /usr/bin/dpkg returned an error code (1)유용한 정보는 없습니다. 계속 진행하십시오.
  • Errors were encountered while processing: mongodb-10gen어떤 패키지에 문제가 있는지 알려줍니다. 유용하지만 충분하지 않습니다.
  • subprocess installed post-installation script returned error exit status 100: 이것은 실패한 스크립트가 postinst설치 후 실행 된 스크립트임을 나타 냅니다. 일부 상황에서는 유용하지만이 상황에서는 유용하지 않습니다.
  • dpkg: error while cleaning up: 여기서 유용한 것은 없습니다.
  • invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.빙고! 이것은 invoke-rc.d대부분의 데비안 계열 시스템에서 init 스크립트를 제어하는 ​​바이너리가 실패했음을 알려줍니다 . /etc/init.d/mongodb스크립트를 찾지 못해 실패했습니다 . 이것은 나쁘다. 다시 만들려면 다른 곳에서 만들거나 복사해야합니다. 패키지 재설치는 일반적으로 file not found오류 옵션입니다 .

    이 경우, 스크립트를 제거한 버그 일 가능성이 있기 때문에 버그를보고 할 필요는 없지만, 파일을 완전히 터치하지 않은 경우 ( debsums -sla확인해야 함) 버그를보고하십시오.

따라서 정확히 도움을 받으려면 무엇이 필요합니까? 이상적으로는 문제의 완전한 결과물입니다. 또한 sudo dpkg -Cand 의 출력을 포함하는 것이 도움이 되고 sudo apt-get check, apt-cache policy package1 package2..."package1 package2 ..." 의 출력 에는 문제가있는 모든 패키지가 포함됩니다.


진단 메시지로서 전체 오류 (처리 중 오류가 발생했습니다 : mongodb-10gen)를 읽으면 도움이됩니다. 이것이 오류가 아닌 E로 표시되는 이유
mchid

1
@mchid 그러나 오류의 원인은 무엇입니까? 눈에 보이지 않는 단서가 없습니다.
Braiam

@mchid 예, 방금 읽은 경우 어떻게 알 수 Errors were encountered while processing: mongodb-10gen있습니까? 문제를 해결하기 위해 그 라인은 쓸모가 없습니다 .
Braiam

내 나쁜 나는 당신이 문제를 해결하는 방법을 찾고 있다고 생각했다.
mchid

BTW를 실행 sudo touch /etc/init.d/mongodb한 다음 실행 sudo apt-get purge mongodb-10gen하여 문제를 해결하십시오. 나는 이것을 테스트했으며 파일이 존재하는 한 (/etc/init.d/mongodb) dpkg는 파일이 비어 있어도 터치가 수행하는 것 (빈 파일을 만듭니다)에도 진행됩니다.
mchid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.