我想在我的spec文件中使用下面的代碼,我正在將我的應用程序安裝爲獨立的tomcat實例。rpm -U刪除符號鏈接,除非我使用--force
# 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
運行它創建並離開那裏符號鏈接。
當我使用-U
運行新版本的rpm時,它會執行此代碼並正確創建符號鏈接,但是當rpm命令退出時,符號鏈接將被刪除。
如果我第二次運行-U --force
,則符號鏈接保持不變。
如何獲得-U
而不必使用--force
?
我添加了'bash'標籤,因此它將語法突出顯示代碼片段 – 2011-04-20 23:48:00