2013 Ohio LinuxFest - Ports, Packages, and PBI's


Published on

Slides from my 2013 Ohio Linux Fest talk entitled:
PC-BSD: Ports, Packages, and PBI's

This covers all the different methods for installing applications on a PC-BSD system, with additional information about how to use these systems within the individualized jails via the "Warden" - the jail management utility in PC-BSD.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

2013 Ohio LinuxFest - Ports, Packages, and PBI's

  1. 1. PC-BSD: Ports, Packages, and PBI's Ken Moore PC-BSD/iXsystems Ohio LinuxFest September 14th , 2013
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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 FreeBSD These packages are digitally signed/sealed for secure digital transfer and use.
  6. 6. 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.
  7. 7. pkgng – Graphical Interface
  8. 8. 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
  9. 9. 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
  10. 10. Using PBI's - AppCafe
  11. 11. 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
  12. 12. Summary of Formats Ports 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
  13. 13. 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..
  14. 14. 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
  15. 15. 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
  16. 16. Warden – Graphical Interface
  17. 17. Demo Time!!
  18. 18. Questions?