Creating a local RPM repository

Bill Davidsen davidsen at tmr.com
Fri Nov 6 22:02:10 UTC 2009


Mike Smith wrote:
> I am currently reviewing the possibility of allowing some of our 
> employees to use Fedora on their machines instead of Windows.  On of my 
> concerns is the bandwidth tied up by multiple machines downloading the 
> same RPMs through our Internet gateway.  Is there a way to set up a 
> local RPM repository on our internal networks so that the RPMs only have 
> to be downloaded from the main repositories once.  All of our user 
> machines would be configured to look at the local repository instead of 
> the main one.
>  
> As an example, I set up two test system yesterday with FC11.  After the 
> initial install, each machine needed to download significant amounts of 
> updates.  I would have much preferred that they got those updates from a 
> local source.  This would have reduced the bandwidth clog on our gateway 
> (3MB bandwidth) and reduced the install time due to the updates coming 
> from a local source (1GB bandwidth).
>  
> Any suggestions or instruction would be greatly appreciated.
>  
For a small number of machines you can just NFS mount /var/cache/yum off a 
server, change keepcache in /etc/yum.conf to 1, and don't update more than one 
machine at a time. I like the idea of a squid proxy, but NFS is really simple. 
If you have an administrator who can run the upgrades, or at least tell the 
users when to upgrade, then you download each new rpm only once, it is left in 
the shared storage, and the next machine to need it gets it locally.

I've been using this since FC11 came out, about six months, on three physical 
servers supporting many virtual servers. The virtual do the same thing with 
CentOS-5.3, and it has not been an issue.

Note: not as sexy as your own repository, may not like multiple upgrades at the 
same time (I think the localupdate option fixes this), but it is quite simple 
and works well here. My machines tend to use 90% the same packages, and 10% 
application packages based on use. I found a local repo had a ton of packages I 
never used, and used bandwidth updating them. The 'repomanage' command allows 
you to selectively trim old versions of packages to save space.

-- 
Bill Davidsen <davidsen at tmr.com>
   "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot




More information about the fedora-list mailing list