Я создаю пакет значка, названный smoothX* и в стадии разработки, и то же сохраняется в Ubuntu PPA, каждый раз, когда я обновляю или удаляю некоторые из них, я хочу, чтобы то же было отражено в PPA .deb, для которого я добавил preinst сценарий к debian папке со следующим.
#!/bin/sh
set -e
#remove old installation files
if which smoothX* >/dev/null 2>&1 ; then
rm -Rf /usr/share/icons/smoothX*
fi
но ничего не происходят кроме него установки по тому (старые измененные или удаленные файлы все еще там.)
Как удалить старые установленные файлы полностью с preinst сценарием и добраться, устанавливают содержание нового deb файла и настраивают его. Ваша справка будет высоко ценившим спасибо.
хорошо мне удалось сделать, в чем я точно нуждался, так как я уже загрузил на PPA и поддержание пакета. с этим "preinst" сценарием,
#!/bin/sh
set -e
# remove old and obsolete files
rm -R -f /usr/share/icons/smoothX*
exit 0
также я знаю, что это не правильный способ сделать это, поскольку я - новичок в сценариях удара, которые я хотел бы знать, как сделать правильный путь, когда я погуглил, я добрался:
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null; then
dpkg-maintscript-helper rm_conffile /etc/foo/conf.d/bar 1.2-1 -- "$@"
fi
с которым я не мог понять, практическое руководство dpkg-maintscript
. Слова благодарности и надежда кто-то мог вести меня.
При попытке удалить файлы в preinst, необходимо на самом деле перепроектировать весь установщик, чтобы перезаписать, и удалить только файлы, этого не стало. По умолчанию, apt-get
и dpkg
будет перезапись любые файлы, которые имеют имя файла соответствия и перезапись. Если Вы все еще имеете дело со старыми файлами в целевой системе, то пакет является странным.
В конечном счете, если Вы всегда изменяете файлы постоянно как часть разработки и существует много оставшихся битов, Вы не должны, вероятно, использовать PPA для него, и просто придерживаться создания из источника, пока у Вас нет стабильной версии.