"Meta" packages using Slackbuilds, sbodeps, and slackpkg+
by tcanich from LinuxQuestions.org on (#6NWW2)
Hi all,
I didn't see any posts about this in a search so thought I'd share. I did find some stuff around tagfiles for a minimal installation; this is kind of similar but for Slackbuilds.
I've been stringing together a few tools to get consistent installations across multiple computers for a Slackbuild package with dependencies. Inevitably I'd forget to install some library or another. I finally got around to finish (roughly) documenting the technique which I think of as a meta package. Lots of rough edges here and room for improvement in both the documentation and the overall process. For example: lots of manual steps which could be partially or fully automated, work on supporting multiple versions or architectures, etc.
In a nutshell, use McDutchie's sbodeps script to generate a list of all the dependencies for a given Slackbuild. That list is used to feed sbopkg as a queuefile, and later used to feed slackpkg+ as a template file. Slackpkg+ is directed at a local repository where you put all of the packages generated by sbopkg. Then, on any given computer you simply need to make the repository and template file available to slackpkg+ to use the install-template command. That will install the package and all dependency packages. The nice thing about this approach versus packaging everything together in one big thing is Slackpkg+ sorts out all the common dependencies -- you give it the full list, but it only installs the stuff missing on that computer. Shared dependencies between "meta" packages only get installed once.
Comments and feedback welcome, especially anything unclear in the process. I don't think I skipped any steps but I also didn't set it up clean following my document -- I should do that next. :D
Hopefully this is useful to somebody.
-tcanich
I didn't see any posts about this in a search so thought I'd share. I did find some stuff around tagfiles for a minimal installation; this is kind of similar but for Slackbuilds.
I've been stringing together a few tools to get consistent installations across multiple computers for a Slackbuild package with dependencies. Inevitably I'd forget to install some library or another. I finally got around to finish (roughly) documenting the technique which I think of as a meta package. Lots of rough edges here and room for improvement in both the documentation and the overall process. For example: lots of manual steps which could be partially or fully automated, work on supporting multiple versions or architectures, etc.
In a nutshell, use McDutchie's sbodeps script to generate a list of all the dependencies for a given Slackbuild. That list is used to feed sbopkg as a queuefile, and later used to feed slackpkg+ as a template file. Slackpkg+ is directed at a local repository where you put all of the packages generated by sbopkg. Then, on any given computer you simply need to make the repository and template file available to slackpkg+ to use the install-template command. That will install the package and all dependency packages. The nice thing about this approach versus packaging everything together in one big thing is Slackpkg+ sorts out all the common dependencies -- you give it the full list, but it only installs the stuff missing on that computer. Shared dependencies between "meta" packages only get installed once.
Comments and feedback welcome, especially anything unclear in the process. I don't think I skipped any steps but I also didn't set it up clean following my document -- I should do that next. :D
Hopefully this is useful to somebody.
-tcanich