패키지 관리자가 설치할 사용 가능한 디렉터리를 어떻게 테스트합니까?

패키지 관리자가 설치할 사용 가능한 디렉터리를 어떻게 테스트합니까?

--dry-run여러 종속성이 있는 시스템에 대한 설치 스크립트를 만들려고 하는데 실제 설치를 수행하기 전에 패키지 관리자(이 경우 Ubuntu)를 사용하는 방법을 알아냈습니다 .apt

그러나 패키지를 설치한 후에는 특정 구성 파일을 복사해야 합니다. 설치를 커밋하기 전에 대상이 사용 가능한지 확인하려면 어떻게 해야 합니까?

부분적으로 설치하고 시스템을 예측할 수 없는 상태로 두는 스크립트를 실행하고 싶지 않지만, 관련된 패키지가 존재하지 않으면 확인할 구성 디렉토리가 존재하지 않습니다.

base.conf에 복사하고 /etc/package/system/싶지만 /etc/package/존재하지 않는다고 가정해 보겠습니다 . 대상이 잘못 구성된 경우(예: 철자가 틀린 경우 sytem) 복사 프로세스 중에 패키지를 설치한 후 오류가 발생합니다. 이는 복사된 여러 구성 파일 중 하나일 수 있으므로 말하자면 "롤백"할 방법이 없습니다. 나의 궁극적인 목표는 설치 과정에서 부분적으로 복사된 파일을 남겨 두지 않는 것입니다.

실패 시나리오는 여러 파일을 복사해야 하는 경우입니다. 복사할 파일이 3개 있고 세 번째 파일의 대상이 잘못 구성된 경우에도 처음 2개 파일을 복사하고 세 번째 파일에서 오류가 발생합니다. 잔여 파일은 다음에 실행될 때 추가 오류를 발생시킵니다.

추신: 종속성을 처리하기 위해 실제 패키지를 만들어야 할 수도 있지만 복잡성과 필요한 시간이 훨씬 더 높아서 지금은 이에 투자하고 싶지 않습니다.

답변1

apt-file패키지 를 다운로드하지 않고도 패키지 내용을 미리 확인할 수 있습니다 list.

그러나 이는 완전한 그림을 제공하지 않으며 임의의 패키지를 설치하지 않고는 변경 사항에 대한 완전한 그림을 구축할 수 없습니다. 패키지는 다른 변경을 수행하는 관리자 스크립트를 제공할 수 있습니다. 이는 패키지가 패키지의 메타데이터에 표시되지 않는 디렉토리를 생성할 수 있다는 것을 의미하며, 관리자 스크립트를 분석하고 해당 패키지의 모든 부작용과 패키지 종속성을 고려해야만 디렉토리를 찾을 수 있습니다.

귀하의 시나리오에서는 다음과 같은 2단계 접근 방식이 필요하다고 생각됩니다.

  • 패키지 관리 시스템을 사용하여 필요한 모든 패키지를 설치하십시오.
  • 생성된 디렉터리 레이아웃과 설치된 파일에 대한 모든 기대치를 확인하고
    • 기대에 부응한다면 다른 모든 파일을 제자리에 복사하세요.
    • 그렇지 않은 경우 설치한 모든 패키지를 지우십시오. 그러면 --autoremove자동으로 설치된 모든 종속성도 제거됩니다.

관련 정보