7. Limitations
Prev |  | Next

## 7. Limitations

The automated installation of a port may prove difficult if it is interactive and does not support `make BATCH=YES install`. For a few ports the interaction is nothing more than typing `yes` when asked to accept some license. If the answer is read from standard input, simply pipe the appropriate answers to the installation command (e.g. `yes | make install`. For other ports you need to investigate where exactly the interactive command is located and deal with it appropriately. See the examples above for `print/acroread8` and `java/jdk16`.

You should also be aware of upgrade issues for config files. In general you do not know when and if the format or contents of a config file changes. A new group may be added to `/etc/group`, or `/etc/passwd` may gain another field. All of this has happened in the past. Simply copying a config file from the old to the new system may be enough most of the time, but in these cases it was not. If you update a system the canonical way (by overwriting the old files) you are expected to use `mergemaster` to deal with changes where you effectively want to merge your local config with potentially new items. Unfortunately, `mergemaster` is only available for base system files, not for anything installed by ports. Some third party software seems to be especially designed to keep me on my toes by changing the config file format every fortnight. To detect such silent changes, I keep a copy of the modified config files in the same place where I keep `stage_3.mk` and compare the result with a make rule, e.g. for apache's `httpd.conf` in target `config_apache` with

@if ! cmp -s /usr/local/etc/apache2/httpd.conf httpd.conf; then \ echo "ATTENTION: the httpd.conf has changed. Please examine if"; \ echo "the modifications are still correct. Here is the diff:"; \ diff -u /usr/local/etc/apache2/httpd.conf httpd.conf; \ fi

If the diff is innocuous I can make the message go away with `cp /usr/local/etc/apache2/httpd.conf httpd.conf`.

I have used FreeBSD From Scratch several times to update a `7-CURRENT` to `7-CURRENT` and `8-CURRENT` to `8-CURRENT`, i.e. I have never tried to install a `8-CURRENT` from a `7-CURRENT` system or vice versa. Due to the number of changes between different major release numbers I would expect this process to be a bit more involved. Using FreeBSD From Scratch for upgrades within the realm of a `STABLE` branch should work painlessly (although I have not yet tried it.)

Prev |  | Next
6. Stage Three | Home | 8. The Files

This, and other documents, can be downloaded from http://ftp.FreeBSD.org/pub/FreeBSD/doc/

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.