/etc
さまざまなユニークでバージョン管理するためのどのターンキーソリューションがありますか?ターンキーが必ずしも基本インストールの一部を意味するわけではありませんが、次の機能があれば良いでしょう。
- VCSコマンドに接続してメタデータ(所有権、権限)を管理します。
- パッケージマネージャとの統合(インストール前後の自動実行、インテリジェントなアップグレード処理)
- アップストリームファイルのバージョンを分岐として扱います。
- 事前入力された無視リスト。
- さまざまな基本的なVCS(特に分散VCS)をサポートしています。
私は使うマネージャーをお待ちくださいDebianとその派生物から。アップストリームバージョンを追跡しないことを除いて、上記のすべての機能があります。代わりに、特に* BSDについて知りたいです。
答え1
Gentooでは、パッケージによる変更を管理するツール/etc
(rcsと呼ばれるdispatch-conf
)が変更を追跡するためにrcsをサポートしていますが、それほど強力ではありません。
私はviaの/etc
バージョンを管理する傾向がありますgit
。特に、別のブランチを使用すると、できるだけ多くの/etc
アイテムを1つの場所に維持しながら、他のリリースでできるだけ似ている可能性があるためです(一部の明らかな失敗の場合、Apacheの構成などの領域はディストリビューションによって異なります)。分布。仕組みは次のとおりです。
私の
master
リポジトリにはデフォルトの設定ファイルが含まれています。これで新しいディストリビューションに触れているので、
master
ディストリビューション名(この場合はdebian)に基づいて私のブランチに基づいて新しいブランチを作成しました。Debianはいくつかの設定ファイルを出て別の場所に保存するので、
master
1つを作成しましたgit mv file new_loc
。master
特定の設定ディレクティブを追加しながら再度切り替え、そのファイルを変更しました。master
ブランチにマージするとdebian
移動されたファイルが変更されるため、デフォルトでマイmaster
ブランチのほとんどのエントリを変更し、「配布」ブランチ(通常はより傾向がある)の変更のみをマージできます(配布ブレンドとターゲットブランチ) 、DebianサーバーとDebianワークステーションの間には明らかにわずかな違いがありますが、機能はまだ機能しています。
だから基本的に私は「共通構成」を持っていて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でも動作するかどうかはわかりませんが、そうだろうと思います。ただし、ポートはデフォルトでこれをサポートしていません。