need rpm help (nothing provides /bin/python)

Radek Holy rholy at redhat.com
Tue Jun 23 15:47:10 UTC 2015



----- Original Message -----
> From: "Michael Šimáček" <msimacek at redhat.com>
> To: "Development discussions related to Fedora" <devel at lists.fedoraproject.org>, ndbecker2 at gmail.com
> Sent: Tuesday, June 23, 2015 3:58:49 PM
> Subject: Re: need rpm help (nothing provides /bin/python)
> 
> On 2015-06-23 13:21, Neal Becker wrote:
> > I updated mercurial to mercurial-3.4.1-1 and did a fedpkg push.
> >
> > Now I tried a local build, and tried to locally install, but I got:
> >   sudo dnf install x86_64/*3.4.1*
> > [sudo] password for nbecker:
> > Last metadata expiration check performed 0:22:21 ago on Tue Jun 23 06:57:18
> > 2015.
> > Error: nothing provides /bin/python needed by
> > mercurial-3.4.1-1.fc23.x86_64.
> > nothing provides /bin/python needed by mercurial-3.4.1-1.fc23.x86_64
> >
> > Anyone see how to fix this?
> >
> > Also, can someone please confirm that I correctly took care of
> > obsoleting the mercurial-emacs{-el} as per:
> >
> > https://fedoraproject.org/wiki/Packaging:Emacs
> >
> 
> DNF cannot resolve provides that look like file path:
> https://bugzilla.redhat.com/show_bug.cgi?id=1223478

No, please don't speak for DNF if you don't know it. This is not the same.

Your bug is precisely about the inability to specify virtual file provides on command line.

> Koji still uses Yum, that's why it works there.
> 
> Michael Simacek

The problem is that there is no package that "Provides: /bin/python" nor lists "/bin/python" in the "%files" section.


# cat >foo.spec <<EOF
> Name: foo
> Version: 1.0.0
> Release: 1
> Summary: foo
> License: BSD
> BuildArch: noarch
>
> Requires: /bin/python
> 
> %description
> foo
> 
> %files
> EOF
# rpmbuild -bb foo.spec
# dnf install ~/rpmbuild/RPMS/foo-1.0.0-1.noarch.rpm
Error: nothing provides /bin/python needed by foo-1.0.0-1.noarch


# cat >foo.spec <<EOF
> Name: foo
> Version: 1.0.0
> Release: 1
> Summary: foo
> License: BSD
> BuildArch: noarch
>
> Requires: /usr/bin/python
> 
> %description
> foo
> 
> %files
> EOF
# rpmbuild -bb foo.spec
# dnf install ~/rpmbuild/RPMS/foo-1.0.0-1.noarch.rpm
Dependencies resolved.
================================================================================
 Package       Arch             Version            Repository              Size
================================================================================
Installing:
 foo           noarch           1.0.0-1            @commandline           5.4 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 5.4 k
Installed size: 0  
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : foo-1.0.0-1.noarch                                          1/1 
warning: Unable to get systemd shutdown inhibition lock
  Verifying   : foo-1.0.0-1.noarch                                          1/1 

Installed:
  foo.noarch 1.0.0-1                                                            

Complete!


So, to fix it, the "Requires:" should be e.g. "/usr/bin/python".
-- 
Radek Holý
Associate Software Engineer
Software Management Team
Red Hat Czech


More information about the devel mailing list