Difference between revisions of "Deployment"
Line 91: | Line 91: | ||
* (MINOR) No portable Mac version | * (MINOR) No portable Mac version | ||
* (MINOR) index with user friendly name | * (MINOR) index with user friendly name | ||
* (MINOR) create kiwix-install-content for linux |
Revision as of 10:45, 19 August 2011
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:
- Not trivial to do
- 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:
- Directory structure for portable version of Kiwix (Windows)
- The command line tool to build libraries
- The XML library file format
- Old script used to build portable version of Kiwix (ZIP file) with content like available at http://download.kiwix.org/portable/
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
As Kiwix runs well (at least should) as portable version, installers are not mandatory. But If you want to provide all users on a computer, a well integrated software solution and maybe also benefit von the system upgrades, managments tools, etc... This is better to install it.
For Windows, we have an installer which is not bad. This is a binary done with the help of NSIS. This bbinary is able to install kiwix and custom content. The installer is like a sophisticated copier, it just copy files from specific directories where the software and the content are to the target directory. The installer works on a portable version of Kiwix and you simply need to but the content you want in the "data" directory and this will be installed. To make it short, you do not need to rebuild an installer for each type of content.
On Linux, the standard way to install a software is the package and I think this should not be different, that means that I don't think this would be a good idea to make a install script for a portable static compiled version of Kiwix. So, here the challenge is to start including kiwix in distro. package repository. That also means that the question is still open for the the content: how to install content on Linux? Maybe a script called kiwix-install-content would be useful?
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
- (NORMAL) Add Kiwix to Debian package repository
- (NORMAL) Add Kiwix to Fedora package repository
- (MINOR) No portable Mac version
- (MINOR) index with user friendly name
- (MINOR) create kiwix-install-content for linux