У меня какое-то странное поведение yum vs rpm, где оба утверждают, что устанавливают, но только rpm на самом деле создает файлы, в то время как yum просто утверждает, что они установлены. Я не могу понять, что я делаю не так и почему файлы не устанавливаются через yum в docker.
Шаги:
docker run --rm -it centos:7
Установите кэширование yum, чтобы мы могли использовать один и тот же файл через yum и rpm
vi /etc/yum.conf
-> set keepcache=1
И давайте запустим yum install
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?
Конфигурация yum
в докере немного отличается: в том же файле /etc/yum.conf
вы найдете:
tsflags=nodocs
который означает, что пакеты не будут устанавливать свою документацию. В образах докеров цель большинства людей — иметь работающее приложение как можно меньшего размера, отсюда и удаление файлов документации.
Используя rpm
напрямую, вы обходите эту конфигурацию yum
.