random thoughts on software installation

Kevin Kofler kevin.kofler at chello.at
Fri May 18 13:57:31 UTC 2007


Colin Walters <walters <at> redhat.com> writes:
> For the first part - developer software, my ideal tool would look
> something like this.  Just a search box, and a list of result hits.
> Like a web search engine basically.

> /-----
> | Search: [ ssh python ]
> |
> | Package: python-paramiko _Install_
> | "Paramiko is an implementation of ssh for Python..."
> |
> | Package: openssh _Install_
> |  - /usr/bin/ssh
> \-----
> Searches descriptions and names too.

This is essentially how Synaptic works already. Searching ssh python on an FC6 
system gives you: cobbler, denyhosts, pexpect, python-paramiko, 
python-twisted-conch, rdiff-backup.

> /-----
> | Search: [ hg ]
> |
> | Package: mercurial _Install_
> |  - /usr/bin/hg
> |
> \-----
> Searches executable names
> 
> /-----
> | Search: [ db.h ]
> |
> | Package: libdb2-devel _Install_
> |  - /usr/include/db2/db.h
> |
> | Package: libdb3-devel _Install_
> | - /usr/include/db3/db.h
> \-----
> Searches files.

Those 2 are essentially the same thing. Unfortunately, Synaptic won't help you 
here, but this works:
repoquery -f /usr/bin/hg
as does this:
repoquery --whatprovides /usr/bin/hg
However, both these only work by full path name, searching for just db.h won't 
work.

But I think all this could easily be done with the already-available RPM and 
repomd infrastructure, which already contains full file lists for all packages 
in the repositories. No new packaging system needed, no additions to the 
repository even, just some work on the client side. (In fact, you could even 
write a shell script which does a repoquery -a, then repoquery -l on all the 
results, and greps for the file name in this. But it's a lot faster faster if 
you read the metadata in only once, of course.)

        Kevin Kofler




More information about the fedora-devel-list mailing list