These forums are locked and archived, but all topics have been migrated to the new forum. You can search for this topic on the new forum: Search for apache module depends on httpd version already installed on the new forum.
I'm trying to install mod_proxy_html but it complains about wrong version installed...
[root@sillypoo conf]# yum install mod_proxy_html
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirror.symnds.com
Resolving Dependencies
--> Running transaction check
---> Package mod_proxy_html.x86_64 2:2.4.6-31.el7.centos.vm will be installed
--> Processing Dependency: httpd = 1:2.4.6-31.el7.centos.vm for package: 2:mod_proxy_html-2.4.6-31.el7.centos.vm.x86_64
--> Finished Dependency Resolution
Error: Package: 2:mod_proxy_html-2.4.6-31.el7.centos.vm.x86_64 (virtualmin)
Requires: httpd = 1:2.4.6-31.el7.centos.vm
Installed: 1:httpd-2.4.6-31.el7.centos.1.vm.x86_64 (@virtualmin)
httpd = 1:2.4.6-31.el7.centos.1.vm
Available: httpd-2.4.6-40.el7.centos.x86_64 (base)
httpd = 2.4.6-40.el7.centos
Available: 1:httpd-2.4.6-17.el7.centos.centos.1.vm.x86_64 (virtualmin)
httpd = 1:2.4.6-17.el7.centos.centos.1.vm
Available: 1:httpd-2.4.6-18.el7.centos.vm.x86_64 (virtualmin)
httpd = 1:2.4.6-18.el7.centos.vm
Available: 1:httpd-2.4.6-18.el7.centos.vm.1.x86_64 (virtualmin)
httpd = 1:2.4.6-18.el7.centos.vm.1
Available: 1:httpd-2.4.6-31.el7.centos.vm.x86_64 (virtualmin)
httpd = 1:2.4.6-31.el7.centos.vm
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
So why does virtualmin use httpd-2.4.6-31.el7.centos.1.vm.x86_64 when this package needs httpd-2.4.6-31.el7.centos.vm.x86_64? What is the purpose of the extra .1. in the name of package? Anything I should try?
I was able to get around this problem by doing the following...
yum install --downloadonly --downloaddir=/root/ mod_proxy_html
rpm -ivh --nodeps mod_proxy_html-2.4.6-31.el7.centos.x86_64.rpm
apachectl restart
[root@sillypoo ~]# apachectl -M | grep proxy | grep html
proxy_html_module (shared)
Still would like to know why I have to resort to doing that when the versions it required was nearly identical except that oddly placed .1.
It looks like human error on part of the package-builders, which does happen. I have yet to find a good solution for this type of dependency hell other than --nodeps at some point. If you examine the mod_proxy_html package with the command
rpm -q --requires -p mod_proxy_html-2.4.6-31.el7.centos.vm.x86_64.rpm
, you will notice it very specifically requireshttpd-2.4.6-31.el7.centos.vm
.I usually use a two-step procedure that saves typing. We simply copy-and-paste the path that we get from the first command into the second command.
# repoquery --location mod_proxy_html
http://GPL:GPL@software.virtualmin.com/gpl/rhel/7/x86_64/mod_proxy_html-2.4.6-31.el7.centos.vm.x86_64.rpm
# rpm -Uvh --nodeps http://GPL:GPL@software.virtualmin.com/gpl/rhel/7/x86_64/mod_proxy_html-2.4.6-31.el7.centos.vm.x86_64.rpm
If you like to live dangerously:
# rpm -Uvh --nodeps `repoquery --location mod_proxy_html`
You can also build and install a little rpm that satisfies specific dependencies. This is not any different than using ---nodeps, except that it lets you continue using yum in the normal way to add and remove packages, so it somewhat streamlines your life. Here's an example spec file that you should definitely not use without editing, it's just an example.
Name: my-fake-rpm
Version: 1.0
Release: 1
Summary: Provide fake dependencies
License: Free
Group: None
BuildArch: noarch
Provides: php = 5.6
Provides: httpd = 2.4.6
Provides: anything-else-that-you-need = 1.4.5
%description
%prep
%build
%install
%files
%changelog
Put this in a file called
my-fake-rpm.spec
and dorpmbuild -ba my-fake-rpm.spec
Can I update mod_proxy in the same way? Will it break things in the future?
I'm stuck in a similar problem related to mod_proxy.. its Ignoring the timeouts I have set. https://www.virtualmin.com/node/37659
You can update things this way (using -Uvh option in rpm instead of -ivh) but you do risk breaking things. How easy it is to recover depends on all that it touches but generally you'd have to erase and install older package again if it fails (might need to use force option).