1.1 --- a/README.txt Sat Jan 16 22:12:19 2010 +0100
1.2 +++ b/README.txt Sun Mar 21 01:28:59 2010 +0100
1.3 @@ -31,13 +31,16 @@
1.4 debootstrap Tested with 0.3.3.2ubuntu3 on Ubuntu Hoary 5.04, 1.0.7~feisty1
1.5 on Ubuntu Feisty 7.04, 1.0.20~hardy1 on Ubuntu Hardy
1.6
1.7 -New in userinstall 0.1.1 (Changes since userinstall 0.1)
1.8 ---------------------------------------------------------
1.9 +New in userinstall 0.2 (Changes since userinstall 0.1)
1.10 +------------------------------------------------------
1.11
1.12 * Fixed an argument parsing error in the user-setup script.
1.13 * Adopted lsb-release environment variables instead of new ones like
1.14 - DISTNAME.
1.15 + DISTNAME, exposing derivatives of these variables by default.
1.16 * Added explicit keyring package installation.
1.17 + * Added scripts for configuring and entering the chroot.
1.18 + * Added support for UML instance construction from distribution
1.19 + installations.
1.20
1.21 Configuration
1.22 -------------
1.23 @@ -45,26 +48,30 @@
1.24 If the system defaults are not to be used, or if userinstall is not installed
1.25 as a system package, the userinstall-defaults file supplied with the
1.26 distribution may be edited to specify the nature and location of the personal
1.27 -package manager. After commenting out or removing this line...
1.28 +package manager.
1.29
1.30 -source /etc/lsb-release
1.31 +The following settings can be edited:
1.32
1.33 -...the following settings can be edited:
1.34 -
1.35 -DISTRIB_ID This should reflect the distribution being used or, in
1.36 - special cases, a different distribution. Examples include
1.37 - Debian and Ubuntu.
1.38 +USERINSTALL_ID This should reflect the distribution being used or, in
1.39 + special cases, a different distribution. Examples
1.40 + include Debian and Ubuntu.
1.41
1.42 -DISTRIB_CODENAME This should reflect the version of the distribution being
1.43 - used and need only be altered in special situations (such as
1.44 - the creation of a sandbox for testing other distributions).
1.45 - Examples of codenames include hardy and jaunty for Ubuntu
1.46 - and lenny and squeeze for Debian. Note that the setup
1.47 - process may not work with different distributions due to
1.48 - library incompatibilities.
1.49 +USERINSTALL_CODENAME This should reflect the version of the distribution
1.50 + being used and need only be altered in special
1.51 + situations (such as the creation of a sandbox for
1.52 + testing other distributions).
1.53
1.54 -PACKAGEROOT The location of the personal package manager in the
1.55 - filesystem.
1.56 + Examples of codenames include hardy and jaunty for
1.57 + Ubuntu and lenny and squeeze for Debian. Note that the
1.58 + setup process may not work with different distributions
1.59 + due to library incompatibilities.
1.60 +
1.61 +PACKAGEROOT The location of the personal package manager in the
1.62 + filesystem.
1.63 +
1.64 +See the /etc/lsb-release file for example values describing your own system,
1.65 +with the DISTRIB prefix used instead of the USERINSTALL prefix for each of the
1.66 +settings.
1.67
1.68 If a completely new userinstall-defaults file is created, it is essential that
1.69 the above variables be defined so that the scripts know where to create or to
1.70 @@ -95,6 +102,19 @@
1.71
1.72 An URI must be specified as the "mirror" location, not a normal filename.
1.73
1.74 +Once the installation is complete, some post-installation is necessary:
1.75 +
1.76 +user-postsetup
1.77 +
1.78 +If a different distribution is being used for the package manager than that
1.79 +being run on the system, it might be necessary to specify a country code so
1.80 +that the configuration of package repositories can be performed successfully.
1.81 +For example, for repositories mirrored in the United Kingdom (UK):
1.82 +
1.83 +user-postsetup uk
1.84 +
1.85 +At this point, the package manager should be ready to use.
1.86 +
1.87 Adding Package Repositories to the Package Manager
1.88 --------------------------------------------------
1.89
1.90 @@ -180,3 +200,55 @@
1.91 export LD_LIBRARY_PATH=`./user-path /usr/lib`
1.92 export PYTHONPATH=`./user-path /usr/lib/python2.5/site-packages/`
1.93 export PYTHONPATH=${PYTHONPATH}:`./user-path /var/lib/python-support/python2.5`
1.94 +
1.95 +Entering the Package Manager
1.96 +----------------------------
1.97 +
1.98 +It is also possible to administer the package manager from within the
1.99 +installation:
1.100 +
1.101 +user-enter
1.102 +
1.103 +This should provide a "root" prompt which can then be used to issue commands
1.104 +within the package manager environment. For example:
1.105 +
1.106 +apt-get update
1.107 +
1.108 +Constructing UML Instances
1.109 +--------------------------
1.110 +
1.111 +For some applications, it can be desirable to provide a completely isolated
1.112 +environment for package installation and testing. This can be performed using
1.113 +the User Mode Linux (UML) software.
1.114 +
1.115 +To convert a package manager installation into a UML instance, start with the
1.116 +uml-postsetup script which changes the installation's configuration in a
1.117 +number of areas:
1.118 +
1.119 +uml-postsetup
1.120 +
1.121 +Then, as a privileged user, run the user-setupdev script to initialise some
1.122 +UML-specific device files:
1.123 +
1.124 +sudo uml-setupdev
1.125 +
1.126 +Since UML needs to see its filesystems as images, not directories within an
1.127 +existing filesystem, the uml-setupfs script needs to create these image files.
1.128 +For example, to create a root filesystem 1GB in size, along with a swap file
1.129 +512MB in size:
1.130 +
1.131 +uml-setupfs 4 512
1.132 +
1.133 +Again, as a privileged user, these images are then populated with the package
1.134 +manager contents as follows:
1.135 +
1.136 +uml-postsetupfs
1.137 +
1.138 +NOTE: Add Linux build process.
1.139 +
1.140 +Entering or Starting UML Instances
1.141 +----------------------------------
1.142 +
1.143 +To enter a UML instance, use the uml-enter script:
1.144 +
1.145 +uml-enter