
--dry-run
여러 종속성이 있는 시스템에 대한 일부 설치 스크립트를 만들려고 하고 있으며 실제 설치를 수행하기 전에 패키지 관리자( apt
이 경우 Ubuntu)를 사용하는 방법을 알아냈습니다 .
그러나 패키지를 설치한 후에는 특정 구성 파일을 복사해야 합니다. 설치를 커밋하기 전에 대상을 사용할 수 있는지 확인하려면 어떻게 해야 합니까?
부분적으로 설치되어 시스템을 예측할 수 없는 상태로 만들기 위해 스크립트를 실행하고 싶지 않지만, 관련된 패키지가 존재하지 않으면 확인할 구성 디렉터리도 존재하지 않을 것입니다.
base.conf
에 복사하고 /etc/package/system/
싶지만 /etc/package/
존재하지 않는다고 가정해 보겠습니다 . 대상이 잘못 구성된 경우(예: 철자가 틀린 경우 sytem
) 복사 중에 패키지 설치 후 오류가 발생합니다. 이는 이미 복사된 여러 구성 파일 중 하나일 수 있으므로 "롤백"할 방법이 없습니다. 말하자면. 나의 최종 목표는 부분적으로 복사된 파일을 남기지 않는 설치 프로세스를 갖는 것입니다.
실패 시나리오는 여러 파일을 복사해야 하는 경우입니다. 복사할 파일이 3개 있고 세 번째 파일의 대상이 잘못 구성된 경우에도 처음 2개 파일을 복사하고 세 번째 파일에서 오류가 발생합니다. 잔여 파일로 인해 다음 실행 시 추가 오류가 발생합니다.
추신: 종속성을 처리하기 위해 실제 패키지를 만들어야 할 수도 있지만 복잡성과 필요한 시간이 훨씬 더 높으므로 지금은 이에 투자하고 싶지 않습니다.
답변1
패키지를 다운로드하지 않고도 미리 패키지 내용을 검사할 수 있습니다. apt-file
그리고 그 명령을 참조하십시오 list
.
그러나 그것은 결코 완전한 그림을 제공하지 않으며, 임의의 패키지를 설치하지 않고는 임의의 패키지에 의해 변경된 내용에 대한 완전한 그림을 만들 수 없습니다. 패키지는 추가 변경을 수행하는 유지 관리자 스크립트를 제공할 수 있습니다. 즉, 패키지는 패키지의 메타데이터에서 분명하지 않은 디렉터리를 생성할 수 있으며 모든 부작용과 패키지 종속성을 고려하여 관리자 스크립트를 분석해야만 디렉터리를 찾을 수 있습니다.
귀하의 시나리오에서는 2단계 접근 방식이 필요할 것으로 생각됩니다.
- 패키지 관리 시스템을 사용하여 필요한 모든 패키지를 설치하십시오.
- 결과 디렉토리 레이아웃과 설치된 파일에 관해 당신이 갖고 있는 모든 기대치를 확인하고,
- 기대가 충족되면 모든 추가 파일을 제자리에 복사하세요.
- 그렇지 않은 경우 설치한 모든 패키지를 제거
--autoremove
하여 자동으로 설치된 종속성도 제거합니다.