RPM версии 4.8.0:

[root@sdl34815 x8664]# rpm -ivh tmfi1700-17.00.00.00.rpm
Preparing...         ########################################### [100%]
   1:tmfi1700        ########################################### [100%]
[root@sdl34815 x8664]# rpm -ev tmfi1700
[root@sdl34815 x8664]# ls /opt/manoj
ls: cannot access /opt/manoj: No such file or directory

RPM версии 4.11.2:

sdl34817:/opt/BASE/Packages/Linux/x8664 # rpm -ivh tmfi1700-17.00.00.00.rpm
Preparing...                   ################################# [100%]
Updating / installing...
   1:tmfi1700-17.00.00.00-1    ################################# [100%]
sdl34817:/opt/BASE/Packages/Linux/x8664 # rpm -ev tmfi1700
Preparing packages...
tmfi1700-17.00.00.00.rpm
sdl34817:/opt/BASE/Packages/Linux/x8664 # ls -R /opt/manoj
/opt/manoj:
client:
/opt/manoj/client:
17.00
/opt/manoj/client/17.00:

rpm -qlvp tmfi1700-17.00.00.00.rpm дает:

drwxr-xr-x 2 root root 0 Jan 24 2019 /opt/manoj
drwxr-xr-x 2 root root 0 Jan 24 2019 /opt/manoj/client
drwxr-xr-x 2 root root 0 Jan 24 2019 /opt/manoj/client/17.00
drwxr-xr-x 2 root root 0 Jan 24 2019 /opt/manoj/client/17.00/lib64
1
Chris Maes 6 Дек 2019 в 14:02

1 ответ

Это не связано с версией rpm. При упаковке вам нужно решить, какими файлами и папками вы будете владеть. Если вы используете:

%files
/opt/manoj/*

Тогда ваш пакет будет владеть всеми файлами в каталоге /opt/manoj, но не самим каталогом /opt/manoj. Затем вы должны использовать

%files
/opt/manoj

Таким образом, что ваш пакет владеет каталогом /opt/manoj (и всем, что ниже, рекурсивно).

0
Chris Maes 6 Дек 2019 в 10:49
Я упомянул эти файлы в разделе %files, как показано ниже %files %defattr(0755,root,root,0755) %dir %{prefix}/manoj %dir %{prefix}/manoj/client, также он отлично работает на RPM 4.8. 0, но выше 4.11.2
 – 
Manoj
6 Дек 2019 в 12:26
Файлы /opt/manoj/client/17.00 принадлежат вашему пакету? Если они созданы позже, rpm не узнает, что они принадлежат вашему пакету, и не удалит их. Если вы хотите, чтобы файлы future принадлежали вашему пакету, вы можете использовать директиву %ghost.
 – 
Chris Maes
6 Дек 2019 в 12:28
Да, эти каталоги принадлежат моему пакету. мы также упоминаем эти каталоги в разделе %files
 – 
Manoj
6 Дек 2019 в 12:30
Что rpm -qlvp tmfi1700-17.00.00.00.rpm выдает на выходе? Можете ли вы добавить это к своему вопросу?
 – 
Chris Maes
6 Дек 2019 в 12:39
Sdl34817:/opt/INSTALL/Linux/x8664/tmfi # rpm -qlvp tmfi1700-17.00.00.00.rpm drwxr-xr-x 2 root root 0 24 января 2019 г. /opt/manoj drwxr-xr-x 2 root root 0 24 января 2019 /opt/manoj/client drwxr-xr-x 2 root root 0 24 января 2019 г. /opt/manoj/client/17.00 drwxr-xr-x 2 root root 0 24 января 2019 г. /opt/manoj/client/17.00/lib64
 – 
Manoj
6 Дек 2019 в 13:41