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

18
PC-BSD: Ports, Packages, and PBI's Ken Moore PC-BSD/iXsystems Ohio LinuxFest September 14 th , 2013

description

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.

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

Page 1: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

PC-BSD: Ports, Packages, and PBI's

Ken Moore PC-BSD/iXsystems

Ohio LinuxFestSeptember 14th, 2013

Page 2: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 3: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 4: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 5: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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.

Page 6: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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.

Page 7: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

pkgng – Graphical Interface

Page 8: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 9: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 10: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

Using PBI's - AppCafe

Page 11: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 12: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 13: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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..

Page 14: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 15: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

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

Page 16: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

Warden – Graphical Interface

Page 17: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

Demo Time!!

Page 18: 2013 Ohio LinuxFest - Ports, Packages, and PBI's

Questions?