Projekt

Allgemein

Profil

Aktionen

ETCkeeper » Historie » Revision 8

« Zurück | Revision 8/28 (diff) | Weiter »
Josef Braun, 02.01.2010 14:30


Versionierung von Dateien im /etc VerzeichnisOrdner
mit etckeeper

Speichert /etc in Git, Mercurial, Bzr oder Darcs

etckeeper ist ein Werkzeug, um /etc in einem Git- , Mercurial- , Bzr- oder Darcs-Depot speichern zu können. Es hängt sich in APT ein und überträgt die Änderungen in /etc, die während der Paketaktualisierung gemacht wurden. Es macht die Metadaten der Dateien ausfindig, was Versionskontrollsysteme normalerweise nicht unterstützen, dies ist allerdings wichtig für /etc, wie z. B. die Rechte von /etc/shadow. Es ist recht modular und konfigurierbar, gleichzeitig auch einfach zu benutzen, wenn Sie die Grundlagen des Arbeitens mit Versionskontrolle verstehen.

(am Beispiel einer OpenSuse Installation mit Mercurial)

Schritte zur fertigen Installation

  • die Pakete git und mercurial mit yast installieren
  • die aktuelle Version vom git repository abholen.

    Dazu in ein leeres bzw. neues Verzeichnis wechseln und aufrufen:

    md ~/src
    cd ~/src
    git clone git://git.kitenet.net/etckeeper
    
    

  • in das etckeeper Verzeichnis wechseln

    die etckeeper.conf bearbeiten und

    1. das verwendete SCM von git auf merical umstellen # high-level package manager und # low-level package manager umstellen
    # /etc/etckeeper.conf
    #
    # version 0.41
    #
    # The VCS to use.
    VCS="hg" 
    #VCS="git" 
    # VCS="bzr" 
    # VCS="darcs" 
    
    # Options passed to git commit when run by etckeeper.
    #GIT_COMMIT_OPTIONS="" 
    
    # Options passed to hg commit when run by etckeeper.
    #HG_COMMIT_OPTIONS="" 
    
    # Options passed to bzr commit when run by etckeeper.
    #BZR_COMMIT_OPTIONS="" 
    
    # Options passed to darcs commit when run by etckeeper.
    #DARCS_COMMIT_OPTIONS="" 
    
    # Uncomment to avoid etckeeper committing existing changes
    # to /etc automatically once per day.
    #AVOID_DAILY_AUTOCOMMITS=1
    
    # Uncomment to avoid etckeeper committing existing changes to.
    # /etc before installation. It will cancel the installation,
    # so you can commit the changes by hand.
    #AVOID_COMMIT_BEFORE_INSTALL=1
    
    # The high-level package manager that's being used.
    # (apt, pacman-g2, yum etc)
    #HIGHLEVEL_PACKAGE_MANAGER=apt
    HIGHLEVEL_PACKAGE_MANAGER=yum
    
    # The low-level package manager that's being used.
    # (dpkg, rpm, pacman-g2, etc)
    #LOWLEVEL_PACKAGE_MANAGER=dpkg
    LOWLEVEL_PACKAGE_MANAGER=rpm
    
  • nun mittels 'make install' die Dateien nach /etc/etckeeper installieren

    das liefert in etwa folgenden Output bei Erfolg.

    mkdir -p /etc/etckeeper/ /var/cache/etckeeper/
    cp -a *.d /etc/etckeeper/
    install  -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf
    install  -D etckeeper /usr/sbin/etckeeper
    install  -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8
    install  -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper
    install  -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py
    install  -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf
    ./etckeeper-bzr/__init__.py install --root= || echo "** bzr support not installed" 
    Traceback (most recent call last):
      File "./etckeeper-bzr/__init__.py", line 6, in <module>
        import bzrlib
    ImportError: No module named bzrlib
    ** bzr support not installed
    echo "** installation successful" 
    ** installation successful
    

+ Fertig!
nun existiert der komplette Tree auch auf /etc/etckeeper

Befehle im Betrieb:

Links:

Entwicklerseite auf http://kitenet.net/~joey/code/etckeeper
Debian Paket zum Vergleich http://packages.debian.org/de/sid/etckeeper

Von Josef Braun vor fast 16 Jahren aktualisiert · 8 revisions

Redmine Appliance - Powered by TurnKey Linux