Skip to content

ifreund/pkgbasify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 

Repository files navigation

pkgbasify

Automatically convert a FreeBSD system to use pkgbase.

Disclaimer

Both the pkgbasify tool and pkgbase itself are experimental. Running pkgbasify may result in irreversible data loss and/or a system that fails to boot. It is highly recommended to make backups before running this tool.

That said, I am not aware of any bugs in pkgbasify and have used it to successfully upgrade test systems. If you find a bug in pkgbasify please open an issue!

Behavior

pkgbasify performs the following steps:

  1. Make a copy of the etcupdate(8) current database (/var/db/etcupdate/current). This makes it possible for pkgbasify to merge config files after converting the system.
  2. Select a repository based on the output of freebsd-version(1) and create /usr/local/etc/pkg/repos/FreeBSD-base.conf.
  3. Select packages that correspond to the currently installed base system components.
    • For example: if the lib32 component is not already installed, pkgbasify will skip installation of lib32 packages.
  4. Install the selected packages with pkg(8), overwriting base system files and creating .pkgsave files as per standard pkg(8) behavior.
  5. Run a three-way-merge between the .pkgsave files (ours), the new files installed by pkg (theirs), and the old files in the copy of the etcupdate database.
    • If there are merge conflicts, an error is logged and manual intervention may be required.
    • .pkgsave files without a corresponding entry in the old etcupdate database are skipped.
  6. If sshd(8) is running, restart the service.
  7. Run pwd_mkdb(8) and cap_mkdb(1).
  8. Remove /boot/kernel/linker.hints.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages