conffile에 정의된 파일의 동작

conffile에 정의된 파일의 동작

데비안 패키지를 생성하고 sudo dpkg -i package.deb.

그런 다음 를 사용하여 제거했는데 sudo dpkg -r package예상대로 파일이 여전히 남아 있습니다.

그런 다음 를 사용하여 전체 구성 폴더를 삭제하고 rm -rf /var/package/config/"새 설치"를 시뮬레이션하고 다시 설치를 시도했습니다. 이제 conffiles다시는 설치되지 않는 파일 의 단일 파일을 제외하고 모든 리소스가 있습니다 .

설치 명령을 묻는 메시지가 표시되지 않으므로 너무 늦기 전에 이를 감지하기가 어렵습니다.

내 폴더 구조는 다음과 같습니다.

deb
├── DEBIAN
│   ├── conffiles # /home/package/app/config/application.yml is listed here
│   ├── control
│   └── postinst
├── etc
│   └── init.d
│       └── startup
└── home
    └── package
        └── app
            └── config
                └── application.yml
                |
                └── stuff
                     └── common.txt

파일이 추가될 설치 패키지를 실행하는 사용자에게 어떻게 메시지를 표시합니까? 이런 상황은 보통 어떻게 처리되나요?

답변1

관리자가 conf 파일(dpkg에 의해 제어되는 구성 파일)을 삭제하면 dpkg는 이를 편집과 마찬가지로 사용자 변경으로 간주하여 새 설치 및 업그레이드 시 해당 파일을 유지합니다. 패키지가 제거되었지만 제거되지 않고 관리자가 파일을 삭제한 경우 후속 설치에서 파일을 복구할 수 없습니다.

이러한 구성 파일을 강제로 복구하려면 언제든지 --force-confmiss를 사용하거나 dpkg(1)매뉴얼 페이지를 확인하거나 보다 잔인한 지우기 및 재설치 방법을 사용할 수 있습니다. 그러나 일부 다른 구성 파일이나 구성 파일이 손상되면 데이터가 손실될 수 있습니다. 수정되었습니다.

어떤 경우든 홈 디렉터리 아래의 .deb 패키지에 경로 이름을 전달하는 것은 좋은 생각이 아닙니다. 이러한 디렉터리는 삭제할 수 있는 사용자가 소유하거나 사용자가 일반적인 시스템 관리 작업의 일부로 삭제될 수 있기 때문입니다.

관련 정보