/etc
다양한 unice에서 버전 제어를 위해 어떤 턴키 솔루션이 존재합니까 ? 턴키가 반드시 기본 설치의 일부를 의미하는 것은 아니지만 다음 기능이 있으면 좋을 것입니다.
- VCS 명령에 연결하여 메타데이터(소유권, 권한)를 관리합니다.
- 패키지 관리자와 통합(설치 전후 자동 실행, 지능적으로 업그레이드 처리)
- 업스트림 파일 버전을 분기로 처리합니다.
- 미리 채워진 무시 목록;
- 다양한 기본 VCS(특히 분산 VCS)를 지원합니다.
나는 사용한다관리자를 기다려주세요데비안과 그 파생물에서. 업스트림 버전을 추적하지 않는다는 점을 제외하면 위의 모든 기능이 있습니다. 대안, 특히 *BSD에 대해 알고 싶습니다.
답변1
젠투에서는 패키지로 인한 변경 사항을 관리하는 도구 /etc
(rcs 라고 함 dispatch-conf
)가 변경 사항을 추적하기 위해 rcs를 지원하지만 그다지 강력하지는 않습니다.
나는 via 의 /etc
버전을 관리 하는 경향이 있습니다 git
. 특히 다른 분기를 사용하면 /etc
가능한 한 많은 항목을 한 곳에 유지하면서 다른 릴리스에서 최대한 유사하게 유지할 수 있기 때문입니다(일부 명백한 실패의 경우 아파치 구성과 같은 영역은 배포판마다 다릅니다). 분포. 작동 방식은 다음과 같습니다.
내
master
저장소에는 기본 구성 파일이 포함되어 있습니다.이제 새 배포판을 만지고 있으므로
master
배포판 이름(이 경우 debian)을 기반으로 내 분기를 기반으로 새 분기를 만들었습니다.데비안은 일부 구성 파일을 나와 다른 위치에 보관하므로
master
하나를 만들었습니다git mv file new_loc
.master
특정 구성 지시문을 추가하면서 다시 전환 하고 해당 파일을 변경했습니다.master
내 브랜치에 병합하면debian
이동된 파일이 변경되므로 기본적으로 내master
브랜치에 있는 대부분의 항목을 변경하고 "배포" 브랜치(보통 더 많은 경향이 있음)의 변경 사항만 병합할 수 있습니다(배포 혼합 및 대상 브랜치), 데비안 서버와 데비안 워크스테이션 사이에는 분명히 약간의 차이가 있지만 기능은 여전히 작동합니다.
그래서 기본적으로 저는 "공통 구성"을 갖고 있고 master
(객체 지향 프로그래밍 용어로) 이를 제 브랜치에 상속합니다(서로 상속할 수도 있습니다).
그 외에도 git
커밋 "체리 선택" 메커니즘(이 경우 로 변경됨 /etc/
)은 특정 구성의 일부만 필요할 때 매우 유용합니다.
이제 몇 가지 생각을 해보겠습니다.
- 더 많은 패키지 관리자 통합이 필요한 경우 래퍼 스크립트를 사용할 수 있습니다(현재는 사용하지 않음).
- 업스트림 버전을 브랜치가 잘 작동한다고 생각하면
git
때로는 (부분적으로) 병합하는 또 다른 브랜치일 뿐입니다.master
- git의 무시 목록은 저장소의 파일이므로
.gitignore
재정의되었습니다.
답변2
나는 fossil
이것을 어느 정도 성공적으로 사용했습니다. 바라보다화석에 관한 내 게시물더 많은 정보를 알고 싶습니다. 또한 etcupdate
변경 사항을 추적하는 것보다 업그레이드 간 이동에 더 적합한 도구를 사용했습니다 . 나는 그것이 freebsd-update
한때 동반 도구로 의도된 것이라고 생각합니다. 현재 상태는 확실하지 않지만 내 RELEASE-8.*
시스템에서는 작동합니다.
http://lists.freebsd.org/pipermail/freebsd-current/2010-June/017927.html http://people.freebsd.org/~jhb/etcupdate/
답변3
라는 도구가 있습니다.관리자를 기다려주세요얼마나 좋은지 모르겠습니다.
etckeeper는 /etc를 git, mercurial, darcs 또는 bzr 저장소에 저장할 수 있는 도구 모음입니다. 패키지 업그레이드 중에 /etc에 대한 변경 사항을 자동으로 커밋하기 위해 apt(및 yum 및 pacman-g2를 포함한 다른 패키지 관리자)에 연결합니다. 이는 개정 제어 시스템에서 일반적으로 지원되지 않지만 /etc/shadow에 대한 권한과 같이 /etc에 중요한 파일 메타데이터를 추적합니다. 버전 제어 사용의 기본 사항을 이해한다면 매우 모듈식이고 구성 가능하며 사용이 간단합니다.
*BSD에서도 작동할지는 모르겠지만 그럴 것이라고 생각합니다. 하지만 포트는 기본적으로 이를 지원하지 않습니다.