# Mirroring pkg and update servers



## yggdrasil (Jan 26, 2016)

Hi,

after setting up a local mirror of OpenBSD's packages and patches with rsync rather easily, I tried to find a way to do the same with FreeBSD. As How to Mirror FreeBSD states, this is intentionally not possible, at least not for the packages. Now I know I can build my own package server via poudriere, or Dragonfly's synth, and that there are scripts and descriptions for compiling the FreeBSD updates yourself, but I rather not. While I like being able to compile stuff myself, I very much dislike the "compile _everything_ yourself"-notion (the reason I dislike Gentoo, and why it took me a long time to really get started with FreeBSD).

So my questions are:
- What is the reasoning behind this? "Due to very high requirements of bandwidth, storage and adminstration [...]" seems rather vague and unintuitive...
- Am I overlooking something? Are there ways to do this without having to compile everything myself?

Thanks!
(If a Mod thinks this might be better moved to a different subforum, go ahead. This seemed the most fitting one)


----------



## gofer_touch (Jan 26, 2016)

I do this from time to time to install to offline machines in rural locales. Why not just used wget?


----------



## yggdrasil (Jan 26, 2016)

That was a backup plan, but the official stance is "not allowed", so I'm wary. But thanks anyway!


----------



## SirDice (Jan 26, 2016)

I've setup a local repository with poudriere. The added bonus of this is that I have complete control over the port versions and options. For freebsd-update(8) I configured an Apache server to proxy and cache the data. So only the first machine will actually download the patches from the internet, consecutive machines will get the data from Apache's proxy cache.


----------



## Chris_H (Jan 26, 2016)

Maybe I'm somehow missing your intention here; but couldn't you just use bsdinstall(8), or pkg(8) to perform tour initial install, of all the ports/applications you want to have. Which would slurp all the packages you want to _actually_ have. Then, simply cd(1) to each the ports(7) dirs of those apps, and `make config`. Then you'd be all setup to up(date|grade) all of your applications with the options _you_ want. Doing so in ports-mgmt/synth, would create a nice little repo, that you could export to any other box(es) that you'd also like to have configured with those apps. _Sure_ it's a bit of time, and effort, up front. But it'd be Smooth Sailing, after that. 

Just a thought. 

--Chris[/port]


----------



## yggdrasil (Jan 26, 2016)

Chris: I just want a local mirror so my testboxes and jails don't all clog up my line without having to compile everything myself.
SirDice: Yes, a proxy was another alternative I thought about.
I'm just baffled how easy OpenBSD, and DragonflyBSD for that matter, make this as opposed to FreeBSD.
Thanks everyone for sharing the alternative possibilities.


----------



## gofer_touch (Jan 26, 2016)

What does Dragonfly do differently that FreeBSD's ports can't? They both use the same ports system with some minor tweaks for Dragonfly. If anything you can obtain FreeBSD's ports much faster because there are so many very fast mirrors.


----------



## yggdrasil (Jan 26, 2016)

They offer rsync-servers to easily download and synchronise _all_ their stuff, including up-to-date packages, which where deliberately left off of the FreeBSD rsync-servers. This has nothing to do with the ports system itself.


----------

