There was a lot of interest about the changes to the pc-sysinstall backend during Kris’ presentation at EuroBSDCon. For those of you used to FreeBSD’s sysinstall, you’ll appreciate some of the features which are available in pc-sysinstall. For those of you new to pc-sysinstall, it is a scriptable command line utility which drives the PC-BSD GUI installer (and can also be used for system administrators to script custom installs). It has been totally redesigned for PC-BSD 9 and supports modern FreeBSD filesystems (ZFS, UFS+SUJ), gpart, and geli.
The presentation was not recorded, but you can download the PDF of the paper behind the presentation. It describes the design behind the rewrite and offers several configuration examples for creating custom installations. Please note that the svn URL on the last page of the PDF will fail as pc-sysinstall was committed to FreeBSD HEAD after the paper was submitted.
If you would like to try out pc-sysinstall, you can use the following commands, run as superuser, from either a FreeBSD or a PC-BSD system:
setenv CVSROOT :pserver:email@example.com.FreeBSD.org/home/ncvs
cvs login (use password of anoncvs)
cvs checkout –A –P usr.sbin/pc-sysinstall
mkdir –p /usr/share/pc-sysinstall/backend
mkdir –p /usr/share/pc-sysinstall/conf/license
Note to PC-BSD users: PC-BSD 8.x comes with the original installer located in /usr/PCBSD/pc-sysinstall. If you run the commands listed above, you’ll find the new installer backend in /usr/share/pc-sysinstall.
more /usr/share/examples/pc-sysinstall/README is an excellent place to start as it describes each configuration possibility.
One of the new configuration icons that will be in 9.0’s PC-BSD Control Panel is called Service Manager. It is a front-end to rc.conf, allowing users to easily see which services with rc.conf knobs are currently installed; to disable or enable the startup of a service; or to start, stop, or restart a service. Here is a screenshot showing that the system services are listed first alphabetically, followed by an alphabetical list of services that were installed from FreeBSD ports/packages. In this example, cupsd is currently running and enabled at startup. Since it is highlighted, the user can stop, restart, or disable this service:
Service Manager works in PC-BSD 8.x, meaning you don’t have to wait til 9.0 to try it out. If you’d like to install the entire control panel, follow the instructions in this blog post. If you only want to install Service Manager, replace the svn command in those instructions with:
svn co svn://svn.pcbsd.org/pcbsd/current/src-qt4/pc-servicemanager/
and cd to the pc-servicemanager directory to issue your make commands.
To start just this application (rather than the whole control panel), issue this command as a regular user:
There is one known issue: some ports that provide rc scripts do not support the status directive. You will know this is the case if the port installs an rc script into /usr/local/etc/rc.d/ but the service does not appear in pc-servicemanager. We would like to locate as many of these ports as possible so that we can submit a PR to the ports bugs database so the rc script can be corrected. Let us know if you find any and we can either assist you in submitting a PR or submit one for you.
Recently we blogged about the new pc-controlpanel. For those who would like an early peek, you can install this utility on an 8.x system. As the superuser, cd to an appropriate directory and run the following commands:
svn co svn://svn.pcbsd.org/pcbsd/current/src-qt4
Note: The last command will fail with an error if you chose to not install other languages during the initial PC-BSD installation. You can fix this with:
pkg_add –r qt4-linguist
and rerun the make install command.
This will install an entry into System -> PC-BSD Control Panel. Alternately, you can run the command kdesu pc-controlpanel. Here is a screenshot of the current version:
Note: some of the tools in the control panel will not work on 8.x as their code is specific to 9.0. However, you will get a good idea of the changes that are coming in these utilities. Also, the point of the new control panel is to allow easy access to PC-BSD specific utilities from any window manager or desktop environment.
John has been working on enhancements to the backend of pc-sysinstaller. He describes his progress so far and brainstorms possible future features with Will Backman on today’s issue of BSDTalk. John hopes to have testing snapshots that include his changes in time for MeetBSD in early November and we’ll announce them here when they are available so you can check them out.
We’re starting to fill in the TODO list for PC-BSD 9.0 and you can view the list here. As items are marked as DONE, we’ll note them on the blog.
Two items were recently completed by Kris and he has hyperlinked their associated “DONE” with their location in the code repository.
The first is to modify the installer to allow for file-system selection when doing auto-partitioning and making UFS+SUJ the default file-system. If you’re not familiar with UFS+SUJ, it is described as follows by FreeBSD committer Ivan Voras:
The venerable UFS has finally received integrated journalling. Earlier it was possible to use gjournal (in whose making I’ve actually participated in an roundabout way) but it was a bulk-data journalling effort, making no distinction between data and metadata, requiring a large journal. The SUJ mode is an addon to SoftUpdates, extending it to record a very small intent-log journal for the edge-cases where it required a (light version of) fsck. This development makes UFS a fully fsck-less file system in the common case.
The second is the creation of the new pc-controlpanel utility. This is a “system settings”-like application which makes it easy to manage PC-BSD. After running it as root once, you can access any of the other PC-BSD specific GUI configuration utilities, regardless of the desktop environment or window manager being used.