저는 애플리케이션과 초기 SQLite 데이터베이스를 설치하는 기본 Debian 패키지를 유지 관리합니다. 애플리케이션이 데이터베이스를 편집할 수 있기를 원합니다.
업그레이드로 인해 데이터베이스가 교체되는 것을 방지하는 방법은 무엇입니까?
제 생각에는conffiles
해결책이겠지만데비안의 관리자 가이드에 따르면:
프로그램이 구성 파일을 사용하지만 자체적으로 다시 작성하는 경우 dpkg는 항상 사용자에게 변경 사항을 확인하라는 메시지를 표시하므로 구성 파일을 만들지 않는 것이 가장 좋습니다.
최선의 선택은 무엇입니까?
답변1
데이터베이스의 구성 파일에 액세스하는 것이 아니라 실제로 데이터베이스를 전달하는 것에 대해 이야기하고 있다면 대답은 문제 설명에 있습니다. 데이터베이스는 구성 파일이 아닙니다.
내 생각에 가장 좋은 옵션은 데이터베이스를 패키지의 설치 파일로 직접 설치하는 것보다 관리자 스크립트에 설치하는 것입니다. 이렇게 하면 관리자 스크립트가 다음을 포함하여 발생할 수 있는 다양한 상황을 처리할 수 있습니다.
- 초기 설치에는 데이터베이스가 없습니다.
- 기존 데이터베이스를 사용한 업그레이드는 그대로 두어야 합니다.
- 마이그레이션해야 하는 기존 데이터베이스를 사용하여 업그레이드합니다.
데이터베이스를 패키지의 임시 위치(아래 어딘가)로 보내고 /usr/share/yourpackage
필요한 경우에만 실제 위치로 이동할 수 있습니다. 으로 보내지 말고 /tmp
파일을 "등록 취소"하려고 시도하지 마십시오. 당신은 또한 볼 수 있습니다.deb 패키지를 설치할 때 임시 파일은 어디에 있습니까?
추가 보너스 포인트를 확인하려면 다음을 확인하세요.dbconfig-common
.