Handle better images with distro="unknown"
[snf-image-creator] / docs / install.rst
index 9b7a9ab..dfd0dd4 100644 (file)
@@ -1,13 +1,12 @@
 Installation
-============
+^^^^^^^^^^^^
 
-This guide describes how to install snf-image-creator on an Ubuntu 12.04 LTS
-system. It it highly recommended to have virtualization capable hardware.
-snf-image-creator can work on processors that do not support virtualization but
-it will be extremely slow.
+This guide describes how to install snf-image-creator on a Linux system. It is
+highly recommended to have virtualization capable hardware. snf-image-creator
+will work on processors that do not support virtualization but it will be slow.
 
 Dependencies
-------------
+============
 
 snf-image-creator depends on the following programs:
 
@@ -15,36 +14,199 @@ snf-image-creator depends on the following programs:
  * Python setuptools [http://pypi.python.org/pypi/setuptools]
  * Python Dialog [http://pythondialog.sourceforge.net/]
  * Python bindings for libguestfs [http://libguestfs.org/]
- * Kamaki [https://code.grnet.gr/projects/kamaki]
- * Python Sybprocess Wrapper [http://pypi.python.org/pypi/pbs]
+ * Python interface to sendfile [http://pypi.python.org/pypi/pysendfile]
+ * pyparted [https://fedorahosted.org/pyparted/]
+ * rsync [http://rsync.samba.org/]
+ * ./kamaki [https://code.grnet.gr/projects/kamaki]
+ * Python sh (previously pbs) [https://github.com/amoffat/sh]
  * ANSI colors for Python [http://pypi.python.org/pypi/ansicolors]
  * progress [http://pypi.python.org/pypi/progress]
+
+The above dependencies are resolved differently, depending on the installation
+method you choose. There are two installation methods available:
+
+#. `Installation using packages <#install-snf-image-creator-using-packages>`_
+
+#. `Installation from source <#install-snf-image-creator-from-source>`_
+
+Install snf-image-creator using packages
+========================================
+
+Ubuntu
+------
+
+For *Ubuntu 12.04 LTS* and *12.10* systems, you can use our official packages
+found in *grnet/synnefo* Lauchpad PPA.
+
+Add the synnefo PPA in your system:
+
+.. code-block:: console
+
+   $ sudo apt-add-repository ppa:grnet/synnefo
+   $ sudo apt-get update
+
+If *apt-add-repository* is missing, first install:
+
+*software-properties-common* (Ubuntu 12.10):
+
+.. code-block:: console
+
+   $ sudo apt-get install software-properties-common
+
+Or *python-software-properties* (Ubuntu 12.04):
+
+.. code-block:: console
+
+   $ sudo apt-get install python-software-properties
+
+After the synnefo repository is set up, you should be able to list
+snf-image-creator by calling:
+
+.. code-block:: console
+
+   $ apt-cache showpkg snf-image-creator
+
+Install the package by issuing:
+
+.. code-block:: console
+
+   $ sudo apt-get install snf-image-creator
+
+.. note::
+   If you are asked during the installation to create/update a
+   "supermin appliance", choose "Yes".
+
+.. warning::
+   In *Ubuntu 12.10* the current package of libguestfs (1.18-2) is broken. Take
+   a look at the open `bug report <https://bugs.launchpad.net/ubuntu/quantal/+source/libguestfs/+bug/1086974>`_.
+   Until version 1.18-2ubunut1 is out, you may workaround this problem by
+   creating a symlink like this:
+
+   *sudo ln -s /usr/lib/guestfs /usr/lib/x86_64-linux-gnu/guestfs*
+
+Fedora
+------
+
+For *Fedora 17* you can use our official packages hosted at the *synnefo*
+repository of the openSUSE Build Service.
+
+Add the *synnefo* repository for *Fedora 17* to *yum*:
+
+.. code-block:: console
+
+   $ cd /etc/yum.repos.d
+   $ wget http://download.opensuse.org/repositories/home:/GRNET:/synnefo/Fedora_17/home:GRNET:synnefo.repo
+
+To list the *snf-image-creator* package use the following command:
+
+.. code-block:: console
+
+   $ yum info snf-image-creator
+
+Install the package by issuing:
+
+.. code-block:: console
+
+   $ yum install snf-image-creator
+
+CentOS
+------
+
+For *CentOS 6* you can use our official packages hosted at the *synnefo*
+repository of the openSUSE Build Service.
+
+Add the *synnefo* repository for *CentOS 6* to the yum repositories list:
+
+.. code-block:: console
+
+   $ cd /etc/yum.repos.d
+   $ wget http://download.opensuse.org/repositories/home:/GRNET:/synnefo/CentOS_CentOS-6/home:GRNET:synnefo.repo
+
+Check the `Fedora <#fedora>`_ instructions on how to install the software.
+
+Arch Linux
+----------
+
+For *Arch Linux* there are **unofficial** packages in AUR:
+https://aur.archlinux.org/packages/snf-image-creator/ kindly provided by
+Axilleas Pipinellis <axilleas@archlinux.info>.
+
+.. note::
+    Those packages are not maintained by the Synnefo development team.
+
+    Please direct package-specific questions to Axilleas Pipinellis <axilleas@archlinux.info>,
+    Cc: the Synnefo development team <synnefo-devel@googlegroups.com>
+
+To install the package you may use *yaourt*. Create and install
+the *yaourt* package:
+
+.. code-block:: console
+
+   $ wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
+   $ tar -xvf package-query.tar.gz
+   $ cd package-query
+   $ makepkg -s
+   $ pacman -U package-query-<VERSION>-<ARCH>.pkg.tar.xz
+   $ cd ..
+   $ wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
+   $ tar -xvf yaourt.tar.gz
+   $ cd yaourt
+   $ makepkg -s
+   $ pacman -U yaourt-<VERSION>-<ARCH>.pkg.tar.xz
+
+Install *snf-image-creator* using yaourt:
+
+.. code-block:: console
+
+   $ yaourt -Sa snf-image-creator
+
+Install snf-image-creator from source
+=====================================
+
+Manually install the following dependencies:
+
+ * Python 2 [http://www.python.org/]
+ * Python setuptools [http://pypi.python.org/pypi/setuptools]
+ * Python Dialog [http://pythondialog.sourceforge.net/]
+ * Python bindings for libguestfs [http://libguestfs.org/]
  * Python interface to sendfile [http://pypi.python.org/pypi/pysendfile]
+ * pyparted [https://fedorahosted.org/pyparted/]
+ * rsync [http://rsync.samba.org/]
+
+In Ubuntu you can do this using:
+.. code-block:: console
 
-The first four programs (python2, setuptools, libguestfs and Python Dialog)
-need to be installed manually by the user. In an Ubuntu 12.04 LTS system this
-can be archived using packages directly provided by the distribution, using
-the following command:
+   $ sudo apt-get install python-setuptools python-guestfs python-dialog \
+     python-sendfile python-parted rsync
+
+If you are using Ubuntu 12.10 you also need to install libguestfs-tools:
 
 .. code-block:: console
 
-   $ apt-get install python-setuptools python-guestfs python-dialog
+   $ sudo apt-get install libguestfs-tools
 
-The rest of the dependencies will be resolved by setuptools.
+.. note::
+   If you are asked during the installation to create/update a
+   "supermin appliance", choose "Yes".
 
 Python Virtual Environment
 --------------------------
 
-Since snf-image-creator and the rest of it's dependencies won't be installed
-using packages provided by the distribution it's better to work in an isolated
-python virtual environment (virtualenv). Installing the Virtual Python
-Environment builder in Ubuntu can be accomplished using the following command:
+Since snf-image-creator and the rest of its dependencies won't be installed
+using packages, it's better to work in an isolated python virtual environment
+(virtualenv).
+
+Install the Virtual Python Environment builder:
+http://pypi.python.org/pypi/virtualenv.
+
+For Ubuntu use the following command:
 
 .. code-block:: console
 
-   $ apt-get install python-virtualenv
+   $ sudo apt-get install python-virtualenv
 
-Now, create a new python virtual environment like this:
+Then create a new python virtual environment:
 
 .. code-block:: console
 
@@ -56,45 +218,50 @@ and activate it by executing:
 
    $ source ~/image-creator-env/bin/activate
 
-You can later deactivate it using the following command:
+You may later deactivate it using:
 
 .. code-block:: console
 
    $ deactivate
 
-
 kamaki Installation
 -------------------
 
-Install kamaki from source, by cloning it's repository:
+Refer to `./kamaki documentation <http://docs.dev.grnet.gr/kamaki/latest/installation.html>`_
+for instructions. You may install kamaki from source inside the virtualenv
+you've created above or by using binary packages if they are available for your
+distribution.
 
-.. code-block:: console
-
-   $ git clone https://code.grnet.gr/git/kamaki
-   $ cd kamaki
-   $ ./setup build
+snf-image-creator Installation
+------------------------------
 
-Then, make sure you are within the activated virtual environment before you
-execute:
+Download the latest snf-image-creator source package from
+`here <https://code.grnet.gr/projects/snf-image-creator/files>`_ and install it
+inside the virtualenv using the following commands:
 
 .. code-block:: console
 
-   $ ./setup install
+   $ tar -xf snf_image_creator-<VERSION>.tar.gz
+   $ cd snf_image_creator-<VERSION>
+   $ python ./setup.py install
 
-snf-image-creator Installation
-------------------------------
-
-Install snf-image-creator the same way:
+Alternatively, you can install the bleeding edge version of the software by
+cloning its git repository:
 
 .. code-block:: console
 
    $ git clone https://code.grnet.gr/git/snf-image-creator
    $ cd snf-image-creator
-   $ ./setup build
+   $ python ./setup.py install
 
-And from within the virtual environment execute:
+To do the latter, you'll need to have git (http://git-scm.com/) installed.
+For ubuntu this can be done using:
 
 .. code-block:: console
 
-   $ ./setup install
+   $ sudo apt-get install git
+
+.. warning::
+   Keep in mind that the bleeding edge version may be unstable or even
+   unusable.