構成ファイルのアップグレード手順

構成ファイルのアップグレード手順

Ubuntu(およびその他の* nix)をアップグレードすると、アップグレードプロセスは変更された構成ファイルの違いを示し、それらのファイルを置き換えるか、古いバージョンを維持するか、手動でマージするかを尋ねます。 Google や検索でそのようなプログラムを見つけることはできません。Ubuntuパッケージング文書。次の機能を備えたプログラムをご存知ですか?

  • 依存関係はほとんどまたはまったくありません(単一のシェルスクリプトが望ましい)。
  • シェルのみ(呪いなく使うのが良い)
  • するいいえ例えば自動でマージするなど「スマート」してみてください。

編集:最初の確認を行い、ユーザーに何をすべきかを尋ねるために、この小さなものを作成しましたが、それほど柔軟ではなく、良いこともありません。

for path
do
    if [ ! -e "${path}.new" ]
    then
        # No new revision; skip
        continue
    fi

    if [[ $(diff "${path}"{,.new} | grep '^[<>]' | grep -v '^[<>][[:space:]]*\(#\|START=\)' | wc -l) -eq 0 ]]
    then
        # No interesting lines; skip
        continue
    fi

    clear
    diff -u "${path}"{,.new}

    unset action
    while [[ ! "${action-}" =~ ^[sr]$ ]]
    do
        echo "Do you want to replace $path with ${path}.new?"
        read -s -n 1 -p $'[s]kip, [r]eplace: \n' action
    done

    case "$action" in
        s)
            continue
            ;;
        r)
            cp -v "${path}"{,.new}
            ;;
        *)
            echo "Invalid action ${action}!"
            exit 2
    esac
done

ベストアンサー1

私はあなたが見ているプログラムが次のようなものだと強く疑います。dpkgDebian-ishディストリビューションの低レベルパッケージ管理(使用)apt(itude)ここでプロフィールの管理を説明するブログ記事をご覧ください。

おそらくこの機能を傍受することもできます。独自の.debパッケージを作成- 私の考えでは、これがあなたが達成しようとしている目標に問題になる可能性があります。

行くことができる別の道があるので、一度見てください。NetBSDetcupdateツール(NetBSDに固有のものですが、以下を見つけることができます。ソースコード(シェルスクリプト)それでも興味深い)。確かに、Gentooetc-updateにも1つありますしかし、ソースまたは追加情報が見つかりません。 (該当リンクにはdispatch-conf興味深いかもしれない内容も言及されています。よくわかりません。)

おすすめ記事