makeを使用してインストールするときの設定ファイルの破損を防ぐ方法

makeを使用してインストールするときの設定ファイルの破損を防ぐ方法

autotoolsを使用してシステムを構築してインストールするときにmake install既存の設定ファイルが破損するのを防ぐ方法は?

次のように設定ファイルを定義しましたMakefile.am

dist_sysconf_DATA = $(top_srcdir)/server.conf

make install既存のバージョンを壊さないようにデータファイルを定義するにはどうすればよいですか?

ベストアンサー1

ファイルがすでに存在する場合は、インストール先からそのファイルをコピーしないようにするか、別の名前でファイルをコピーすることをお勧めします。これは例です人データベース

# We deliberately leave the configuration file in place on uninstall, since
# it may contain local customisations.
distuninstallcheck_listfiles = \
        find . -type f -print | grep -v 'etc/man_db\.conf'

noinst_DATA = man_db.conf

install-data-hook:
        @if test -f $(DESTDIR)$(config_file); then \
                echo "$(DESTDIR)$(config_file) already exists; overwrite manuall
        else \
                test -z "$(config_file_dirname)" || $(MKDIR_P) "$(DESTDIR)$(conf
                echo " $(INSTALL_DATA) man_db.conf $(DESTDIR)$(config_file)"; \
                $(INSTALL_DATA) man_db.conf $(DESTDIR)$(config_file); \
        fi

ただし、最善のアプローチは、ユーザーが展開されたファイルを変更する必要がないように、インストールされたファイルとカスタマイズを厳密に区別することです。アプリケーションが/etc/myapp.conf構成を/usr/share/myapp/default.conf読み取るようにすると、以下の空のファイルが原因で、以下のデフォルトの動作/etcと設定が/etc以下のデフォルトの動作と設定を上書きします/usr

おすすめ記事