PC-BSD® 9.2 added a graphical Package Manager utility to Control Panel which can be used to manage installed desktops and system components. It can also be used as a front-end to the FreeBSD packages collection. The advantage of installing software using this utility is that any software installed this way will be tracked by Update Manager. If you prefer to start this utility from the command line, type pc-su pc-pkgmanager.
Figure 7.2a shows Package Manager with its categories expanded. This sample system uses NVIDIA for graphics and the default desktop manager of KDE was kept during the installation. This default view is known as Basic View.
To install or uninstall components, check the boxes for the components that you wish to install, uncheck the boxes for the components that you wish to remove, then click the "Apply" button to perform the requested operations.
To instead install FreeBSD packages, click View ➜ Advanced to change to Advanced View. This view is shown in Figure 7.2b with the
pc-metapkgmanager is the back-end command line utility used by the PC-BSD® installer, Update Manager, and Warden® to manage meta-packages. Meta-packages are like system components, and include supported and unsupported desktops, development utilities, hardware drivers, and miscellaneous applications such as MythTV or XBMC.
Beginning with version 9.1, PC-BSD® uses metapkgsets to determine which system components are available and which applications are installed with each system component. Currently, two metapkgsets are available: pcbsd which defines the available desktop components, and warden which defines the components available when creating a jail with Warden® or installing a PC-BSD® server. You can view the contents of these metapkgsets on.
The pc-metapkgmanager command can be used at the command line to install or delete meta-packages, update to the latest package set, or to change the default metapkgset. If you type the command without any options, it will display its usage:
usage: pc-metapkgmanager [options] Options: add pkg1,pkg2 <loc> -- Add the specified list of meta-packages <loc> should be a FTP / HTTP url where pkg_add can fetch packages, or an absolute path to location of pkg files on disk. checkup -- Check for updates to pkgs del pkg1,pkg2 -- Delete the specified list of meta-packages list -- List the available meta-packages status <pkg> -- List the status of the specified meta-packages update pkg,pkg2 <loc> -- Update system packages. Can use 'all' or <pkg,pkg2>. <loc> should be a FTP / HTTP url where pkg_add can fetch packages, or an absolute path to location of pkg files on disk. --pkgset <pkgset> -- Change default pkgset we are using--chroot <dir> -- Operate on the directory specified using chroot
Finding, Installing, and Uninstalling Meta-Packages
To determine which meta-packages are available:
Meta Package: Awesome ------------------------------------- Description: A highly configurable, next generation framework window manager Icon: /var/db/pc-metapkgmanager/pkgsets/pcbsd/Awesome/pkg-icon.png Parent: Unsupported-Desktops Desktop: YES Required Packages: awesome-3.4.13 Meta Package: Compiz ------------------------------------- Description: Compiz - OpenGL compositing manager Icon: /var/db/pc-metapkgmanager/pkgsets/pcbsd/Compiz/pkg-icon.png Parent: Misc Desktop: NO Required Packages: compiz-fusion-0.8.4_2 Meta Package: Desktops ------------------------------------- Description: Supported Desktop Environments for your PC-BSD system. Icon: /var/db/pc-metapkgmanager/pkgsets/pcbsd/Desktops/pkg-icon.png Desktop: NO Category Entry Meta Package: Development ------------------------------------- Description: Development tools and utilities for your Desktop Icon: /var/db/pc-metapkgmanager/pkgsets/pcbsd/Development/pkg-icon.png Desktop: NO--More--(byte 989)
To view which meta-packages are available in an alternate metapkgset, specify the metapkgset name. For example, to view the available warden meta-packages from your desktop, use this command:
Meta Package: Apache ------------------------------------- Description: The Apache Web Server Icon: /var/db/pc-metapkgmanager/pkgsets/warden/Apache/pkg-icon.png Parent: Web-Servers Desktop: NO Required Packages: apache-2.2.22_6 Meta Package: BigBlueButton ------------------------------------- Description: BigBlueButton enables universities and colleges to deliver a high-quality learning experience to remote students. Icon: /var/db/pc-metapkgmanager/pkgsets/warden/BigBlueButton/pkg-icon.png Parent: Web-Apps Desktop: NO Required Packages: mysql-server-5.5.27 bigbluebutton-0.71_3 Meta Package: Database-Servers ------------------------------------- Description: Database Server Software Icon: /var/db/pc-metapkgmanager/pkgsets/warden/Database-Servers/pkg-icon.png Desktop: NO Category Entry Meta Package: Development ------------------------------------- Description: Development tools and utilities Icon: /var/db/pc-metapkgmanager/pkgsets/warden/Development/pkg-icon.png--More--(byte 989)
To permanently change the default metapkgset between pcbsd and warden, modify the PCBSD_METAPKGSET variable in /usr/local/etc/pcbsd.conf.
To determine if a meta-package is installed, specify its "Meta Package" name as shown in the output of the pc-metapkgmanager list command. For example, to see if the Awesome desktop is installed:
To install the meta-package, use the add option and specify the meta-package name. Only the superuser can install meta-packages.
The following example installs the Awesome meta-package. pc-metapkgmanager will provide messages regarding the status of the installation:
Pending Meta-Package changes: 1 Package source: NET Preparing to add: Awesome... Checking for updates to old packages... Installing Meta-Package: Awesome Getting package list... Pending package changes: 6 Downloading package: awesome-3.4.13 //usr/local/tmp/awesome-3.4.13.txz 100% of 704 kB 637 kBps Downloading package: libev-4.11,1 //usr/local/tmp/libev-4.11,1.txz 100% of 117 kB 361 kBps Downloading package: libxdg-basedir-1.1.1 //usr/local/tmp/libxdg-basedir-1.1.1.txz 100% of 11 kB 130 kBps Downloading package: xcb-util-image-0.3.8 //usr/local/tmp/xcb-util-image-0.3.8.txz 100% of 18 kB 141 kBps Downloading package: xcb-util-keysyms-0.3.8 //usr/local/tmp/xcb-util-keysyms-0.3.8.txz 100% of 8040 B 72 kBps Downloading package: xcb-util-wm-0.3.8 //usr/local/tmp/xcb-util-wm-0.3.8.txz 100% of 35 kB 148 kBps Installing package: awesome-3.4.13 Skipping installed package: libev-4.11,1 Skipping installed package: libxdg-basedir-1.1.1 Skipping installed package: xcb-util-image-0.3.8 Skipping installed package: xcb-util-keysyms-0.3.8 Skipping installed package: xcb-util-wm-0.3.8 The meta-pkg Awesome is installed Finished Meta-Package: AwesomeMeta-Package changes finished!
To delete an installed meta-package, specify its name. Only the superuser can uninstall meta-packages. As seen in the following example, pc-metapkgmanager automatically determines which dependent packages are still needed by other applications and which can be safely removed.
Pending Meta-Package changes: 1 Removing Meta-Package: Awesome Getting package list... Pending package changes: 66 Removing: awesome-3.4.13 Skipping Meta-Required: giflib-4.2.0_2 Removing: libev-4.11,1 Removing: libxdg-basedir-1.1.1 Removing: xcb-util-image-0.3.8 Removing: xcb-util-keysyms-0.3.8 Removing: xcb-util-wm-0.3.8 Skipping Required: bitstream-vera-1.10_5 Skipping Required: cairo-1.10.2_4,2 <snip output of other required packages> The meta-pkg Awesome is not installedMeta-Package changes finished!
pc-metapkgmanager can also be used to determine if any meta-packages are out of date and to update meta-packages. To determine if any meta-packages have newer versions:
In this example, all meta-packages are at their latest versions. If any were out of date, you would instead receive the message "The following package updates are available:" followed by the names of the out-of-date meta-packages.
To update a meta-package, use the pc-metapkgmanager update command followed by the name of the specific meta-package or the word all to update all out-of-date meta-packages.
pc-metapkgmanager records any error messages to /tmp/.pc-metamanager.log. This log file automatically rotates whenever it reaches 5MB in size.