/etc
を配置するためのターンキーソリューションは何ですか バージョン管理下、さまざまなユニス下?ターンキーは必ずしも基本インストールの一部を意味するわけではありませんが、次の機能があれば便利です。
- メタデータ(所有権、権限)を管理するためにVCSコマンドにフックします。
- パッケージマネージャーとの統合(インストールの前後に自動的に実行され、アップグレードをインテリジェントに処理します);
- アップストリームファイルバージョンをブランチとして扱います。
- 事前に入力された無視リスト;
- いくつかの基盤となるVCS(特に分散型VCS)のサポート。
私はDebianとその派生物の下でetckeeperを使用しています。アップストリームバージョンを追跡しないことを除いて、上記のすべての機能を備えています。特に*BSDでの代替案について学びたいです。
承認された回答:
Gentooの下で、パッケージによって引き起こされた/etc
への変更を管理するツール (dispatch-conf
と呼ばれます )変更を追跡するためのrcsをサポートしていますが、それはそれほど強力ではありません。
私は自分の/etc
をバージョン管理する傾向があります git
経由 特に、さまざまなブランチを使用することで、/etc
を保持できるためです。 可能な限り多くのものを1つの場所に保持しながら、異なるディストリビューションで可能な限り類似しています(明らかに失敗する一部の領域では、たとえば、apache構成は異なるディストリビューション間で実際に異なります)。これは次のように機能します:
-
master
がいます デフォルトの構成ファイルを使用してリポジトリを作成します。 -
今、私は新しいディストリビューションと連絡を取り、
master
に基づいて新しいブランチを作成します ディストリビューションの名前(この例ではdebian)に基づいて分岐します。 -
Debianは、私の
master
とは異なる場所にいくつかの設定ファイルを保持しています だから私はgit mv file new_loc
。そして、すべてが順調です。 -
master
に切り替えます 特定の構成ディレクティブを追加したので、そのファイルを変更します。 -
master
をマージするとき 私のdebian
に ブランチ移動したファイルが変更されるので、基本的にはmaster
内のほとんどのものを変更できます ブランチを作成し、「配布」ブランチの変更をマージする必要があります(通常、配布ブランチと目的ブランチが混在する傾向があります。Debianサーバーは明らかにDebianワークステーションといくつかの違いがありますが、機能は引き続き機能します)。
つまり、基本的にはmaster
に「一般的な構成」があります そして(オブジェクト指向プログラミング用語で言うと)それらを私のブランチに継承します(お互いから継承することもできます)。
それとは別に、git
の「チェリーピック」コミットのメカニズム(この場合は/etc/
に変更されます) )特定の構成の一部のみが必要な場合は、非常に役立ちました。
さて、あなたのアイデアのいくつかに:
- さらにパッケージマネージャーの統合が必要な場合は、おそらくこれにラッパースクリプトを使用します(現時点では使用していません)。
- アップストリームバージョンをブランチとして扱うと、
git
で正常に機能します 、これは、master
に(部分的に)マージすることがある別のブランチです。 - gitの無視リストはファイル
.gitignore
です。 それがカバーされるようにあなたのレポで。