Date: Sat, 15 Feb 2020 23:43:38 -0500 From: Dan McGrath <danmcgrath.ca@gmail.com> To: "@lbutlr" <kremels@kreme.com> Cc: FreeBSD <freebsd-ports@freebsd.org> Subject: Re: Starting with poudriere Message-ID: <CAK82gMF1O1EgBSW_hH_F-oPFOqx7iL-09ydi-myFUfhgyRYCFw@mail.gmail.com> In-Reply-To: <4D118F32-E38F-4860-BBE8-4D9F259BF653@kreme.com> References: <3743CEAE-BCC9-479E-8367-F3DA0E30496E@kreme.com> <4D118F32-E38F-4860-BBE8-4D9F259BF653@kreme.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, On Sat, Feb 15, 2020 at 11:03 PM @lbutlr <kremels@kreme.com> wrote: > Let=E2=80=99s say I want to build and install a single port via poudrier.= For the > same of argument some port that has configuration options I want to chang= e. > Probably not ideal since you generally want to disable the FreeBSD repository, and use only your poudriere repo, instead. You would need to build everything you intend to install in the jail, however. While I believe that you can enable multiple repositories (FreeBSD's, and your own poudriere one), I am not sure about repo priorities, or how you would deal with conflicts with build options that pull in common ports. It is something I have been meaning to look into, sorry! Perhaps someone else here can give some advice? > I have the ports tree setup, have my jail setup, and I want to build it. > You would run "poudriere bulk", then sit back sipping coffee while it churns through all of the packages. > And then I want to deploy it to the target machine once it=E2=80=99s buil= t. > I personally make a web server on the jail to serve up the path to the packages that poudriere built, generally available under: /usr/local/poudriere/data/packages > Or I want to deploy to to the local machine. > I suppose you could "bind mount" (see: man nullfs) the path into the jail, or just specify the file path as a URI to the poudriere.conf pkg config. > Let=E2=80=99s say, for fun, it=E2=80=99s something like ImageMafick that = has a lot that > goes with it. > Poudriere takes care of the dependencies. For example, if the _only_ thing that you want in your jail is ImageMagick, as if you literally boot strapped a blank jail, then ran "pkg install ImageMagick", then you would only need to built that, and pkg, in poudriere. Your build set file would probably look like this: ports-mgmt/pkg graphics/ImageMagick7-nox11 I would have to actually double check if pkg is even needed since I believe it may be implicitly depended on, in which case it would already be built, but I appear to have it specified in all of my sets anyway. > Am I writing a config file for this every port I want to build? You would create a file for all the leaf ports for the repository that you want to create for your machines to use. I generally will do something like install portmaster in a jail, then install all of the stuff I want, then use something like "portmaster -L" (requires /usr/ports to be available) to identify the root and leaf ports. Then I will place all of those files into the file I pass (via -f) to poudriere to build. Poudriere will take care of all the dependencies, and will leave you with a repo that has exactly everything you need to install. Anyway, hope this maybe helps a bit? Since flavours have came out, I have been slowly trying to avoid using custom repos, and try migrate things to stock upstream packages. While it is fun to tinker with, the amount of time I have wasted over the years doing buildworld and building ports by hand has made me start to look at more practical approaches, such as pkg's and freebsd-update. Unless you have trust issues with upstream binaries, or require unusual build options, I think it may not be worth using poudriere, and perhaps better to convince upstream to add flavours? Just a thought! Cheers, Dan McGrath
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK82gMF1O1EgBSW_hH_F-oPFOqx7iL-09ydi-myFUfhgyRYCFw>