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

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

누군가가 일부 소프트웨어를 설치, 업그레이드 또는 제거하는 데 문제가 있을 때마다 이 메시지가 여러 번 표시되지만 알고 싶습니다.무슨 뜻이에요, 그리고 더 중요한 것은 그것을 해결할 수 있습니까?

(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)

(위 내용은 예시일 뿐, 실제 질문은 아닙니다)

답변1

메시지는 보편적입니다. 이는 단지 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 100postinst: 실패한 스크립트가 설치 후 실행되는 스크립트임을 알려줍니다 . 어떤 경우에는 이것이 편리할 수 있지만 이 경우에는 그렇지 않습니다.

  • dpkg: error while cleaning up:여기에는 유용한 것이 없습니다.

  • invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.빙고! 이는 invoke-rc.dinit 스크립트를 제어하는 ​​바이너리가 대부분의 데비안 계열 시스템에서 실패함을 알려줍니다 . 스크립트를 찾을 수 없어 /etc/init.d/mongodb실패했습니다 . 이것은 좋지 않습니다. 다시 작동하려면 이를 생성하거나 다른 곳에서 복사해야 합니다. 패키지를 다시 설치하는 것도 file not found오류를 해결하는 방법인 경우가 많습니다.

    이 경우 스크립트를 삭제한 사람이 우리일 가능성이 높으므로 버그를 보고할 필요는 없습니다. 하지만 파일을 건드리지 않았다고 확신하는 경우(확인해야 함 debsums -sla) 버그를 보고하세요.

그렇다면 도움을 받으려면 정확히 무엇이 필요합니까? 이상적으로는 문제의 전체 출력입니다. "package1 package2 ..." sudo dpkg -C의 출력 에 문제의 모든 패키지가 포함되어 있는 경우에도 도움이 됩니다.sudo apt-get checkapt-cache policy package1 package2...

관련 정보