Imagemagick을 설치하려고 할 때 Aptitude가 여러 모듈을 제거했습니다. 이 작업을 취소하려면 어떻게 해야 합니까?

Imagemagick을 설치하려고 할 때 Aptitude가 여러 모듈을 제거했습니다. 이 작업을 취소하려면 어떻게 해야 합니까?

어제 원래 사용했던 Imagemagick을 설치하려고 했는데 apt-get오류가 발생했습니다. 몇 시간 동안 ImageMagick을 설치하려고 했기 때문에 참을성이 없어졌습니다. stackoverflow에 대한 기사에 따르면 apt-get작동하지 않으면 aptitude.so를 사용해 볼 수 있다고 했습니다. 그때부터 모든 것이 무너지기 시작했습니다. Aptitude는 여러 모듈을 제거하기 시작합니다. 나는 그것이 과정의 일부라고 생각합니다. 그래서 지금:

  • apache2가 시작되지 않았습니다
  • nginx가 실행되고 있지 않아 plesk를 실행할 수 없습니다.
  • plesk도 더 이상 작동하지 않기 때문에 내 메일 서버가 더 이상 작동하지 않습니다.

이거 롤백할 수 있는 방법이 있나요? 앞으로 이런 일을 피할 수 있는 방법이 있나요? 나는 적성이 apt-get과 동일하게 행동할 것으로 기대합니다.

답변1

둘 다 apt-get기본 명령(데비안 패키지 시스템) aptitude에 대한 편리한 프런트엔드 입니다. dpkg종속성, 충돌 해결 및 패키지 다운로드와 같은 작업을 (사전) 처리한 다음 dpkg다운로드한 *.deb 파일을 설치하거나 패키지 및 해당 종속성을 제거하거나 자동으로 구성(구성 취소)하거나 명시적인 지침과 함께 호출됩니다. 다른 작업을 실행합니다...

aptitude특정 패키지를 강제로 설치 해야 할 수도 있습니다 . 충돌 해결이 시작되어 충돌하는 패키지를 완전히 제거하고 다른 패키지를 손상시킵니다. 아마도 종속성 해결에서는 특정 종속성이 특정 버전이나 아키텍처에 설치되어야 하며 이러한 종속성은 이미 설치된 종속성과 공존할 수 없다는 사실을 발견했을 것입니다. 어떤 것들은 단순히 작동하지 않지만 강제 설치를 요청했기 때문에... 음, 원하는 것을 얻었습니다.

여기에서 패키지 기록 및 시스템 상태에 대한 유용한 정보를 찾을 수 있습니다. 이 파일을 읽으려면 less <log-file>(또는 )을 사용하십시오 .zless <compressed-log-file>

  • 여기에서 요청/명령에 대해 제안된 /var/log/apt/history.log*명령 기록과 솔루션을 볼 수 있습니다 .apt-get
  • 여기서 /var/log/apt/term.log*해당 요청/명령의 출력을 볼 수 있습니다.
  • 거기에서 /var/log/aptitude*몇 가지 능력 활동을 볼 수 있습니다.
  • 여기에서 /var/log/dpkg.log*개별 패키지 상태 바이스에서 무슨 일이 일어나고 있는지 확인할 수 있습니다.

dpkg -l이전에 설치된 패키지(예: "제거된" 패키지)의 상태를 포함하여 시스템의 모든 패키지가 해당 상태와 함께 나열됩니다. 목록 제목(또는 man dpkg)은 첫 번째 열의 문자가 무엇을 의미하는지 알려줍니다. 첫 번째 문자는 /apt-get/aptitude 요청한 패키지의 상태를 알려줍니다. 두 번째 문자는 패키지의 현재 상태를 알려줍니다. 세 번째 문자가 있는 경우 R패키지를 다시 설치해야 합니다. dpkg -l | grep -v "^ii""요구 사항에 따라 현재 설치됨" 패키지를 제외하고 동일한 패키지가 나열되며, 이는 "제거된", "반 구성" 또는 "반 설치" 패키지의 범위를 좁히는 데 도움이 될 수 있습니다. 명령 파이프라인 중 하나에 추가하면 | less출력을 스크롤할 수 있습니다.

지금 하고 싶은 일은 어떤 패키지가 제거되었는지, 그 이유는 무엇인지 알아내는 것입니다. "왜" 부분은 대략 위에서 언급한 것과 같으며 쉽게 해결할 수 없습니다. 따라서 먼저 imagemagick을 제거/정리할 수 있습니다(실행한 apt-get remove <the-offending-package>다음 계속하거나 apt-get autoremoveapt-get remove <other-packages>이상 필요하지 않은 종속성을 제거하십시오. --purge구성 파일도 제거하려는 경우 두 명령에 주의하여 추가하십시오).

그런 다음 누락된 패키지를 다시 설치할 수 있습니다. 또는 관심 있는 주요 손상된 패키지를 강제로 다시 설치하고 apt-get/aptitude가 평소와 같이 이전 종속성을 자동으로 설치하도록 할 수 있습니다. 이렇게 하면 사소한 lib* 종속성이 "수동 설치"로 표시되지 않으므로 필요한 경우 향후 자동 제거가 방지됩니다.

패키지를 다시 설치하려면: 필요에 따라 패키지의 명시적인 재추출에 apt-get install <package>선택적으로 추가합니다 .--reinstall

또한 해당 옵션을 보고 알아볼 man apt-get수 있습니다.man aptitude

행운을 빌어요!

관련 정보