Post on 26-May-2015
description
PBI v10:Application Management
Made Easy
Ken Moore PC-BSD/iXsystems
SouthEast LinuxFestJune 20-22, 2014
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
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
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
App Installation
Old PBI System● Single Method
– Specialized Containers
PBI Version 10● Multiple methods
– System Integrated
– FreeBSD Jails– Other
Containers?
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
AppCafe
● Graphical interface for end-user interaction with the PBI system
● Simple access to different installation methods or locations
● Easily use custom package repositories
Management
● Easily see installed applications
● Filtering Options
– Apps Only– Orphan Packages– Base Packages– “Raw” Packages
● Bulk Actions
– Uninstall– Desktop Shortcuts– Version Locking
Browsing
● At-a-glance:
– Name/summary– Rating– Recommended– Install status– Type of application
● Filter Options
– Graphical Apps– Text Apps– Server Apps– “Raw” Packages
Searching
● Smart Search Algorithm
– Name Matches– Tag Matches– Description
Matches
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)
App Access
● Launch Application● Contact Maintainer● Desktop Shortcuts● The “Size” is now
the actual size the package occupies on disk
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
Warden
● Jail Management● Import/Export● ZFS snapshot/restore● Multiple Jail Types
– Traditional (command line)
– Ports Jail (graphical access)
– Linux Jail (experimental)
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.
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!
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
Questions?