How to: Create a local update server

We have several linux hosts at our site. I would like to set one of the servers to offer a local update service rather than have each host contact the public servers for update information. This would greatly speed the updates for each host since we only have a DSL connection (about 1.2Mbps transfer rate).

Is there a tutorial somewhere that describes how to set up a “shadow” update server?

In short copy all the files from the repos you use. Note that you will need to do this periodically to get updates.
Point the clients to this new directory(s)

That should do it.

Hi
Use rsync to mirror the stuff your wanting;
openSUSE:Mirror infrastructure - openSUSE

Set up a squid proxy and point your clients to that. It will only fetch on demand by the first client to update.

Set up a squid proxy and point your clients to that.

A couple of questions about doing this.

  1. Would I need to changed the “maximum_object_size”? The default is 4MB. (I suspect so.)
  2. I am unclear how to point a client to the proxy for the different repos through the proxy. How do I do that?
  1. Yes, and you should probably increase the disk cache size.
  2. Just config the system to use the proxy for all http access in YaST and all repos will be accessed via the proxy. I’m not sure how to make only YaST use the proxy, it might be possible with an aria2c config file since that’s what YaST normally uses.

I keep the packages on a file server:

zypper mr -tk

and symlink /var/cache/zypp/packages on each computer to a directory on the fileserver, so I download the packages or merge the deltas only once:

/var/cache/zypp/packages -> /sdata/Linux/openSUSE/11.4/packages

Which machine does the update first doesn’t matter.

On Sat, 27 Aug 2011 08:06:02 GMT, jimoe666
<jimoe666@no-mx.forums.opensuse.org> wrote:

>
>> Set up a squid proxy and point your clients to that.
>A couple of questions about doing this.
>1. Would I need to changed the “maximum_object_size”? The default is
>4MB. (I suspect so.)
>2. I am unclear how to point a client to the proxy for the different
>repos through the proxy. How do I do that?

Rather than try the proxy method, i have done the copies (wget is a bit
faster than rsync for the first copy) and use a cron job once a week to
update the master local repo. Local repos are much faster than ordinary
network update downloads. Only Update needs to be kept up to date, as the
oss, non-oss, and distribution repos are static. Other repos that you use
may also benefit from local copies. Not all have rsync capability.

?-)

I could see no obvious way to have just Yast use the proxy.

I decided it would not hurt to have all of the computers use the proxy. The DSL speed (0.8 Mbps up, 1.2 Mpbs down) is no longer considered very fast; having the same ol’ same ol’ cached locally for everyone can be a boon.

The other method of pointing the package cache on all of the hosts to a common location works as well. I’ll have to wait for a significant update to see which method works the best for me.

If you keep the rpms locally, zypper will (by default) download only the binary diff (.delta.rpm) whenever possible ant this will significantly decrease the size of files to download - at the cost of memory and CPU - so rather do the update on your fastest machine.
See **download.use_deltarpm ** in /etc/zypp/zypp.conf. The default is “true” (which is right for you).