ETCkeeper » Historie » Revision 10
« Zurück |
Revision 10/28
(diff)
| Weiter »
Josef Braun, 02.01.2010 14:41
Versionierung von Dateien im /etc VerzeichnisOrdner
mit etckeeper¶
- Inhaltsverzeichnis
- Versionierung von Dateien im /etc VerzeichnisOrdner mit etckeeper
etckeeper speichert /etc in Git, Mercurial, Bzr oder Darcs SCMs¶
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
- 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
- das Repository noch erzeugen und dann Fertig!
etckeeper init
nun existiert der komplette /etc/etckeeper sowie /etc/.hg (bei letzterem noch schauen, ob die Rechte passen, damit nicht jeder Einsicht bekommt!)
Befehle im Betrieb¶
nach jeder Änderung die gespeichert werden soll ein commit machen:
z.b.
passwd someuser
hg status
hg commit -m "changed a password"
weitere 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 · 10 revisions