I'm not sure that I've got the grasp of Synth.
I'm trialing it on a server for the first time, having decided to make the switch from Poudriere, and wish to create a local repository to install packages built with Synth by using
For example, I've built a number of packages with
But when I issue
See Synth configuration:
Contents of /usr/local/etc/pkg/repos/ directory:
Contents of these *.conf files:
I have configured this FreeBSD.conf file to use the latest FreeBSD package repository because I use
What have I misconfigured that pkg(8) resorts to installing packages from the remote FreeBSD repository and not the local Synth repo? Is it simply a matter of assigning a higher priority variable in /usr/local/etc/pkg/repos/00_synth.conf than in the /usr/local/etc/pkg/repos/FreeBSD.conf file?
I'm trialing it on a server for the first time, having decided to make the switch from Poudriere, and wish to create a local repository to install packages built with Synth by using
pkg
.For example, I've built a number of packages with
synth just-build ports2build.txt
that now reside in /var/synth/live_packages/All/, have then issued synth prepare-system
, and now want pkg
to install these local Synth built packages--not binaries from the FreeBSD repository.But when I issue
pkg install multitail
, for example, it goes to install from the FreeBSD repository--not the local Synth repo.
Code:
# pkg install multitail
Updating Synth repository catalogue...
Synth repository is up to date.
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
multitail: 6.4.2 [FreeBSD]
Number of packages to be installed: 1
119 KiB to be downloaded.
Proceed with this action? [y/N]:
See Synth configuration:
Code:
Synth configuration profile: LiveSystem
===============================================================================
[A] Ports directory /usr/ports
['B] Packages directory /var/synth/live_packages
[C] Distfiles directory /usr/ports/distfiles
[D] Port options directory /var/db/ports
[E] Build logs directory /var/log/synth
[F] Build base directory /usr/obj/synth-live
[G] System root directory /
[H] Compiler cache directory /var/cache/ccache
['I] Num. concurrent builders 3
[J] Max. jobs per builder 3
[K] Use tmpfs for work area true
[L] Use tmpfs for localbase true
[M] Display using ncurses true
[N] Fetch prebuilt packages true
[>] Switch/create profiles
[RET] Exit
Press key of selection:
Contents of /usr/local/etc/pkg/repos/ directory:
Code:
/usr/local/etc/pkg/repos # ls
00_synth.conf FreeBSD.conf
Contents of these *.conf files:
Code:
cat /usr/local/etc/pkg/repos/00_synth.conf
# Automatically generated.
Synth: {
url : file:///var/synth/live_packages,
priority : 0,
enabled : yes,
}
Code:
cat /usr/local/etc/pkg/repos/FreeBSD.conf
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
}
I have configured this FreeBSD.conf file to use the latest FreeBSD package repository because I use
portsnap
to update the ports tree and want to adhere to the instructions on the Synth GitHub page of "ensur[ing] pkg(8) is configured for the Latest packages and the ports tree is as well" when setting Fetch prebuilt packages to true (cf. option [N] in synth configure
):Synth is configured to prefetch suitable officially-built packages, but very few are actually retrieved. What's wrong?
This only happens to FreeBSD users. On FreeBSD, there are basically two official repositories: Quarterly and Latest. The 10.2 Release and later have pkg(8) configured to use the Quarterly packages by default. Earlier releases are configured to use the Latest packages.
Either repository is fine, but the provided ports tree has to match! If you decided to continue with the Quarterly branch (a fine choice if you don't like constant rebuilding) then you need to provide Synth with a SVN version of the ports tree set to the same Quarterly branch. As could be deduced from the name, a new SVN branch is created every three months, so Synth users that choose the Quarterly ports and packages need to remember to switch branches in January, April, July, and October.
If you want the newest versions of software always and still leverage prebuilt packages, then ensure pkg(8) is configured for the Latest packages and the ports tree is as well. Unlikely Quarterly users, Latest users never have to change the ports tree configuration.
What have I misconfigured that pkg(8) resorts to installing packages from the remote FreeBSD repository and not the local Synth repo? Is it simply a matter of assigning a higher priority variable in /usr/local/etc/pkg/repos/00_synth.conf than in the /usr/local/etc/pkg/repos/FreeBSD.conf file?