Post on 19-May-2015
description
PC-BSD: Ports, Packages, and PBI's
Ken Moore PC-BSD/iXsystems
Ohio LinuxFestSeptember 14th, 2013
What is PC-BSD?
FreeBSD Simplified!● Pre-configured desktop/server
installation
● Desktop-Environment agnostic
● Automatic ZFS setup
● Up-to-date package repositories
PC-BSD Additions● Graphical Installer
● Warden (jail management)
● PBI package format w/ EasyPBI
● System backup/restore functionality
● Many system administration and device management utilities
FreeBSD Ports
Features● ~25,000 applications
● Standardized method of building/installing applications.
● Independent of FreeBSD version.
● FreeBSD Porters Handbook
Downsides● Compiling from source
● Constant flux
● Size of the ports tree
FreeBSD Ports – Usage
● Ports tree management– portsnap fetch extract: Install the ports tree
– portsnap fetch update: Update the ports tree
● Searching the ports tree– http://www.freshports.org
● Installing a port– cd /usr/ports/<category>/<portname>
– make install clean
FreeBSD pkgng(Next Generation Packages)
Features● Binary packages
● No ports tree
● Fast and easy
● Dependency checking/resolving
Downsides● No FreeBSD repo
● Security concerns
● Static compilation options
● FreeBSD series dependent
PC-BSD provides pkgng repositories for the release and stable branches of FreeBSDThese packages are digitally signed/sealed for secure digital transfer and use.
pkgng - Usage
● All interactions are run using the pkg command– pkg add: install local package
– pkg install: download/install package from repo
– pkg delete: Uninstall a package
– pkg info: list information about installed packages
– pkg search: search the repo for package(s)
– pkg update: update local packages to the latest versions on the repo
Many more pkg commands are available: use pkg help to see the full list.
pkgng – Graphical Interface
The PBI Package System
The Purpose● Provide a safe, system package
independent, method of installing/updating applications
Additional Goals● Ensure that applications do not
require an internet connection for installation
● Minimize library duplication to preserve disk space
The Implementation● Written in pure shell (/bin/sh)
● Intelligently shared libraries between PBI's
● A single PBI contains all libraries, files, and data needed for an application to run.
● Completely independent of the local system packages and other PBI applications
Using PBI's – Command Line
● Full command-line usage for the PBI system is available using the pbi_* commands.
– pbi_add: Install PBI (from local file or remote repo)
– pbi_remove: Uninstall PBI
– pbi_info: List information about current PBI(s)
– pbi_browser: List/search available PBI's in the repo
– pbi_update: Update an installed PBI
– pbi_create: Package a local directory into a PBI
– pbi_makeport: build a PBI from a FreeBSD port
Additional commands for running a repo are also available
Using PBI's - AppCafe
Creating PBI's - EasyPBI
● Graphical front-end to the PBI build system
– Generate build instructions (a PBI “module”)
– Run the actual build process● Tight (but optional) integration
with the FreeBSD ports collection
● No technical experience required
● Average time to create a module for a FreeBSD port: 5 minutes start to finish
Summary of FormatsPorts Packages PBI's
Pre-Compiled No Yes Yes
Compile-time Options Yes No No
Plugin-aware Yes Yes No
Self-Contained No No Yes
Offline Installation No Yes* Yes
Delta Updates No No Yes
Reliability Poor Average Good
Installed To: /usr/local /usr/local/ /usr/pbi/<name>-<arch>
Available on FreeBSD Yes Yes** No
Available on PC-BSD Yes Yes Yes
* This is not recommended due to dependency resolution of pkgng** FreeBSD does not provide any up-to-date package repositories
Examples● Ports
– Best used for building customized drivers and/or modifying the base system with specialized options
● Packages– Generally used for any applications that require
integration within the system environment or highly customizable with pre-compiled plugins
– Desktop environments, development platforms, system hardware or administration utilities
● PBI's– End-user or frequently updated applications
– Web browsers, email clients, games, audio/video, etc..
The Warden
What is it?● Jail Managment Utility
● Powerful way to configure and run a large number of FreeBSD jails
● Simple sandboxing utility for developers or users
● Secure environment for running web services
Features● ZFS snapshots
● Autostart jails on bootup
● Administer packages, services, and users from outside the jail
● Import/export jails between systems
● Traditional, ports, and Linux jails possible
● Template system for customized jail creation
Warden - Usage
● Command-line usage is all run via warden– warden help: Show all the CLI options
– warden create/delete
– warden import/export: Uses a *.wdn file for transport
– warden list: list installed jails
– warden chroot: launch chroot into a jail
And many more for things like ZFS snapshot management and jail configuration
Warden – Graphical Interface
Demo Time!!
Questions?