1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Updating from source and custom kernel

Discussion in 'Installing and Upgrading FreeBSD' started by gpatrick, May 26, 2012.

  1. gpatrick

    gpatrick New Member

    Messages:
    320
    Thanks Received:
    32
    The steps I have for updating from source (from the 6 or 7 release timeframe):
    Code:
    # csup -g -L 2 standard-supfile
    # cd /usr/src
    # make cleanworld && make cleandir
    # make buildworld
    # make buildkernel KERNCONF=CUSTOM
    # make installkernel KERNCONF=CUSTOM
    # nextboot -o "-s" -k kernel
    # reboot
    # fsck -p
    # mount -u /
    # mount -a -t ufs
    # swapon -a
    # mergemaster -p
    # cd /usr/src
    # make installworld
    # make delete-old
    # mergemaster -Ui
    # portsnap fetch update
    # portmaster -Da
    # reboot
    # cd /usr/src
    # make delete-old-libs
    


    In the handbook I read these are the current steps:
    Code:
    # cd /usr/src
    # make buildworld
    # make buildkernel KERNCONF=MYKERNEL
    # make installkernel KERNCONF=MYKERNEL
    # shutdown -r now
    (boot -s from loader prompt)
    # mount -u /
    # mount -a -t ufs
    # adjkerntz -i
    # mergemaster -p
    # cd /usr/src
    # make installworld
    # mergemaster
    # reboot
    


    As you can see they are mostly the same except for some slight differences, such as,

    1) I run a swapon and handbook doesn't say to.
    2) After the first reboot into single user mode, the handbook has mergemaster without any options, whereas I use -Ui
    3) I run a make delete-old and the handbook doesn't.
    4) After a reboot I run a make delete-old-libs but the handbook doesn't.
    5) Why adjkerntz -i after updating?

    Can someone explain these differences to me and if my method needs to be updated to change those few steps?
     
    MNIHKLOM thanks for this.
  2. kpa

    kpa Well-Known Member

    Messages:
    4,080
    Thanks Received:
    803
    2) the -U option updates all files that have not been user modified automatically, the manual page says that this can be dangerous if there are major changes to the files that require changes to configuration. I use the -F flag instead that leaves files that have really changed or have my own modifications for my review, files that differ only by their version control ids are updated automatically with the -F flag. If run without any flags mergemaster(8) will ask about every single file if you want to update them.

    3) and 4) are optional in most cases but required if you upgrade to a higher major version, for example from 8.x to 9.0 or 9-STABLE.

    5) is needed to set the system time correctly, it's best run as the first step in single user mode even before mounting the filesystems.
     
    MNIHKLOM thanks for this.