Introduction to pkgsrc

Video in TIB AV-Portal: Introduction to pkgsrc

Formal Metadata

Introduction to pkgsrc
Title of Series
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Introduction to the Pkgsrc third-party software packaging framework. This lecture will introduce the significant differences and interesting features offered by Pkgsrc. This is the portable package system maintained by NetBSD and used also for DragonFly, SmartOS, MINIX, and various other operating systems.
Area Slide rule Source code System programming 1 (number) Operating system Open set Freeware Portable communications device Physical system
Rounding Graphics tablet Software developer Variety (linguistics) Multiplication sign Source code Information technology consulting Rotation Software bug General linear model Product (business) Mathematics Different (Kate Ryan album) String (computer science) Traffic reporting Computing platform Pressure Form (programming) Physical system Rotation Source code Software bug Information Building Weight Software developer Model theory Projective plane Feedback Directory service Binary file Flow separation Kernel (computing) Software Personal digital assistant Design by contract Bus (computing) Quicksort
Source code Building Installation art Divisor Building Source code Binary file Software Hypermedia Software Software framework Configuration space Formal verification Software framework Identity management Physical system Pressure Identity management Physical system
Torus Slide rule Freeware Source code Computer program Set (mathematics) Directory service Directory service Type theory Bootstrap aggregating Software Synchronization Different (Kate Ryan album) Network topology Synchronization Physical system Descriptive statistics Physical system
Suite (music) Scripting language Installation art Divisor Computer file Weight Mathematical singularity Source code Derivation (linguistics) Latent heat Different (Kate Ryan album) Gastropod shell Software framework Uniform boundedness principle Physical system Scripting language Installation art Information Building Portable communications device Bootstrap aggregating Finite difference Software framework Right angle Gastropod shell
Functional (mathematics) Installation art Scripting language Mathematical singularity Public domain Streaming media Revision control Bootstrap aggregating Different (Kate Ryan album) Gastropod shell Cuboid Library (computing) Computing platform Physical system Installation art File format Building Weight Projective plane Portable communications device Type theory Function (mathematics) File archiver Computing platform Software framework Gastropod shell Physical system Library (computing)
Default (computer science) Installation art Scripting language Building Patch (Unix) Source code Water vapor Web browser Mereology Revision control Bootstrap aggregating Hash function Software Personal digital assistant Internetworking Function (mathematics) Sorting algorithm Formal verification Computing platform Software framework Gastropod shell Library (computing) Physical system
Point (geometry) Email Enterprise architecture Divisor Code View (database) Patch (Unix) Revision control Architecture Latent heat Different (Kate Ryan album) Operating system Multiplication Compilation album Physical system Enterprise architecture Multiplication Email Patch (Unix) Building Software Compiler Revision control System programming Different (Kate Ryan album) Computing platform Physical system Library (computing)
Freeware Variety (linguistics) Software developer Source code Binary code Model theory 1 (number) Electronic mailing list Generic programming Plastikkarte Special unitary group Open set Software Different (Kate Ryan album) IRIS-T Computing platform Quicksort Form (programming) Computing platform Physical system
Scripting language Consistency Code Patch (Unix) Source code Portable communications device Number Latent heat Different (Kate Ryan album) Computer configuration Military operation Operator (mathematics) Software Configuration space Physical system Operations research Default (computer science) Patch (Unix) Software developer Code Uniform convergence Bit Portable communications device Flow separation Number Software Uniformer Raum System programming Different (Kate Ryan album) Configuration space Freeware
Operations research Default (computer science) Slide rule Backup Scripting language Computer file Patch (Unix) Consistency Source code Uniform convergence Parameter (computer programming) Directory service Software maintenance Revision control Message passing Different (Kate Ryan album) Software Configuration space Configuration space Physical system Asynchronous Transfer Mode Default (computer science)
Group action Ising-Modell Multiplication sign Mehrplatzsystem Source code Set (mathematics) Control flow Revision control Latent heat Mathematics Different (Kate Ryan album) Software Touch typing File system Configuration space Abstraction Local ring Booting Tunis Pressure Physical system Default (computer science) Installation art Multiplication Software developer Group action Single-precision floating-point format Uniform resource locator Root Bootstrap aggregating Software Personal digital assistant Finite difference Configuration space Directed graph Library (computing)
Installation art Multiplication sign Source code Open set Computer programming Different (Kate Ryan album) Electronic meeting system Set (mathematics) Cuboid Uniform boundedness principle 5 (number) Physical system File format Software developer Portable communications device Connected space Configuration space Figurate number Freeware Electric current Point (geometry) Slide rule Server (computing) Implementation Computer file Real number Revision control Causality Network topology Hacker (term) Software Gastropod shell Data structure Implementation Traffic reporting Computing platform Installation art Default (computer science) Weight Projective plane Expert system Multilateration Directory service Binary file Mathematics CAN bus Uniform resource locator Bootstrap aggregating Software Personal digital assistant Atomic number Computing platform Game theory Computer-assisted translation
Installation art Scripting language Source code Wrapper (data mining) Structural load Source code Binary code Electronic mailing list 1 (number) 3 (number) Metadata Power (physics) Revision control Type theory Software Revision control Moving average Normal (geometry) Quicksort Recursion Physical system
Uniform resource locator Slide rule Server (computing) Weight Multiplication sign Operator (mathematics) Source code Directory service Binary file Uniform boundedness principle Metadata
Scripting language Uniform resource locator Word Divisor Personal digital assistant State of matter Gradient Source code Freeware
Slide rule Keyboard shortcut Functional (mathematics) Greatest element Installation art Database Electronic mailing list Total S.A. Metadata Computer configuration Software Software repository Gastropod shell Directed set Category of being Reverse engineering Computing platform Physical system Installation art Scripting language Electronic mailing list Database Binary file Software Network topology Synchronization Computing platform Summierbarkeit Quicksort Electronic visual display Abelian category
Presentation of a group Installation art Computer file Weight Multiplication sign Source code Database Electronic mailing list Icosahedron Special unitary group Product (business) Revision control Latent heat Cache (computing) Different (Kate Ryan album) Repository (publishing) Process (computing) Uniform boundedness principle Computing platform Physical system Standard deviation Information Building Repetition Software developer Computer file Binary code Database Bit Software maintenance Portable communications device Software Revision control Configuration space
Installation art Reading (process) Slide rule Installation art Gradient Computer file Electronic mailing list Airy function Database Bit Maxima and minima Multilateration Special unitary group CAN bus Message passing Error message Software Repository (publishing) Local ring Physical system
Installation art Computer file Multiplication sign Source code Database Metadata Web 2.0 Repository (publishing) Energy level Message passing Area Email Sine Feedback Projective plane Database Bit Exponential function Software maintenance Message passing Error message Personal digital assistant Software repository Network topology Internet service provider Quicksort Arithmetic progression
Suite (music) Divisor Patch (Unix) Multiplication sign Source code Compiler Online help Mereology Proper map Emulator Cache (computing) Different (Kate Ryan album) Software framework Metropolitan area network Computing platform Compilation album Physical system Area Addition Suite (music) Patch (Unix) Block (periodic table) Wrapper (data mining) Software maintenance Compiler Type theory Bootstrap aggregating Computer configuration Emulator Software Compiler IRIS-T Compilation album Software framework Computing platform Right angle Service-oriented architecture Arithmetic progression
Email Suite (music) Installation art Overhead (computing) Wrapper (data mining) Computer file Variety (linguistics) Weight Source code Electronic program guide Online help Coma Berenices Open set Equivalence relation Rule of inference Perspective (visual) Wiki Revision control Mechanism design Latent heat Network topology Selectivity (electronic) Physical system Email Information Key (cryptography) Online help Building Electronic program guide Variable (mathematics) Equivalence relation Type theory Wiki Integrated development environment Large eddy simulation Network topology Internet service provider File archiver Software framework Right angle Quicksort Family Physical system Probability density function Library (computing)
Email Building Scripting language Wrapper (data mining) Line (geometry) Source code Set (mathematics) Compiler Mereology Equivalence relation Network topology Different (Kate Ryan album) Compilation album Physical system Scripting language Default (computer science) Wrapper (data mining) Model theory Bit Variable (mathematics) Integrated development environment Personal digital assistant Network topology Phase transition Software framework Configuration space Physical system Abstraction
Reading (process) Computer file Line (geometry) Source code Open set Function (mathematics) Variance Variable (mathematics) Usability Revision control Network topology Different (Kate Ryan album) Green's function Cuboid Integrated development environment Library (computing) Link (knot theory) Sine Building Electronic mailing list Line (geometry) Binary file Control flow Variable (mathematics) Thread (computing) Integrated development environment Personal digital assistant Network topology
Point (geometry) Default (computer science) Implementation Link (knot theory) Multiplication sign Model theory Electronic mailing list 1 (number) Software bug Revision control Component-based software engineering Network topology Phase transition Core dump Modul <Datentyp> Computing platform
Building Computer file Divisor Multiplication sign Real number Set (mathematics) Electronic mailing list Login Revision control Latent heat Computer configuration Cuboid Spacetime Software framework Descriptive statistics Pressure Physical system Default (computer science) Default (computer science) Electronic mailing list Sign (mathematics) Computer configuration Personal digital assistant File archiver Software framework Right angle Freeware
Installation art Computer file Software developer Electronic mailing list Sign (mathematics) Computer configuration Computer configuration Spacetime Software framework Website Metropolitan area network Pressure Physical system Default (computer science)
Slide rule Building Source code Directory service Electronic mailing list Rule of inference Variance Subset Different (Kate Ryan album) Software MiniDisc Uniform boundedness principle Physical system Default (computer science) Default (computer science) Computer font Stapeldatei Repetition Software developer Binary code Electronic mailing list Directory service Open set Entire function Single-precision floating-point format Subset Software Integrated development environment Personal digital assistant Software framework Physical system
Point (geometry) Slide rule Group action Building Proxy server Computer file Multiplication sign Video game Password Electronic mailing list Variance Template (C++) Wave packet Uniform resource locator Sic Type theory Natural number Hypermedia Configuration space Information Summierbarkeit Traffic reporting Default (computer science) Vulnerability (computing) Building Software developer Electronic program guide Projective plane Electronic mailing list Shared memory Database Letterpress printing Directory service Line (geometry) Variable (mathematics) Uniform resource locator Process (computing) Integrated development environment Software Touch typing Function (mathematics) Revision control Configuration space Right angle Encryption Information security Row (database) Library (computing)
Proxy server Numerical digit Weight Multiplication sign Source code Video game Home page Password Electronic mailing list Mereology Variance Uniform resource locator Cryptography Type theory Phase transition Information Local ring Vulnerability (computing) Vulnerability (computing) Web page Bit Virtual machine Electronic signature Process (computing) Function (mathematics) Revision control Encryption Information security Physical system
Multiplication sign Software bug Weight Source code Branch (computer science) Branch (computer science) Ultraviolet photoelectron spectroscopy Binary file Special unitary group Software bug Component-based software engineering Flow separation Integrated development environment Software Different (Kate Ryan album) Information security Computing platform Stability theory
Slide rule Software bug Explosion Wrapper (data mining) View (database) Building Multiplication sign Source code File format Software framework Generic programming Binary file
the I can hear myself pretty good I guess you has can hear to excellent and so today I'm going be talking about different features a package source as and soon all of you are familiar with the the package source of Free BSD ports or open new year's eve or some other packaging system like that so today my focuses on package source but we'll talk about some things that might be different areas you'll see is different between another package systems when talk about its portability and some of its schools not 1 thing to known is package source is maintained by net DSP but it is certainly not specific as we get later on I only list a few operating systems on here later slides that show a lot more I should have at least listed Mac OS 10 for example or something here but it's not official like these other ones are a sources little more efficient and
just give you some background on the news impact source of for a long time and it's how I became a net BST Canada I always submitted 50 + problem reports to fit and maybe 50 packages or so and so then I was able to be invited to commit right to the package street is a committed so much work now some of the work I have done with package source so did work professionally for a medical research company and and they had a variety of different software that there was no packages for and so in their Mac OS was a platform and so I just did work on porting a lot of their dependencies over package source and a lot of the software did not get put into the practice forestry but and you have to make sure that all their dependencies a worked correctly on a Mac OS platform for them and also as they're consultants I did a lot of work would be a OS and basically the systems were dying but my customers had to keep on using i'm because they had commercial software and they didn't have any has scheduled to migrate to a different platform and so use package source even for several years to continue to maintain the software on the system production software but also package source packaged up everything that was essential to a Linux distro including the kernel GLM Our model utils everything that wasn't in the package source already heard about from 1 and then I Amelia 100 % billable system using all package source and I sort of fun and it also help me of C edge cases I guess impact source especially with installing directly to slash used for example in trying to make sure that software and didn't depend on the wrong things not as a of created hundreds of packages and I look into my package source new directory as well start my work and I see all manner of like 150 packages in here in the and try to get those all pushed upstream then maintained certainly hundreds others I touch certainly thousands of packages in 1 way or another and also on providing bug fixes improvements to upstream projects it if we make a change all talk about later but it surely share these without string developers package source for several years as had a weekly rotation I've been slacking off a lot this last year but now that I protesting that for several years and basically you watch the artists or problem reports to come in and we do triage form if a trivial thing to fix them ourselves or we'll ask another developer if it'll take that ticket or will give feedback for asking for more information or will automatically assigned to somebody it is good to do a little triage the ticketing system
not very quick intro the
cost factors sources 2 different things but it's a software build framework and as many many hidden things but you know the very basics of fetching and verifying would have fetched but media configure step of build steps but the installation packaging step and then installed then they can see I have so reversed package installed we will talk about later at best a stage
I'm also it's a software installation management system now installing upgrading configuring software removing packages in a consistent manner a package source does not have to be the building only systems have several systems where do not have a package and its use of that the minor tools to install and maintain binary packages and so and it's certainly doable
but a quick history so if previously 1 I 1993 it included and some of the torus sets included source for many popular software and in 1995 those those us or sets were put into an infrastructure which they called ports and you can see it's the same description as it is today known to the directory you wish to install type that make it and let the system do the rest and
2nd source no sports in 1997 I as you can see the school here maybe the person in this room so this quote I'm not sure that but I try to keep things in sync with previously ports but as you can imagine not 2 different systems are different goals and a diverse uh but this is a really interesting here within a couple years an important to Solaris very useful and then again ported to Linux and the bootstrap support done very shortly after the importance of the tree and we'll talk about this now will have some slides right about it that is basically seeing a package source up and running on a different system like Solaris and Linux are
that cut off here but the the gist of it there's different ways to get package source 1 ways you could check out factors source of Eusebius were you can fetch tarball weather's bees in Jesus were against the others so that z and this tarball right here as of today is around 24 megabytes but I think among the off but when you extracted I think it's around 700 or 750 megabytes it's it's a lot
what's extracted coffee is the ball specification files but also has some source code also knows the things that are key for bootstrapping many course also has the infrastructure of files snippets for example so let's talk about the bootstrapping the bootstrapping is portable of the shell scripts make files building installing the dependencies in the packaging framework tools this is portable so ability use it on various different operating systems now a few things that are key the uses Netbios these make which is a you know a derivative of P makes you cannot use previous these and or open as maker dragonflies not just some slight differences it also installs the package install suite which is a low-level commands like package delete package info packages but may use
the net BSD compatibility sham this is library providing definitions of functions missing from other platforms the provides so like BSD isms that they might have walking on a Linux box for example the package install users live archive you know can can stream and different types of archive formats and so on now that's a portable project
and depending on your system there might be a few other things that need to be bootstrapped and is in a simple install strips on knock on net DSPs version of said in the and the public domain had occasional this is because some systems might have a broken shell for example or they might have an AUC is just incompatible said that's incompatible so we can bootstrap and get some of these included but there's other
dependencies also varied they're not critical for the bootstrapping part and they will be installed later on once you've started installing software for example digest for checking out now the hashes for verification by T and FTP by default most of need some way you know it affects the software so idiocies FTP also has an HTTP client and also some patch versions are broken that that hopefully only water in so now this is version of patch
supporting obviously is not the major goal and there is software in the fact source tree there is not for Internet DST and probably never will be and so package sources a way to install third-party software and in some cases that software and nobody in obviously wants to use it but somebody that uses practice for someone to use but of course if it does support years the then you shouldn't have to make sure they're always builds a and also but it not a major role
many architectures multiple versions of operating systems and they might differ headers of course that different system libraries in different compilers and different build tools and so on we're not tied down and to many different things and so that's pretty so this important point when we have the need of poor software over the let's say in and here's the were not going to 1st set specifically dispatch Fernando has the burden of abstract it we're gonna look at it from a data point of view if it's looking for this feature then will work and make it past for that feature were not gonna patches specifically for net BST or the same thing of reporting it over to on Mac OS which are to do the the most generic the proper way a way that we can share it to the upstream and making and committed to the upstream code without breaking their own software I've seen other ports systems where the patches or specific for their operating system not turn take offering this year when the see but very specific to them they cannot share their patch of upstream verbatim because it's specific to the operating system thus important
point and so we share these factors back as much as we can on
platform supported by the 1 thing to notice some of these platforms were done years ago and it's possible that there some people that don't use anymore or if they use them they're not updating their back a source tree that they might be out unlike in use BSD OS is example there I heavily used it and that I have not tested it tested this decade I haven't tested maybe 2 years or so so reason we reason I a few things to point out here and in fact some opera systems only when no freeman for example but on Mac OS 10 there is a package source developer that maintains binary packages for Mac OS 10 and so on and so and hosted obvious company I think join and some of these will use package source right now as the main 3rd parties offer packaging systems of for example a dragonfly
and so the list continues the Linux a sort of generic but I use it on its center where this red had there been and all others use on Slackware and user on a variety of different ones 0 minutes 3 the practice sources sort of the their main suggested weighted install third-party self also join it provides a packages but for this model assembly the see right here in a lot of different platforms and we can bootstrap the older you install third-party software easily on different systems so that's 1 of
the main strengths In this seperate package source as far as we know from almost any other a packaging system there's a few other package systems that are have been made that work with free BSD and Linux in in Solaris but they don't have such a huge team of developers and maintaining and and so package truly but of the most portable we have a large number of packages working on the same code base so you have a portable uniform operation over different systems and so if you learn how to install the software on 1 system the layout of how it's installed the way configurations are by default and how you're going to start stop thinks might vary a little bit but we need to install the same like start-stop strips and so it's a really portable uniform operation but also you might have specific patches for example and so having no specific patches portable across all your systems also there was a tendency
sorry mention some of that and I am also the same thing so the same build options and between different systems 1 thing to note is that no with various
configuration files but by default it was these configuration files and examples directory was very useful for administrator and you're going from system system the oldest the original suggested configurations which might be suggested by the package source maintainer or they might be the suggestions directly from the main mainstream but we install those but on installation we don't overwrite the originals in on the installation it has a simple way to look at examples version and if it if it's changed or not I can can remove year-old configuration and these things are lower tunable parameters messages telling you about this
and but just over the next many slides this talk very briefly about many of the different features that package source says and if it does so many different things and most people don't use all the different features and Bering see examples here by default where the configurations go up if you're running unprivileged mode which still talk about little later it in going home wrecker like that where user package ETC but you can change even to where configurations but maybe your and has a policy of where you need to install or maybe because your backup source is you have some reason and so you can change it to install directly underneath the ETC directory for example or a or under a subdirectory ETC PKG or if you
need to get really fine tune for specific software by the other configurations you can have a setting where you can set for every single software to go somewhere specific on your file system so it's pretty fine to know whales of course in last 2 cases you need a rebuild reinstalled those packages after made those changes and this is another
features and so on of the user as a sysadmin and as a developer there's many cases where a they mean Unix system I cannot touch it's it's standard packages maybe they're maintained by different operator or I don't wanna break things for other developers I mean I I can upgrade their versions of the libraries for the system and so I can do is I could do belongs as a regular user just dopamine in my own home this is very convenient and so but 1st of all the packets source in most cases user groups are very well abstracted now for different software and and so back source and customize the sink create these users and groups as needed and because it's so all distracted you don't have to have many different users and groups you could just use your own user can your own group account and so a Ising see the bootstrap command as a switch called unprivileged and by the fall ill said the prefix so although underneath your home under underneath the director of the however a couple things to to point out so the 1st time you boot strapping ever been terrible 2 on extract and then you bootstrapping and takes a few minutes and then you start installing software the 1st time you're installing software you might have many dependencies installed and so yes it's installing a lot of clutter the main not thinking need but after that you install something usually quick and simple appeal but as you can imagine by multiple users on the same system good install their own packages of fast are not only eyes with little tweaks you can install multiple packets source and installed on your system in different locations also not talk about briefly later
this slide I should ignore but I I will I have to say that I mean there's problems in any system so go through quickly is used as many introduce dependencies of the point of this is if you want to install 1 software it might tie in with something else and so I cannot download the the structure for just 1 program the not look at OK it includes out I would have to download that includes out of the download that so for now we don't know the whole collection and as I mentioned uh 700 megabytes extracted are we use CDs maybe it's not a problem but there's many developers lie lately within the past 2 plus years they use get with package source they do their work out with it but the main treaty that's maintain whenever see a user's CDs and so if you need to do on history are working at the other network connection to the main server for example on the implementation of causal original Free BSD implementation 5th and so we use a lot of shell and we use make and so sometimes I make in the shell put together like that can be an efficient I would say it can be very slow but in some cases it's really quick some packaging is redundant all maybe you already use Pearl tools or Ruby tools or something to install that software as a really make sense to install again with my packaging system in a different location as something to think about and we were we work with different ways to make this claim but still it can be read I think will talk about this later there's too many ways to choose from for doing software updates truly we have like over 25 different ways to upgrade their software and so we have 25 net BEST experts certainly do 25 different ways and the that works for them but when you have a new person coming in and they use Yammer apt-get well we cannot tell them 25 different ways to do it is it is a little bit of cumbersome so maybe this isn't a problem that we support so many different platforms and let's say I 10 versions of of Linux 3 versions of Solaris we cannot provide binary packages for all of these projects we only provide binary packages for a few things may some developers it's a side project in my upload them but I already mentioned on some developers provide for Mac OS 10 and things like that
on basic package 1st usage this is just an example of a few steps to install some software if you're doing it as a regular user doing and in your own home and so it imagine I do this on a Linux box I got that and you get a downloaded extracted tar and extracted this star was smart enough to understand x z format and I go into the practice restricted and on the bootstrap directory and I ran bootstrap unprivileged immediately it told me something about my shelf and so normally there as a hacker myself on figure will why did my shall work but I followed the advice and just said well used national and so I use the Sheldon you work i it spun it build some software like a mention package install and it created configuration file that will be used later on and by make as it builds install software and we will look at that may be a little bit later but I know in my case I just looked at it it has some of the defaults in this in this case and false meant it was installing from my or in using my house and so I I just jumped into a directed to build something and I ran and I didn't I didn't set have yet been and full path to be made and I didn't install step and then I play it is just a simple game and they have various dependencies of those but that's just a very basic example and later on course just like the previous reports or open via seaports just go to the directory make himself 0 0 1 thing as a difference my dear fall out we don't you clean or like a clean depends and so the the source could over time will fill up you can set up a variable from agreeable the clean or even just put on a new line install clean or you you make a a meekly later 0 just to point out here the is because it's the net DSPs version if you're on a net yes box but you don't need a new bootstrap it already has a few dependencies already so simply don't the directory you make install only thing is there by default it'll installed two-user package PKG here all talk about real needs a little later but just a path may be adjusted manpower as I mentioned there's
so many different methods that are not going to talk about those 2 there's too many and will talk about
just some of the sort of common ones a target del remove the package In all the packages that depend on it it keeps a list of those and then attempts to rebuild all of those in that list so we have to make a big target and then there's a tool it sort of does the same type of thing not to they all packages from sources so 2 different ways to do the same thing but by the way this package check tool is a 3rd party software and so it's another software you can install to manage on another way to make
target replaced so if the package doesn't exist it already exist like a binary tarball for it it will on Todd generally this is not a problem anymore and then uninstalled it the bills installs new package that fixes the metadata that depended on it so in light of the versions of what it depends on to depend on the new version instead but as you can imagine this could be dangerous for does that you might replace something that's slightly different maybe as a different API or you know various different things and there is a wrapper around that will look at your system to see what's out of a been so there's a script that some people use or make replace recursively in all those different things and which can be dangerous to I just I have some systems with packages installed 5 6 have many more years ago and I just operate as needed and so when I look on there I still have old softwares stole the brain use software and it's sort of a feature maybe because it's difficult on a power user I guess and so I can understand how to fix things but the normal usage of somebody you on a package system is when they do an upgrade you know for a new version or the you know the upgrade quarterly or something so they operate everything in tandem by keeping things around for many years as possible load source is simply because of some of its portable designs binary
packages usage and some others you probably already know you can you package as with the URI or a new package and directly to the file and or you can set the package path variable here I'm in this 1 you can see at the end of it ended with all directory and they need new package and it will attempt to figure out what the Virgin Mary assuming that the server there is supports most of the things that we do not have like a minor source which way you do it this way instead 1 thing to note about this and genocide hundreds of times may became more over the past 10 years in so is downloading the dependencies if there's something that breaks in the middle it can be tough to try to figure out what happened and because of this is a single and low-level tools and so but I don't know what
happened only it I'll talk about the next thing I hand and this slide here and some other ways for operator and so the minus you switch what data packages in place many again fix mounted on the metadata for the other practices that that depend on it and then also if you wanna do a recursively updated minus you want to do the prerequisite packages also and then unless there's a
script you can use to attempt to do the same thing and that was a binary upgrading this means that you're not building from source at all appearing with binary yes yes yeah and so another way to do it I if if
I teach this lecture again maybe in a couple of like in years out of college may start mentioning to easy rituals 1st some cases they still have a little nuances just like in the Free BSD world you wanna use a new tool Linonia and offer the packages that other factors adversely over some of the words in the previous state so little things like that but ever
sick so some of the practices based platforms that likes us more or less a sum they suggest promote document the binary pair could use only but they don't tell you to download package tree they don't tell you use a package at tool that tell you use other higher-level tools which we'll talk about and so just quickly we have a metadata like a database containing a list of all available packages and we call that package summary database and it's a based on the same idea as the deviance available databases and so it won't allow somebody to use that database to write tools to build the recursively in operate software also or search what's available and
so there's a few different tools that take advantage of the database 1 tool but I just made a hack tool on 1 of the people that made the summary database so I wrote a bunch of shell scripts maybe center ought to I use database I can solve software and then to other tools that were created out packaging as this 1 and another 1 is a PKG NIH not invented here no which I don't have slides on so package and as you can see In the beginning and after a young wife tool and so on apt-get update apt-get install the you know simple things that and so it has some of the same functionality we won't go through all these features and they can see what's available 1 year I'm sorry what's already installed on your system and what's available and do an install then Saul target also following option there also can you upgrades so you can do an update downloading what's available sort of the apt-get way so apt-get you'd updated available database then you do your installs where the default for young is a little different where check for for the updates well as users and so you you see the bottom 1 you search for packages and so on
few others of us which is also to give more information about what's available and I can give you some
examples and so as I mentioned some systems I use I only use packages and and I help maintain different systems for developers hands the and I to back up a little bit so some of my practices work I did mention all the different platforms they use it on a but I you run bill of 4 I S C 4 different binder products and so we have many different systems where the native packets collections do not provide the tools that we need and so when I need that certain tools and there is a quote from the earlier thing earlier presentation today make everything standard standardized don't do a 1 off so the learned how to install third-party software then can going to document my steps so I can't really do it again and if I'm gonna read use on other software I'm going to follow steps in so my eyes will documents in a package source but a specification that took away so anyways of active packaging here so I see I think the software isn't of packages installed on the collection available 11 thousand from this 1 and my configuration it points to the URL where has a practice summary file and also has with the binary package tarballs and so you see this example here I do not being grabs a new of summary database updating the database and then I next example you're researching I can see here that it says a newer version is available in the of the lessons and so that's a that's a candidate for another and you can see now 1 of them that packaging and update and 200 more packages available and from the previous time and another
simple example and installing shows that this 1 did have a dependencies and so it is very trivial and that there is a switch in a way you don't have to get prompted you can turn up prompting off and I don't have a slide for it but you can do that packaging and install something with dependencies and they'll simply give you a list of everything it wants to install new policy in the same thing on other package systems and you can see yesterday and let it do its thing but also will mention that it wants to Ivory let's say once the download fetch installed 20 items but wants to operate 5 things it'll it'll tell you that also of this this 1
more example I upgraded the software itself packaging and install package it courses already installed as amusing begin see it it's an upgrade a this is a little bit clutter as you can imagine it gives you the removal messages minimum at later it's gonna give me the
messages that install again I 1 thing to note we will look at it but it might have warnings are areas that you detected in the lower level tools and he'll want those into files and you can look at those things now what is say updating database it's 1 thing to point out now the main metadata for packages or just text files not very stupid textiles mean different things and so In this case so packages uses SQL like and so it puts into a database it works with a little bit quicker and we'll that easier Our
belong to different topic here a work in progress of the web active source where possess sourceforge is very useful for even for me but from packaging up a bunch of stuff but I cannot get it finished or I just can't get reported correctly the net BSB here's something I wanna tested on 1st of all it is dump into into their tree I can share it with others and that way they can fix it or making provide feedback it's much simpler to point someone to and mere completed package versus trying to send some e-mails copy and pasting snippets when I can point to something that sort of almost ready to use and so you don't need to be that is the kinetic value is needed to of course have sourceforge account then get permission from the maintainer of the project so is very useful for learning but for joint I don't think so they do have their own git repo there would have some of their things that haven't been pushed into practice 1st proper but for work in progress I I don't know the and so this is for beginners and for advanced users by many times I do not use it that if I make a package and do it correctly of push it directly into that forestry well may
contain broker and maintain packages I don't know how many packages in it right now but I assume around 700 to 12 hundred somewhere in that area of some of them were broken or problem I packages MIT that is if I find a package never completed it you know 10 years ago that I may continue to be broken or another cool
feature of crossing violation and this is some parts of the some parts of the new will talk about this so that resources already extracted for different compilers and we use a wrapper framework to try to reorder switches and use compilers in different ways and you can see all the different compiler systems that we supported at 1 time or another and some of them we still support it it's a big list and as you can imagine I GCC even the command line usage of it is different then maybe an HP-UX compiler and so some things are generically you know the um go across that some software and it is a portable let's say they don't use auto parts and so right here practice source wrappers can help work around problems like that and so already abstracted from these type of things now he wanted you invented where you might use this CC or emulators but here's another way if possible deal to use factors source to create in Proc packages for different right now for net BSC proper and this book going back a few years ago the initial goal was just give the bootstrap tools to be cross-compiler 1 at St and then on the big man roles of 4 x 4 x 11 suite in its dependencies across about but our recent work is also added additional medusae across compulsive work so this is a big new feature and there's patches are in progress or work in progress before doing cross built for different platforms this and can be a lot of work and as you can imagine using a Mac OS those that's your quick blocks to generate embedded Linux packages could be very very nice for a lot of people but is very significant for package sources extracted so much is it will be easier place to do it than probably any other packaging systems and and then in the benefit for practice source will it'll help bring out different issues do make package source better as we do that so I'll be really nice now we have
a lot of documentation we have a guide practices guide it's getting very lengthy kids get longer and longer and so it's an HTML I think it's in PDF and I look at the text file very frequently now we have a full suite of a man pages also packages had of the League of package installed are com which of alternating and that later and then there's the various wiki pages were people put tutorials or how to different steps under this next thing is sort of interesting it's not complete but it's a good start so we have a variety of make files or snippets for including in the files and maybe you might have there are things that can be explained so we have a make help target because same topic and you can give you information about how to use maybe you have to use another target or how to use a make variable and so it's sort of built-in help select prettiness so that's a Linux saying
is another also features of package source of build linking and so I won't get into detail here but 1 thing to note is there is a big overhead and I do some work would there be in packagings at work and and then there's other systems that the key for making packages they wanna make a clean package they don't want to depend on something accidentally that was already installed on your system let's say you have lived XML installed in for some reason some offer you had picked that up and then you install your package on the system won't run because you don't have with XML and so the common way to do this is to do a nutrient environment overhead is big has he got install ever all these dependencies then when you're done you need a clean out the entire environment the overhead can be pretty significant so package sources a simpler mechanism OK maybe is not simple or could it is it's a lighter mechanism so we have various Makefile rules to define the dependencies the dependencies can be very wide headers libraries and maybe package could figure out specifications they might be out Lin to archive files but does writing different things and the package Miller may also choose to use some dependencies you already have on your system but say of Open SSL it's a year of expiry 86 some type of dependency and you don't want to use a practice source equivalent musical built and sometimes the auto detects and depending on the system we have some preset defaults of whether whether or not you may use built but we do not provide built-ins for everything like we don't want to provide a built-in for Python 3 or Pearl for example will use a package of source of version of those you just means simply because some things are too big and trying to manage them from up from a built-in perspective I might be very difficult right so it knows what it means to do a bill so that it creates a symlink tree of all the specific files like I mentioned above headers libraries little to archive files the SemLink tree could be extremely huge if you're installing let's say something the users of no but qt for example in all these dependencies you might have layers layers of dependencies of a big family tree so the next
thing is execute Pappas overridden to use wrapper scripts also we so various configure variables or make environment variables the whole goal is to override different settings used by compilers or the configuration tools they configured environment and then you will point to directly where we have that's only tree but the building tree and we might will override those firms in many different phases of part of the building and installation and I as I
mentioned earlier about abstracting for compilers all we might also do do other abstraction here and as I mentioned this is helped you have a very consistent build prevents softer on the system already installed from not being used for creating a new package even if it's a solvent package source even if it's in user package live or user package include worried look by default and as I mentioned before that I created a Linux distro in so that that was a little bit tricky because you have user include which is set by default but on modeling tree I did help a little bit in that case
and other summary given examples but I just showed a couple things about was built in and so OK on this Linux boxes detected that will use a built-in it detected it'll usability and openness itself but and for some reason maybe I did have the the green line package installed or something I'm not sure that it look into it but in this case is can use the package source version In already mentioned
it sets different things but mind override set different environment variables are configure flights to use the what versions that are specifically specifically depended on but I think it's
example of a short example of the of the villi and SemLink tree OK not all the same length so that certainly is wrong name In some cases we dynamically generate but PC files that I don't know for dynamically generated a lot of files but we might but if we put the files in place that would properly . 2 are versions that we specifically depend on on and so sometimes I just kept these files will give a list of the things that were billing the and build
linking an x 11 and so I 1 time i'd package X 386 somebody else attack injects 386 and they enough myself and a couple people we packages of x over and then we go over that because then we back is a modular version so we went through multiple phases of that and so on but also
we support with the other implementations of X and I'm not sure how many of these are actively used today but now we provide another package that provides assembling tree that point to those way we could not point to the x 11 components that they need and today I most platforms Mommy anomalous many platforms will default modular I 1 thing to note that BST itself will by default will use native but the model is broken into many many many packages and I just listed a short list here these are some of the very core ones I'll assume they're all dependencies only access L it would excellent love only
pause here for a 2nd and i have any questions about the bill linking about the all right yeah I'm not sure but I can imagine now so some of the building wake up include files also have associated built-in file and in some cases the built-in filed my have auto-detected your system wrongly and so yes we might have a variable we can override it about and it really depends on the specific package 1 problem is is if you have a slightly older version of like 3 free desktop version of a live XL but live on x 11 verses that the newer versions of some of them are missing and package conveying files related to archive files and so it might break in subtle ways but if you have some specific through you can e-mail me so another thing is we do have an options framework that Free BSD has something similar the previous these by default it is interactive you know you you do installing come back an hour later put that may I gotta collect check boxes and yes you can install or manually set those ahead of time or having user the faults but with never BSE is not interactive in this case you could view them make sure options target it'll list of the general options it hasn't tell you what's enabled by default and also tell you what's currently are enabled just-in-case you've configured at someone this should
yes if they don't then complain to us we do and have a file that has a description for or for most of them and some of the descriptions might be vague but they should have a few were descriptions for each 1 I should show more examples here but you can do a site-wide settings will pack packaged if all options and the Lester space-separated so just put quotes around it or remind you 1 specific for us those certain factors like exam the thing that's strictly for new users if you wanna turn off something put a minus sign in front of it like deftly attack there and so you could turn off and so these are actual real examples of something that I would use for example not using the the newly would get
OK options just back so our framework right now as it is does not generate a different package when you to the package options and so that means you might have different packages that are different even know the name identical so that there there's some developers to have their own have build systems that that means the package is based on options and choose they can imagine you might have 50 options and you have a package name with 50 options following it fit and even you know the Torah file name but it can be pretty cluttered and confusing as it is and you look at the book old man longest package in their red in that will help you with it might help you if you if you would have 1 or 2 options a stage
installs without us for at least a couple years has been the fall for over a year and basically what the citizens installs a temporary
staging directory assistance souls entire thing to staging directory but I think 99 per cent of our software now supports this and so it is the default don't staging directory so we cannot check make sure it's consistent then also 1 cool thing about this is then you could create batches without installing it on your system and so do a nice feature
but as I mentioned I another
interesting feature and and so many of our packages define their licenses supported and you can see this list deep acceptable licenses n and somehow I have to give a slides merged together sorry if but anyway is we have different tools and different things and so you can define the licenses that you want to support they can be be defined for the package binary tools or defined if you're building from active source this is really cool because you can do that the restrictive or being more open depending on your developer or a your production environment rules In so this can be helpful so I'm
not sure if understood in a row as exact time of my lecture ends at the time allotted ends in 5 minutes so let me know if I need in right now for something better than this slide right here is also is the next slide so just basic packaging step show some light examples there's many many different ways to do it but as I mentioned that when I install software I don't wanna do 1 often so I create a step in the right tools or there's a template so you may use of 1 tools called URL to package it works for quality over 50 % of a simple projects and I've used it hundreds and hundreds of times and so it'll you basically point toward the tarball it'll downloaded it will open up this horrible look at it and see if we can get the general gist of how it should be configured and built and installed and so things a news article on the can engineer can do that a good good basic the job but other things you might have a simple steps and if you knew the makes some target once you've already set something up Bill downloaded and create your the checksums another target values often is pretty list until death will generate your packing list and so a list of the files in the directory is and the directors that should be removed and the installation time and so on another target as usual useful as a show and so if you wanna look at a variable as its side changed as it goes through on the differ Makefiles snippets you can see what it's saying is at that time and so I think 1 of the slides guide messed up there the package landslide soldiers mentioned it very quickly and so package line is the tool basically for looking at the center of a package some developers don't like it at all I love it but it gives you so many different hints of all you miss this maybe you could do this a better way it has so many different hands to packaging it's it seems very useful to me so 1 thing you know for packaging packages should never touch the final configuration files they should not installed directly to ETC directory I've mentioned that before they should install to the users share or sorry but anyways the examples directory by and there's a few of them variables you is set in union nature that your software uses it from the ETC directory not from examples directory but as not just a little inverted about them but it's not always true but many times you use the bill later infrastructure for a the library dependencies and as training packages will cost we have 11 thousand 12 thousand 13 thousand there's many examples and there's a very helpful audience I have to mention the reason I went and obviously in the 1st place I use other DSPs for other work is on the environment the package 1st developers and obviously developers in general were so friendly soulful if I ask them a stupid question but there they would have probably probably probably and help me out we'll solve a problem in the SI can be slow but it is a very friendly group and so that was very helpful for me In so as I mentioned the helpful group there mailing lists and don't abuse it by being stupid on purpose fit by that other very friendly and so I'm going to skip the
packaging example in this but is something else presenting in here right now I don't think so this is the last 1 here OK again and I have 1 minute or is I can tell and we had a ball buildings database for basically 13 years and so on that's a way to you could have automated so we want build package will check the database is a OK this is vulnerable and you can set some variables to say OK all ignore that or you can also have an audit tool that runs nightly or however you need to media reports and I don't
have listed here but I those thousands and thousands of entries in there and so it's the prettier this is maintained pretty well so growing all the time so it's nice to have a vulnerability databases the you were
here you you although on I think there was an old package for burning of previously port to package source I don't think it's been maintained for many years it might do a little bit of the job that I don't know of any others as I mentioned there's thousands of was by
digital signatures just to point out we've had signed package support since 2001 and I don't think very many people are using it but I it's a nice feature and it's a part of our package infrastructure build-out signed on packages I mean that's very useful
another thing very quickly we've done quarter release stable branches since 2003 how did I realize it but there's only has a long time and so we provide another branch and we just pull up bug fixes so if you want have a stable environment you don't wanna go with the bleeding edge package source because they were stable branch so that's another
nice feature and so yeah 58 stable branches that that's phenomenal I just
idea the package counts yes we don't have as many packages song and how you count packages you know various there's a we don't break a software up and 10 components when so these but it's it's a good it's a good amount is and that is very good you can see some accounts for different platforms there's so much more
to talk about in so this slide I won't talk about and they did see him as many
and I'm finished I'm appreciate you coming wasn't learning more about packets source still free ask me questions about anything in time people ask Allah the others and I so personally thank you for the for the work you've done also yeah there's a lot of people and is anybody have any questions sponsor questions of


  806 ms - page object


AV-Portal 3.21.3 (19e43a18c8aa08bcbdf3e35b975c18acb737c630)