Re: what are the acceptable layouts of a yum repository?

"Robert P. J. Day" <[email protected]> Thu, 05 Dec 2013 04:01:32 -0500
Newsgroups gmane.linux.rpm.yum
Message-ID <[email protected]>
Quoting Jan Zelený <[email protected]>:

> On 4.?12.?2013 at 14:13:14, Robert P. J. Day wrote:
>>   one last question for the day. i was experimenting with
>> creating a local yum repository on fedora 19 following along
>> here:
>>
>> http://www.unixmen.com/setup-local-yum-repository-in-fedora-19/
>>
>> and it seemed to work fine, but the resulting structure was
>> simpler than i was used to -- the end result was (in my case)
>> a new repository under /usr/local/repo in which the rpm files
>> were right at the top level, along with the repodata/ directory.
>>
>>   from my previous usage of fedora repos, i'm used to having a
>> top-level repodata/ directory, along with a Packages/ directory,
>> which is further broken down based on the first letter of the
>> package name.
>>
>>   so what are the valid variations that will be (automatically?)
>> recognized by yum? i'm guessing the top-level repodata/ directory
>> is mandatory but, beyond that, what kind of variations can be
>> used to store the rpm files? thanks.
>
> I'm not an expert so I might be wrong on this but I've seen a lot of  
> different
> repo layouts so my assumption based on observation is that createrepo
> recursively scans the directory you want and the just creates repodata subdir
> with metadata containing information about all the relevant content (rpm
> packages) in the scanned directory.

   that would appear to be what's happening based on a test i just
ran. i created a new directory, /usr/local/repob/pkgs/b/, and copied
into it all fedora 19 rpm files starting with the letter "b". then
i ran "createrepo" from higher up the directory structure with:

   # createrepo /usr/local/repob

and it appeared to create a new local yum repository just fine by
recursively searching the entire directory structure. i verified that
by creating a quick /etc/yum.repos.d/ .conf file for the new repo and
using "repoquery" to list its packages, and they were all there.

   so it appears that createrepo, by default, recursively scans
the "/path/to/rpms/" directory, but that doesn't seem to be
mentioned anywhere in the man page, and i think that's a useful
bit of information to know.

rday