Bug 40498

Summary: tcsh: scriptlet failed, exit status 1
Product: Sisyphus Reporter: Ivan A. Melnikov <iv>
Component: tcshAssignee: Gremlin from Kremlin <gremlin>
Status: CLOSED DUPLICATE QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: gremlin
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Ivan A. Melnikov 2021-07-15 13:57:50 MSK
Сегодня при dist-upgrade до сегодняшнего Сизифа apt поругался, что у него broken packages. Оказалось, что он не смог обновить пересобранный tcsh и теперь у меня их два:

# rpm -e tcsh
error: "tcsh" specifies multiple packages:
  tcsh-6.20.00-alt3:sisyphus+263072.100.1.1.x86_64
  tcsh-6.20.00-alt3:sisyphus+278507.100.1.1.x86_64

Попробуем удалить тот, что старше:

# rpm -e 'tcsh-6.20.00-alt3:sisyphus+263072.100.1.1.x86_64'
error: %preun(tcsh-6.20.00-alt3.x86_64) scriptlet failed, exit status 1
error: tcsh-6.20.00-alt3.x86_64: erase failed

Полный вывод `rpm -e -vv 'tcsh-6.20.00-alt3:sisyphus+263072.100.1.1.x86_64'` приводить не буду, он скушный, но там есть такие строки:

+ test 1 = 0
D: %preun(tcsh-6.20.00-alt3.x86_64): waitpid(80105) rc 80105 status 100

Действительно, в этом пакете есть такой preuninstall hook:

# do not edit /etc/shells on upgrades
test "$1" = 0 && sed -i -e '/^\/bin\/t\?csh$/d' /etc/shells

И когда $1 не равен нулю, этот хук завершается ошибкой. Не делайте так, пожалуйста.
Comment 1 Gremlin from Kremlin 2021-07-15 14:00:06 MSK

*** This bug has been marked as a duplicate of bug 40496 ***