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
私はあなたが見ているプログラムが次のようなものだと強く疑います。dpkg
Debian-ishディストリビューションの低レベルパッケージ管理(使用)apt(itude)
。 ここでプロフィールの管理を説明するブログ記事をご覧ください。。
おそらくこの機能を傍受することもできます。独自の.deb
パッケージを作成- 私の考えでは、これがあなたが達成しようとしている目標に問題になる可能性があります。
行くことができる別の道があるので、一度見てください。NetBSDetcupdate
ツール(NetBSDに固有のものですが、以下を見つけることができます。ソースコード(シェルスクリプト)それでも興味深い)。確かに、Gentooetc-update
にも1つありますしかし、ソースまたは追加情報が見つかりません。 (該当リンクにはdispatch-conf
興味深いかもしれない内容も言及されています。よくわかりません。)