* BSDでの/ etcのバージョン管理


14

/etcさまざまな分野で、バージョン管理下に置くためのターンキーソリューションは何ですか?ターンキーは必ずしも基本インストールの一部を意味するわけではありませんが、次の機能があれば便利です。

  • VCSコマンドにフックして、メタデータ(所有権、権限)を管理します。
  • パッケージマネージャーとの統合(インストールの前後に自動的に実行され、アップグレードをインテリジェントに処理します);
  • アップストリームファイルバージョンをブランチとして扱います。
  • 事前に入力された無視リスト。
  • 基礎となるいくつかのVCS(特に分散VCS)のサポート。

Debianおよび派生物の下でetckeeperを使用しています。アップストリームバージョンを追跡しないことを除き、上記のすべての機能を備えています。特に* BSDの代替案について学びたいと思います。

回答:


4

Gentooでは、パッケージに起因する/ etcへの変更を管理するツール(dispatch-confと呼ばれます)はrcをサポートして変更を追跡しますが、それはあまり強力ではありません。

git特に、異なるブランチを使用することで、可能な限り異なるディストリビューションで/ etcをできるだけ同じ場所に保持しながら、可能な限り同じ場所に置くことができるため、/ etc経由で/ etcをバージョン管理する傾向があります(明らかに失敗する一部の地域では、Apache設定たとえば、異なるディストリビューション間で本当に異なります)。それはこのように動作します:

私は私の持っているmaster私のデフォルトの設定ファイルでレポを。今、私は新しいディストリビューションに連絡しているので、ディストリビューションmasterの名前(この例ではdebian)に基づいたブランチに基づいて新しいブランチを作成します。Debianはいくつかの設定ファイルを私のmasterとは別の場所に保存するので、私はgit mv file new_loc。そして、すべてが大丈夫です。master特定のconfigディレクティブを追加したため、そのファイルに切り替えて変更します。ブランチにマージmasterすると、debian移動したファイルが変更されるため、基本的には、masterブランチ変更し、「配布」の変更をマージするだけですブランチ(通常、ディストリビューションと目的のブランチが混在する傾向があります。debianサーバーはdebianワークステーションと明らかに違いがありますが、機能は引き続き動作します)。

したがって、基本的には「一般的な構成」をmaster持ち、(オブジェクト指向プログラミング用語で言うと)ブランチを継承します(ブランチも互いに継承できます)。

それとは別に、git「チェリーピック」コミット(この場合は/ etc /への変更)のメカニズムは、特定の構成の一部だけが必要な場合に非常に役立ちました。

次に、いくつかのアイデアを紹介します。

  • さらにパッケージマネージャーの統合が必要な場合は、おそらくこれにラッパースクリプトを使用します(現時点では必要ありません)。
  • アップストリームバージョンをブランチとして扱うとgit、でうまく動作します。master
  • gitの無視リストは、リポジトリ内の.gitignoreファイルであるため、これはカバーされています。

gentooのcfg-updateはdispatch-confよりも好きでしたが、残念ながら前者は維持されていません。私が去る約1年前から、それはスパゲッティperlの混乱でした。
-xenoterracide

3

私はfossilこれにある程度成功しました。詳細については、化石に関する私の投稿を参照しください。また、etcupdate変更の追跡よりもアップグレード間の移動に適したツールを使用しました。freebsd-updateある時点でのコンパニオンツールになることを意図していたと思います。現在、そのステータスはわかりませんが、私のRELEASE-8.*システムでは動作し ます。

http://lists.freebsd.org/pipermail/freebsd-current/2010-June/017927.html http://people.freebsd.org/~jhb/etcupdate/


-1

etckeeperというツールがありますが、それがどれほど優れているかはわかりません。

etckeeperは、/ etcをgit、mercurial、darcs、またはbzrリポジトリに保存するためのツールのコレクションです。apt(およびyumやpacman-g2を含む他のパッケージマネージャー)にフックして、パッケージのアップグレード中に/ etcに加えられた変更を自動的にコミットします。revison制御システムが通常サポートしないファイルメタデータを追跡しますが、/ etc / shadowの許可など、/ etcにとって重要です。これは非常にモジュール化されており、構成可能ですが、リビジョン管理の基本を理解していれば簡単に使用できます。

また、* BSDで動作するようにできるかどうかはわかりませんが、可能性はあると思いますが、デフォルトのポートではサポートされません。


1
ジルはすでにetckeeperを使用しています。
タント

@tanteああ、私はそれを見逃した
xenoterracide
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.