joomla ports - installation- multiple virtual hosts

Vizion vizion at vizion.occoxmail.com
Fri Mar 30 11:06:16 UTC 2007


>>
.. much deleted
>>

The past dialogue has encouraged me to an idea to discover whether anyone thinks its implementation could provide a generic solution for any port needing multiple installation instances. It may be there is another way of achieving the same goal but here is my two pennyworth. 

Content management Systems, galleries and forums spring immediately to mind , as natural beneficiaries but I am sure that there may be other applications including network managed installations to multiple servers.

Unfortunately I do not believe I have the experience to build the solution I propose nor do I know whether it would require a large or small amount of work.

Here are the bones of the idea which should be a seperate port which  have tried to describe as concisely as I can. Lets call it IGI (for Instance generator and Installer).

here is what I see IGI doing:
1. IGI is run in a port directory (we will call this the INSTANCE_ROOT (e.g. www/joomla). The idea is that where a multiple instance is required there will be no installation from the ROOT_INSTANCE but only from a PORT_INSTANCE (see below). 

I envisage IGI taking the following minimal parameters:

IGI [[-N number |-D number | -A number [[installdir ....] |filename]]] | [-M [[number ....]|[number_range]] | [-I [[number ....]|[number_range]] | [-MIC [[number ....]|[number_range]]] |[-U [[number ....]|[number_range]]

-N number
IGI reads the installdir entries either from the command line or a file. IGI stores them, checks each one for validity, and counts to ensure the number of installdirs is equal to ${number}. IGI returns an error if the checks fail.
IGI looks at current port, and creates a ${number} of New directories named ${CATEGORIES}/${PORTNAME}_IG${x} where x is initially 0000 for the first directory created and incremented by 1 as each subsequent directory is created until the number of directories created = ${number}.IGI returns an error if there is a failure.

IGI records the new directories in a file contained in a dedicated IGI working directory. Lets call this IGIdb.

IGI then
# make clean 
and copies the current port into each of the newly created directories to create a new PORT_INSTANCE. In the process IGI amends the PORTNAME= line in the Makefile for each to ${PORTNAME}_IG${x}.
It also adds the line
ROOT_PORT= ${ROOT_PORT}to the Makefile
IGI then modifies the install dir for each instance, using the list of install dirs in sequence. 
The modifications are logged to IGIdb

IGI then if there exists a file named IGI_${ROOTPORT} in the port then IGI runs any commands it contains. This feature would enable port maintainers to piggy back on IGI to create additional customisation when multiple instances are installed (e.g to meet logging requirements).
A record is logged into IGIdb

-D number
IGI searches ports tree within current category for a port for ${CATEGORIES}/${PORTNAME}_IG${number} if it finds it it moves to the directory and Deinstalls that instance.
A record is logged into IGIdb

-A number
This is simply to Add a number of additional instances when a number of instances already exist.
A record is logged into IGIdb

-M [[number ....]|[number_range] 
IGI moves to each PORT_INSTANCE identified by the ${number} or {number_range} and 
# make
for each PORT_INSTANCE
A record is logged into IGIdb

-I [[number ....]|[number_range]] 
IGI moves to each PORT_INSTANCE identified by the ${number} or {number_range} and 
# make install
for each PORT_INSTANCE
A record is logged into IGIdb

-MIC[[number ....]|[number_range]
IGI moves to each PORT_INSTANCE identified by the ${number} or {number_range} and 
# make install clean
for each PORT_INSTANCE
A record is logged into IGIdb

-U [[number ....]|[number_range]
This command should be run after cvsup of the ports. I envisage as a tool to manage the upgrade of each PORT_INSTANCE using the information contained in IGIdb to identify the upgrade target. I have no idea how this might work but my guess is that someone with more experience than I might feel it has some future.

Ok

Is this doable??
Would it work?
Would it have value?
Is there a better way or existing tool/tools that can do this?

david



More information about the freebsd-ports mailing list