manpagez: man pages & more
man darwinup(1)
Home | html | info | man
darwinup(1)               BSD General Commands Manual              darwinup(1)


     darwinup -- Install, uninstall, and manage roots


     darwinup [-dfnv] [-p path] subcommand [arguments ...]


     darwinup allows you to manage roots, or archives, of files that replace
     parts of your system. This is useful for installing a new version of a
     library or tool on your system while allowing you to uninstall the files
     and revert back to the originals safely and easily.


     -d       Do not run helpful automation. See HELPFUL AUTOMATION below.

     -f       Force. Some operations will fail gracefully due to potentially
              unsafe situations, such as a root that installs a file where a
              directory is.  In order to have darwinup continue through such a
              situation, you can pass the -f option.

     -n       Dry run. Darwinup will go through an operation, including ana-
              lyzing the root(s) and printing the state/change symbol, but no
              files will be modified on your system and no records will be
              added to the depot.  This option implies -d.

     -p [path]
              Prefix path. Normally, darwinup will operate on the boot parti-
              tion. You can use the -p option to have darwinup work on another
              partition. You can provide any arbitrary path, it does not need
              to be a mount point.

     -r       Restart. Gracefully restart after all operations are complete by
              telling Finder to restart.

     -v       Verbose. This option causes darwinup to print extra information.
              You can pass 2 or 3 v's for even more information, but that is
              usually only needed for development and debugging of darwinup


     Note that the path and archive options listed below support globbing and
     multiple items. See the EXAMPLES section below for more details.

     files archives
              List the files and directories in the archive.

     install path
              Install the root at path.

     list [archive]
              List archives that are installed. You may optionally provide an
              archive specification to limit which archives get listed.

     rename archive name
              Rename an archive.

     uninstall archives
              Uninstall the specified archive.

     upgrade path
              Find the last archive that was installed with the same name
              (basename of path), and replace it with the root at path.

     verify archive
              List all of the information about archive.  This includes status
              letters detailing how the archive differs from whats on disk


     ?        Unknown state. Probably a bug.

     !        Missing file during uninstall. Darwinup expected a file or
              directory to exist, but it did not. This could be a bug in dar-
              winup, but most likely another tool or software update removed a
              file that darwinup had been tracking. It can also be caused by
              an installation failing due to an object changing type (see
              FORCING OPERATIONS below), and the subsequent rollback finding
              the root only partially installed. Since these all happen during
              uninstall, they are typically safe to ignore, since darwinup was
              going to delete the object anyway.

     A        Added. No previous file or directory existed so the file or
              directory was added to your system.

     E        External change. The file you are installing is different than
              the last file you installed, but it is identical to what was
              actually found on disk. This probably means something manually
              installed a root or software update without darwinup knowing
              about it. This is usually harmless.

     M        Mode change. Only changes to permission or ownership were needed
              to uninstall the file or directory.

     R        Removed. No previous file or directory existed, so the uninstall
              process removed the file.

     U        Updated. During installation, the file or directory replaces an
              existing object at the same path. During uninstallation, the
              previous version of the file was restored.


              You can install archive files or directories by specifying a
              relative or absolute path. If the path is a directory, all files
              below it will be installed as a single root. If the path points
              to a file, it must be one of the suported archive file types as
              described in the usage statement.

              You can install files or directories from another host via
              rsync/ssh.  The files/directories will be downloaded to your
              machine and then installed like any other root.

              You can install files from an archive hosted on an HTTP/HTTPS
              server. The archive file will be downloaded using curl to your
              machine and then installed like any other archive file. You can
              not point darwinup at a directory hosted via HTTP or HTTPS, only
              archive files such as tarballs.


     When running a subcommand which takes an archive argument, you can use
     one or more of the following items to specify which archive to operate
     on. You can mix and match any of them as needed.  You can use the list
     subcommand with these specifications to see what will match.

     serial   You can specify an archive with its serial number, which can be
              found using the list subcommand.

     uuid     You can specify an archive with its UUID, which can be found
              using the list subcommand.

     name     You can specify an archive with its name, which can be found
              using the list subcommand.

     newest   The newest keyword will match the one archive which was most
              recently installed. This should always be the first archive

     oldest   The oldest keyword will match the one archive which was
              installed the longest time ago. This should always be the last
              archive listed.

              The superseded keyword will match zero or more archives. An ar-
              chive is superseded if every file it contains is contained in an
              archive that was (and still is) installed after it. A file in an
              archive can also be superseded by external changes, such as
              operating system updates. When uninstalling a superseded ar-
              chive, you should never see any status symbols, since being
              superseded means there is a newer file on disk.

     all      The all keyword will match all archives. If you specify extra
              verbosity with -vv, then rollback archives will also be matched
              by the all keyword. This means that darwinup -vv uninstall all
              will attempt to uninstall rollback archives, which will print a
              message about not being able to uninstall rollback archives.
              This is normal and not a problem.


     There are 2 cases where darwinup will require you to pass the force (-f)
     option before proceeding with an operation.

     Object Type Change
              If you install an archive which contains a file with the same
              path as a directory on your system, or vice versa, darwinup will
              give you a error about not doing that unless you really want to
              force it. If you do force the operation, darwinup will delete
              the existing object and replace it with the object from the
              root. This can happen when a directory full of files gets pack-
              aged up in some opaque file, like xibs/nibs. If you expect this
              "type change", then it is probably safe to force the operation.

     Uninstall a root from an older base system
              Darwinup remembers the version (build) of the operating system
              when a root is installed. The reason for this is darwinup saves
              the old (replaced) files during the installation procedure.
              Those backups may have come from the older operating system, and
              thus are not necessarily compatible with the current build of
              the operating system. So if you try to uninstall an archive that
              had been installed on a different version of the operating sys-
              tem, darwinup will stop and provide a message asking you to
              force the operation if you really want to. If the files you are
              uninstalling are all superseded, then you should not get this
              error as the backup copies will not be used anyway.


     Darwinup tries to detect common situations and run external tools that
     you would otherwise have to remember to run yourself. The "dry run" (-n)
     and "disable automation" (-d) options prevent any of the following from

     Dyld Cache
              If a root modifies any file, then darwinup will run
              update_dyld_shared_cache unless the -d option is specified.

     Kernel Extensions
              If a root modifies a file under /System/Library/Extensions, then
              darwinup will update the mtime of /System/Library/Extensions to
              ensure that the kext cache is updated during the next boot.


     Install files from a tarball
              $ darwinup install library-1.2.3.tar.gz

     Install several directories from /tmp/
              $ darwinup install /tmp/*/*~dst/

     Uninstall everything
              $ darwinup uninstall all

     See what archives have been superseded and then uninstall them
              $ darwinup list superseded $ darwinup uninstall superseded

     Uninstall several archives by serial, the oldest one, and one named
              $ darwinup uninstall 9 16 myroot oldest

     Install a root from
              $ darwinup install http://src.macos-


     rsync(1), curl(1), tar(1), gzip(1), ditto(1), update_dyld_shared_cache(1)

Darwin                           16 Apr, 2010                           Darwin

Mac OS X 10.7 - Generated Thu Aug 11 07:52:04 CDT 2011
© 2000-2021
Individual documents may contain additional copyright information.