0

RPM 経由でアプリケーションを配信します。
私がする必要があるのは、ユーザーがアプリケーションをアンインストールした場合 ( rpm -e)、インストールされたアプリケーションの一部であるいくつかのファイルのバックアップを作成する機会を得るということです。
さらに、(ポスト)インストール時に、インストールのファイルの一部を、以前のアンインストール中に保存したファイルに置き換える機会をユーザーに与えたいと考えています。

これを行うために、インタラクティブな RPM を作成することを考えました。
しかし、うまくいきませんでした。たとえば、いくつかのコマンドreadが RPM 仕様で何らかの形で無視されていることがわかりました。さらに、ユーザーからインタラクティブな入力を取得するという考えは嫌われており、推奨されていません。

私の質問は、ここで本当に間違ったアプローチに従っているのでしょうか? 別の方法で行う必要がありますか?どのように?この特定の問題に対する別の解決策は考えられません。

何か助けはありますか?

4

1 に答える 1

2

RPM のアンインストール/インストール中のユーザーとのやり取りは、適切な方法ではありません。その背後にある哲学は、たとえば YUM 経由でインストールする場合、RPM を自動的にアンインストール/インストールできるようにすることです。必要に応じて、いくつかのオプションがあります。

ベスト: ユーザーからすべての情報を取得するスクリプトを作成し、それをファイルに書き込みます。RPM 前提条件で、ファイルが存在することを確認します。

オプション: ユーザーとやり取りする bash スクリプト内に RPM を埋め込み、RPM を抽出して実行します。Java RPM は、EULA に同意できるようにするためのものだと思います。

良い考えではありません: RPM が /dev/tty から読み取る場所を読んだのでexec 0</dev/tty、%pre または %post の先頭に追加してみてください。

于 2012-04-05T12:31:45.590 に答える