GithubHelp home page GithubHelp logo

mondieu's Introduction

mondieu

mondieu - portable alternative for freebsd-update.

mondieu is a simple replacement for freebsd-update. It allows you to just upgrade to whatever version of a FreeBSD release you want, as long as you have the releases' tarballs.

Just like freebsd-update it will scan your current filesystem and build a list of files that differ from the release. After confirming the list, it will be installed and you will get the chance to manually merge your config files. Unlike freebsd-update, this merging can't be done automatically lacking a common reference point for both releases.

Usage

mondieu is pretty easy to use and will take a couple of minutes to completely upgrade your system.

Issueing mondieu 10.1-RELEASE will download tarballs for 10.1-RELEASE from FreeBSD's primary source and install the files to your current system.

Optionally, these parameters can be used to customize mondieu's behaviour:

  • -a architecture (default: current architecture)
  • -d alternative chroot (default: /)
  • -h show you these settings
  • -F run `freebsd-update fetch install' afterwards
  • -p parts of FreeBSD that are considered (default: kernel,base)
  • -u hostname for fetching release (default: ftp.freebsd.org)
  • -U specific URL for fetching release archives. This overrides -u
  • -V show version
  • -w don't manually merge these files but overwrite with new version
  • -x ignore files for manual merge
  • -X ignore files for manual merge when matching this pattern
  • -y don't ask for confirmation, install the new files already (but still require manual merge, if needed)

Note: both -w and -x expect a single argument, so use quotes to define more files

beadm

Combine mondieu with beadm to create snapshots of your current filesystem before upgrading. When everything went smoothly, activate the snapshot as you current root filesystem and boot into it or otherwise revert:

beadm create myupgrade
beadm mount myupgrade /mnt
mondieu -d /mnt 10.1-RELEASE
beadm umount myupgrade
beadm activate myupgrade
reboot

Note: this will only work when your root filesystem has been prepared for this. Read beadm's HOWTO for instructions how you should prepare your filesystem to benefit from beadm.

ToDo

  • check signature of downloaded tarballs
  • support for tarballs on the filesystem instead of remote location
  • detection of which parts (eg. kernel, base and doc) should be installed

Known issues

  • merging configuration files cannot be done automatically since there is no common reference point for your current release and the one you're upgrading to.
  • same goes for deleting deprecated files, there is currently no way of knowing which files can be deleted.

Contributing

Please help me make this tool better. Send feedback or even a pull request and help improve where you can.

mondieu's People

Contributors

skoef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

akisys

mondieu's Issues

Any ideas? Not working.

Any idea on how to update a tier 2 device?

root@rpi:~ # uname -a
FreeBSD rpi 11.2-RELEASE FreeBSD 11.2-RELEASE #0 r335510: Fri Jun 22 02:35:12 UTC 2018 [email protected]:/usr/obj/arm.armv6/usr/src/sys/RPI-B arm

root@rpi:~ # ./mondieu 12.0-RELEASE
Fri Aug 3 23:03:54 MST 2018 ==> Preparing work space ... done
Fri Aug 3 23:03:54 MST 2018 ==> Fetching release 12.0-RELEASE ... kernel fetch: http://ftp.freebsd.org/pub/FreeBSD/releases/arm/12.0-RELEASE//kernel.txz: Not Found

Could not fetch http://ftp.freebsd.org/pub/FreeBSD/releases/arm/12.0-RELEASE//kernel.txz
Fri Aug 3 23:03:55 MST 2018 ==> Cleaning up ... done

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.