58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | layout: post | ||
|  | title: "Setting up a private package repo for FreeBSD" | ||
|  | date: 2020-04-07 | ||
|  | comments: true | ||
|  | tags: freebsd, pkgng | ||
|  | --- | ||
|  | 
 | ||
|  | Lately the EU mirror for FreeBSD packages(<http://pkg0.bme.freebsd.org>) has been really slow for me. My best guess is the mirror is being overloaded, it could be because of my ISP peering weirdly too. | ||
|  | 
 | ||
|  | I already have a [Poudriere](https://www.freebsd.org/doc/handbook/ports-poudriere.html) setup running on a beefy server. How hard it would be building all the packages that I need? Turns out its not that hard at all. | ||
|  | 
 | ||
|  | First step is to get all the packages that I currently use and their port names | ||
|  | 
 | ||
|  | ```bash | ||
|  | $ pkg query '%o' > x230-packages | ||
|  | 
 | ||
|  | # make sure they look right
 | ||
|  | $ head x230-packages | ||
|  | math/coinmp | ||
|  | x11-fonts/gentium-basic | ||
|  | graphics/ImageMagick6 | ||
|  | devel/ORBit2 | ||
|  | graphics/aalib | ||
|  | sysutils/accountsservice | ||
|  | print/adobe-cmaps | ||
|  | x11-themes/adwaita-icon-theme | ||
|  | x11/alacritty | ||
|  | audio/alsa-lib | ||
|  | ``` | ||
|  | 
 | ||
|  | Setup poudriere with instructions from handbook: <https://www.freebsd.org/doc/handbook/ports-poudriere.html> | ||
|  | 
 | ||
|  | Build the packages | ||
|  | ```bash | ||
|  | /usr/local/bin/poudriere ports -p local -u | ||
|  | /usr/local/bin/poudriere bulk -j 12amd64 -p local -z x230 -f /root/x230-packages | ||
|  | ``` | ||
|  | 
 | ||
|  | After **a day and half** poudriere built all the packages I need :) | ||
|  | 
 | ||
|  | Now all that left is to disable the official repo and replace it with mine | ||
|  | 
 | ||
|  | ```bash | ||
|  | cat > /usr/local/etc/pkg/repos/Mine.conf <<EOF | ||
|  | FreeBSD: { enabled: no } | ||
|  | 
 | ||
|  | builder: { | ||
|  |   url: "https://<path to repo>/repo/12amd64-local-x230/", | ||
|  |   enabled: yes | ||
|  | } | ||
|  | EOF | ||
|  | ``` | ||
|  | Bye bye slow mirrors! | ||
|  | 
 | ||
|  | 
 | ||
|  | This should be filed under over-engineering, and I should really investigate why the mirror is slow; This does work and love how simple and powerful the pkg system is. Workflow is far better than I am used to bulk building debian or arch packages. |