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 will 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
============
* 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 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]
- * Python interface to sendfile [http://pypi.python.org/pypi/pysendfile]
-The first four programs (python2, setuptools, Python-Dialog, and libguestfs)
-need to be installed manually by the user. In an Ubuntu 12.04 LTS system this
-can be achieved by installing packages provided by the distribution, using the
-following command:
+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
- $ apt-get install python-setuptools python-guestfs python-dialog \
- python-gevent python-dev
+ $ sudo apt-add-repository ppa:grnet/synnefo
+ $ sudo apt-get update
-The rest of the dependencies will be automatically resolved by setuptools.
-Keep in mind though that git needs to be installed to download the source
-files. You can use the following command:
+If *apt-add-repository* is missing, first install:
+
+*software-properties-common* (Ubuntu 12.10):
.. code-block:: console
- $ apt-get install git
+ $ sudo apt-get install software-properties-common
-Python Virtual Environment
-==========================
+Or *python-software-properties* (Ubuntu 12.04):
-Since snf-image-creator and the rest of it's dependencies won't be installed
-using packages, 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:
+.. 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-get install python-virtualenv
+ $ apt-cache showpkg snf-image-creator
-Now, create a new python virtual environment like this:
+Install the package by issuing:
.. code-block:: console
- $ virtualenv --system-site-packages ~/image-creator-env
+ $ sudo apt-get install snf-image-creator
-and activate it by executing:
+.. 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
- $ source ~/image-creator-env/bin/activate
+ $ cd /etc/yum.repos.d
+ $ wget http://download.opensuse.org/repositories/home:/GRNET:/synnefo/Fedora_17/home:GRNET:synnefo.repo
-You can later deactivate it using the following command:
+To list the *snf-image-creator* package use the following command:
.. code-block:: console
- $ deactivate
+ $ yum info snf-image-creator
+
+Install the package by issuing:
+
+.. code-block:: console
+
+ $ yum install snf-image-creator
+CentOS
+------
-snf-common Installation
-=======================
+For *CentOS 6* you can use our official packages hosted at the *synnefo*
+repository of the openSUSE Build Service.
-Install snf-common from source, by cloning it's repository:
+Add the *synnefo* repository for *CentOS 6* to the yum repositories list:
.. code-block:: console
- $ cd ~
- $ git clone https://code.grnet.gr/git/synnefo
- $ cd synnefo/snf-common
- $ python setup.py build
+ $ 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>.
-Then, make sure you are within the activated virtual environment before you
+.. 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
- $ python setup.py install
+ $ 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
-kamaki Installation
-===================
+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
+
+ $ 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
+
+ $ sudo apt-get install libguestfs-tools
+
+.. note::
+ If you are asked during the installation to create/update a
+ "supermin appliance", choose "Yes".
+
+Python Virtual Environment
+--------------------------
-Install kamaki from source, by cloning it's repository:
+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
- $ cd ~
- $ git clone https://code.grnet.gr/git/kamaki
- $ cd kamaki
- $ ./setup.py build
+ $ sudo apt-get install python-virtualenv
-As above, make sure you are within the activated virtual environment before you
-execute:
+Then create a new python virtual environment:
.. code-block:: console
- $ ./setup.py install
+ $ virtualenv --system-site-packages ~/image-creator-env
+
+and activate it by executing:
+
+.. code-block:: console
+
+ $ source ~/image-creator-env/bin/activate
+
+You may later deactivate it using:
+
+.. code-block:: console
+
+ $ deactivate
+
+kamaki Installation
+-------------------
+
+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.
snf-image-creator Installation
-==============================
+------------------------------
-Install snf-image-creator the same way:
+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
+
+ $ tar -xf snf_image_creator-<VERSION>.tar.gz
+ $ cd snf_image_creator-<VERSION>
+ $ python ./setup.py install
+
+Alternatively, you can install the bleeding edge version of the software by
+cloning its git repository:
.. code-block:: console
- $ cd ~
$ git clone https://code.grnet.gr/git/snf-image-creator
- $ git checkout stable-0.1
$ cd snf-image-creator
- $ ./setup.py 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.py install
+ $ sudo apt-get install git
+
+.. warning::
+ Keep in mind that the bleeding edge version may be unstable or even
+ unusable.
+