Ports - proposal - To handle Multiple instances
Vizion
vizion at vizion.occoxmail.com
Fri Mar 30 11:28:23 UTC 2007
> Sent: Friday, March 30, 2007 4:06 AM
> To: ports at freebsd.org
> Cc: Lowell Gilbert; Wesley Shields
> Subject:
WAS ORIGINALLY
RE: joomla ports - installation- multiple virtual hosts
>
>
> >>
> .. 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
>
On reflection I thought it better to start a generic thread to discuss this away from the www/joomla instance discussion.
David
More information about the freebsd-ports
mailing list