yum-repo-in-frs

stafftips (3)
Chris Tsai

Using FRS to host a yum repository

  • Behind the scenes, the FRS system will use redirects intelligently to serve the download files and the repo metadata, as well as serve them from a mirror that is close to the client.
  • Because the user-agent of yum isn't a web browser, the html download page will be bypassed and a direct download will initiate
  • Use a local machine to organize a repo directory structure (e.g. /opt/repos/yum/<releasever>/<basearch>/ )
  • Generate the yum repo information on the local repo structure (sf.net doesn't support 'createrepo' operations in ishell service)
    • cd /opt/repos/yum/<releasever>/<basearch>/
    • create repo .
  • repeat the 'createrepo' operation for each release and architecture
  • rsync the entire tree to FRS at the project root of your choosing
    • rsync -avP -e ssh /opt/repos/yum/ <sf-username>@frs.sourceforge.net:/home/pfs/project/a/aa/<projectname>/yum/

Next create a .repo file for the new repository.

  • Note that I was able to drop the suffix '/download' from the download path in the yum.repo file. The sf.net mirror redirectors should still handle the download url properly.
  • Make sure to format your base url using the new format for the download system: e.g. baseurl=http://sourceforge.net/projects/<projectname>/files/yum/$releasever/$basearch/
  • Create a repo file for your users to download and a README on how to install the new repo file into their OS.

Example:

#/etc/yum.repos.d/myproject.repo
[myproject-repo]
name= My Project (sf.net) $releasever - $basearch
failovermethod=priority
baseurl=http://sourceforge.net/projects/<project>/files/yum/$releasever/$basearch/
enabled=1
metadata_expire=7d
#gpgcheck=1
#gpgkey=http://sourceforge.net/projects/<project>/files/yum/<MY-RPM-GPG-KEY>

Related

Community Docs: staff-tips