These slides accompanied a presentation given at Southeast Linux Fest.
The PBI system provides an easy-to-use package management framework for installing, removing, and running applications while also providing simple methods for keeping your system up to date and in working order. In this session we will discuss the recent developments in the 10.0 PBI format, describe the background systems that make everything run, and demonstrate how an end-user interacts with this system via the AppCafe on PC-BSD. The slides also show how this system can be utilized to manage and use jails on PC-BSD/FreeBSD, enabling the user to isolate applications away from the general system for improved safety and security.
2. Definitions
● PBI: Push Button Installer
– This encompasses all the various
subsystems required to use 3rd party
applications on a PC-BSD system
Example Toolchain:
– Fetching/building the application from
source
– Packaging that application for distribution
– Downloading/installing package
3. Source Build
Old PBI System
● FreeBSD Ports
● /usr/pbi/<app>
system base
● Compilation
options set on
individual
application basis
(including for all
dependencies)
PBI Version 10
● FreeBSD Ports
● /usr/local system
base
● Compilation
options set for
individual
applications on a
system-wide basis
4. App Packaging
Old PBI System
● Single file for each
application (*.pbi)
● Large file size
● Fixed download
size
● No internet
required
PBI Version 10
● Single file for each
port/package
● Small file sizes
● Variable download
size
● Requires internet
connection
5. App Installation
Old PBI System
● Single Method
– Specialized
Containers
PBI Version 10
● Multiple methods
– System
Integrated
– FreeBSD Jails
– Other
Containers?
6. 10.x Summary
Old PBI System
Various
independent
subsystems
PBI Version 10
Unified subsystem
framework
FreeBSD OS FreeBSD OS
PBI System Jails
1 2 3 4
PBI w/pkgng
Jails Other?System
7. AppCafe
● Graphical interface
for end-user
interaction with the
PBI system
● Simple access to
different installation
methods or locations
● Easily use custom
package repositories
8. Management
● Easily see installed
applications
● Filtering Options
– Apps Only
– Orphan Packages
– Base Packages
– “Raw” Packages
● Bulk Actions
– Uninstall
– Desktop Shortcuts
– Version Locking
9. Browsing
● At-a-glance:
– Name/summary
– Rating
– Recommended
– Install status
– Type of application
● Filter Options
– Graphical Apps
– Text Apps
– Server Apps
– “Raw” Packages
11. App Details
● Push Button Install
● Detailed Information
– Version
– User Rating
– User Tips
– Author
– Download Size
– License
– Platform/Arch
– Description
– Screenshots
– Plugins Available
– Similar Applications
– Build Options (static)
12. App Access
● Launch Application
● Contact Maintainer
● Desktop Shortcuts
● The “Size” is now
the actual size the
package occupies
on disk
13. FreeBSD Jails
What is it?
● Self-contained
system environment
● Independant
root/users
● Secure environment
● Distinct IP/Hostname
● Not a Linux chroot!
Features
● Extremely low
overhead
● Start/Stop
● Invisible oversight
from main system
Tip: Think of a jail as a full virtual machine, but with such low overhead
that hundreds can be used simultaneously
15. AppCafe Jails
● Jails must be running in order to be used
– The warden can start jails automatically
● When installing an application into a jail,
it will sync the pkg configuration between
the jail and the main system.
● Jails can be updated from the AppCafe
using the existing pkg configuration in the
jail.
16. PBI Summary
● Improvements
– Stability (no custom localbase)
– Simplicity (distribution system and
management)
– Standards (the underlying FreeBSD pkg system)
● New Features
– Support for multiple installation methods
– Ability to use/manage FreeBSD jails
– Application plugin support
– Version locking
– More Application Info (ratings, tips, screenshots)
Remember: The *.pbi file format becomes obsolete with the new system!
17. Get Involved!
● See an error with an application's info?
● Want to fix or add an icon for an
application?
– Modules are on the PC-BSD GitHub repo
● Is the AppCafe missing a particular
application?
– Add it to the FreeBSD ports tree!
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/
https://github.com/pcbsd/pcbsd/tree/master/pbi-modules