1

スペックファイルで次のコードを使用しようとしています。アプリケーションをスタンドアロンのTomcatインスタンスとしてインストールしています。

# Symlink $CATALINA_BASE/logs to /var/log/$SERVICE_NAME.
# If it's already there, we'll get rid of it and make a new symlink.
if [ -h "$RPM_INSTALL_PREFIX/logs" ]; then
    # It's a symlink, so just remove it.
    rm -f $RPM_INSTALL_PREFIX/logs
fi
# If it's still there, and it's a directory, see if we can rmdir it.
if [ -d "$RPM_INSTALL_PREFIX/logs" ]; then
    rmdir $RPM_INSTALL_PREFIX/logs >/dev/null 2>&1 || :
fi
if [ -e "$RPM_INSTALL_PREFIX/logs" ]; then
    # It's probably either a file or a dir, so we'll move it.
    mv $RPM_INSTALL_PREFIX/logs $RPM_INSTALL_PREFIX/logs.rpmsave || :
fi
ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :

このコードを実行する-iと、シンボリックリンクが作成されてそこに残されます。

新しいバージョンのrpmを-U実行すると、このコードが実行され、シンボリックリンクが正しく作成されますが、rpmコマンドを終了すると、シンボリックリンクが削除されます。

2回目に実行-U --forceすると、シンボリックリンクは残ります。

-Uを使用せずに滞在するにはどうすればよい--forceですか?

4

2 に答える 2

0

あなたは何をしようとしているのですか?シンボリックリンクを保持または削除していますか?

削除する場合は、次のことを試してください。

rm -f -i $RPM_INSTALL_PREFIX/logs # File
rmdir -f $RPM_INSTALL_PREFIX/logs >/dev/null 2>&1 || : # Directory
于 2011-05-14T17:09:00.007 に答える
0

これは、RPMの更新ファイルリストの一部としてlogsという名前のファイルを追加することで解決され、シンボリックリンクはずっと存在していると見なされるため、自動的に削除されなくなりました。

于 2011-05-14T17:53:39.080 に答える