Bug 35629

Summary: rpm при обновлении пакетов не удаляет некоторые директории
Product: Branch p8 Reporter: Aleksei Nikiforov <darktemplaralt>
Component: rpmAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P3 CC: lav
Version: не указана   
Hardware: all   
OS: Linux   

Description Aleksei Nikiforov 2018-11-21 12:32:36 MSK
В системе p8 x86_64 установлены следующие пакеты:

dotnet-2.0.5-alt1.M80P.2
dotnet-common-2.0.5-alt0.M80P.1
dotnet-coreclr-2.0.5-alt1.M80P.2
dotnet-corefx-2.0.5-alt0.M80P.1
dotnet-sdk-2.0.5-alt0.M80P.1

Пакету dotnet-common-2.0.5-alt0.M80P.1 принадлежат директории /usr/lib64/dotnet/shared/Microsoft.NETCore.App и /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.0.5, другие файлы и директории не интересны для данной проблемы. У других пакетов есть файлы и директории в директории /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.0.5.

Производится попытка обновиться до новых версий пакетов, пересобранных из Сизифа (на текущий момент это задание #215437):
dotnet-2.1.5-alt1
dotnet-common-2.1.5-alt1
dotnet-coreclr-2.1.5-alt1
dotnet-corefx-2.1.5-alt2
dotnet-sdk-2.1.5-alt1

Новой версии пакета dotnet-common принадлежат директории /usr/lib64/dotnet/shared/Microsoft.NETCore.App и /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.1.5, у других пакетов есть соответственно файлы и директории в директории /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.1.5.

Однако при обновлении директория /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.0.5 не удаляется и остаётся в системе, при этом она не содержит других файлов или директорий.

Для воспроизведения нужны текущие rpm указанных пакетов и пересобранные из Сизифа для p8 версии (в данный момент можно взять из указанного задания).

Шаги воспроизведения проблемы следующие:
1) # rpm --nodeps -i -U -v ./dotnet*-2.0.5-*.rpm
2) # rpm --nodeps -i -U -v ./dotnet*-2.1.5-*.rpm

В результате на p8 получается:
$ LC_ALL=C ls /usr/lib64/dotnet/shared/Microsoft.NETCore.App/
2.0.5  2.1.5
$ LC_ALL=C rpm -qf /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.0.5
warning: file /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.0.5 is not owned by any package
$ LC_ALL=C rpm -qf /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.1.5
dotnet-common-2.1.5-alt1

На Сизифе и на Fedora 29 данная проблема не воспроизводится, всё работает корректно и получается следующий результат:
$ LC_ALL=C ls /usr/lib64/dotnet/shared/Microsoft.NETCore.App/
2.1.5
$ LC_ALL=C rpm -qf /usr/lib64/dotnet/shared/Microsoft.NETCore.App/2.1.5/
dotnet-common-2.1.5-alt1.x86_64