Deployment

From Kiwix
Revision as of 09:42, 19 August 2011 by Kelson (talk | contribs) (→‎Library)
Jump to navigation Jump to search

With Deployment is meant the installation by someone or a group of people of kiwix on many computers. This can be kiwix or kiwix-serve, computers may have the same or different operatings systems ; hardware can also be non-homogenous. But within a deployment the content deployed is the same, this is more or less one version of Kiwix with the same pre-defined content.

Introduction

Currently, a lot of things are already possible and that is why we have already successful deployments. The problem is that:

  1. Not trivial to do
  2. Not everything is possible

If you want to deploy Kiwix, you need to prepare a "package" (or a way to get) :

  • Kiwix the software (for one or many HW & OSes)
  • Content, so the ZIM files
  • The full text search index
  • The library which links kiwix, content and index together.
  • Optionally a solution to install that (Windows installer, scripts, ...)

To copy this things to each computers the best ways are:

  • LAN (optionally wireless)
  • USB storage (flash or HD)
  • DVD

File should be copied and eventually installed.

Status

Please read following pages to be familiar with the solution we already have to prepare such things:

Remark: Currently kiwix is not able anymore to be spreaded as Windows portable version with content. During the library rewriting the availability to get library file with ZIM and search index relative paths were removed. This is a regression which need to be fixed.

Details

Kiwix Software

Kiwix is a software which does not need an install process: you may just copy the mandatory files somewhere and run it. Installation does mainly create a few icons, move the software in a "standard" place on the HD and propose also an easy way to remove it afterwards.

But we do not have static version of Kiwix for GNU/Linux, so this is not possible here to have a portable version because either to compile the software or to get the perfect package for your distribution. So we need to push the packaging in well used distributions and prepare static version of the most common architectures.

We also do not have a portable version (do not need install) for MacOS. But don't know if that is feasible and would be really useful.

On Windows, it works more or less. The problem are a few critical bugs and the fact that we do not have a version for x86_64.

Content

Content, as a format, is really portable and we don't see a problem on this side.

The problem is more the limitations of the file systems, especially FAT32 (mainly used for USB keys) which does not allow file over 4GB. Kiwix has no problem to deal with splited files which should simply follow a specific norm in their naming. File can not be splited with Kiwix itself, the user need an external tool like "cut" on linux.

Search index

Search index are perfectly portable from one OS to the other and from one file-systems to an other (files are still not to big to be a problem on FAT32). The only one issue I see is that often people complains about name of the index which are not really user-friendly (it is the ZIM file id + ".index") so they do not really know for which content is an index.

Library

The libray is the core element to know where is what? The library knows everything about content, indexes. Without the library Kiwix has no idea about all the data he can deal with.

Kiwix is able to deal with multiple files, at the start tries following:

  • It tries to list an open in readonly mode library files in ../data/library (on linux ../../share/kiwix/data/library). This is where to store the library if you want to make a portable kiwix or on a installed version. So information about these content can not be changed by the user.
  • and it opens the library.xml in the user profile in read/write mode.

the library.xml file can be written by Kiwix itself (but this is transparent for the user) or by a tool called kiwix-manage which was create recently. The problem are that kiwix-manage is still as a stub and works to setup online feed library.xml but not more. kiwix-manage also work only on Windows. kiwix-manage is also a command line tool, so not really trivial to use.

Most of the problem with the library file, is that values need to be modified to match a portable usage. The main modifications to do are changing the paths (for content and ZIM file) and also make them relative.

Installer

Distribution approaches

They are many possible way to distribute file:

  • Everything in one directory (this is what already exists) and this can be copied everywhere. This is the more simple

Current bugs & features requests

  • (TOP) Unable since beta version, as portable, to deal with embedded content (no relative path anymore in library.xml)
  • (TOP) No portable linux version
  • (TOP) Kiwix does not work with accented path on Windows
  • (TOP) Xapian has difficulties with old Windows and need additional libraries from vc86redist.exe
  • (NORMAL) 64 bits version of Kiwix for Windows
  • (NORMAL) People need a easy solution to cut ZIM files to make them portable
  • (NORMAL) kiwix-manage for windows
  • (NORMAL) improve kiwix-manage to make it able to prepare library file for portable usage
  • (NORMAL) kiwix-index for windows
  • (MINOR) No portable Mac version
  • (MINOR) index with user friendly name