yum утверждает, что пакет установлен, но файлов нет в докере

У меня странное поведение yum vs rpm, где оба заявляют об установке, но только rpm фактически создает файлы, а yum просто утверждает, что они установлены. Я не могу сказать, что делаю не так и почему файлы не устанавливаются через yum в докере.

Шаги:

docker run --rm -it centos:7

Установите кеширование yum, чтобы мы могли использовать один и тот же файл через yum и rpm

vi /etc/yum.conf
-> set keepcache=1

И давайте начнем установку yum

yum install -y centos-indexhtml

обрезанный вывод:

Installed:
  centos-indexhtml.noarch 0:7-9.el7.centos                                                                          

Complete!

Теперь этот пакет должен устанавливать файлы в /usr/share/doc/HTML согласно https://rpmfind.net/linux/RPM/centos/7.7.1908/x86_64/Packages/centos-indexhtml-7-9.el7.centos.noarch.html

ll /usr/share/doc/HTML
ls: cannot access /usr/share/doc/HTML: No such file or directory

Итак, давайте удалим этот пакет из yum, воспользуемся кешем yum и установим прямо из RPM

yum remove -y centos-indexhtml
(trimmed output)
Removed:
  centos-indexhtml.noarch 0:7-9.el7.centos                                                                          

Complete!
rpm -Uvh /var/cache/yum/x86_64/7/base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:centos-indexhtml-7-9.el7.centos  ################################# [100%]

И убедитесь, что файлы существуют:

ll /usr/share/doc/HTML
total 16
drwxr-xr-x 2 root root 4096 Jan 10 18:18 en-US
drwxr-xr-x 2 root root 4096 Jan 10 18:18 img
-rwxr-xr-x 1 root root 4833 May 16  2014 index.html

Что я делаю не так с yum? Никаких ошибок не получаю, просто в путь через yum ничего не пишется?

1 ответ

Решение

В yum конфигурация в докере немного другая: там же /etc/yum.conf файл вы найдете:

tsflags=nodocs

это означает, что пакеты не будут устанавливать свою документацию. В образах докеров цель большинства людей состоит в том, чтобы иметь работающее приложение как можно меньшего размера, следовательно, удаление файлов документации.

Используя rpm напрямую, вы обходите это yum конфигурация.

Другие вопросы по тегам