summaryrefslogtreecommitdiff
path: root/posts/2020-07-26-now-this-is-a-minimal-install.md
blob: 9936ad4e4696a33011e03989fc06101a6dad0122 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
---
permalink: "/posts/{{categories}}/{{slug}}"
title: Now This is a Minimal Install!
categories:
  - technology
  - unix
tags:
  - FreeBSD
  - packages
  - poudriere
  - saneness
excerpt_separator: "\n\n\n"
published_date: "2020-07-26 15:21:13 +0000"
layout: post.liquid
is_draft: false
---
Now this is a minimal install!

I just got done configuring Poudriere on Freebsd 12.1-RELEASE. The awesome
thing about it is it allows you to configure and maintain your own package
repository. All of the ports and their dependencies are built from source with
personalized options. That means that I can maintain my own repo of just the
packages I need with just the compile-time options I need. For example, for the
Nvidia driver set I disabled all Wayland related flags. I use Xorg so there was
no need to have that functionality built in.

Compile times are pretty long but I hope to change that by upgrading my home
server to FreeBSD as well (from Ubuntu Server). Then I can configure poudriere
to serve up a ports tree and my own pkg repo from there. The server is a lot
faster than my laptop and will build packages way faster, and I'll be able to
use those packages on both the server and my laptop and any jails I have
running. Jails (and ZFS) also make poudriere really cool to use as all of the
building is done inside a jail. When the time comes I can just remove the jail
and poudriere ports tree from my laptop and update pkg to point to my web
server.

This is, as I understand it, the sane way to do package management in FreeBSD.
The binary package repo is basically the ports tree pre-assembled with default
options. Sometimes those packages are compiled without functionality that most
users don't need. In those situations, you're forced to use ports. The trouble
is you're not really supposed to mix ports and binary packages. The reason,
again as I understand it, is because ports are updated more frequently. So
binary packages and ports can have different dependency versions, which can
sometimes break compatibility on an upgrade. Most FreeBSD users recommend
installing everything with ports (which is just a make install inside the local
tree) but then you lose the package management features that come with pkg.
Poudriere lets you kind of do both by creating your "own personal binary repo"
out of a list of preconfigured, pre-built ports.

FreeBSD rocks.