> On Jun 6, 2016, at 2:50 PM, Robin Sommer <[email protected]> wrote:
> 
> - At install time ("cban install" or whatever) <repo> gets copied into
>  a subdirectory <name> at a global location <install-base> ("cp -rp
>  <repo> <install-base>/<name>"). Uninstallation means removing that
>  installation directory.

One thing to think about is a distinction between installed vs. enabled for 
scripts and plugins.

A good system that I have used is how debian sets things up for the apache 
configuration.

When you install the apache package they setup things like mods-available and 
mods-enabled directories:

root@b28027aa3d70:/# ls -l /etc/apache2/mods-available/|head
total 524
-rw-r--r-- 1 root root  100 Oct 24  2015 access_compat.load
-rw-r--r-- 1 root root  377 Oct 24  2015 actions.conf
-rw-r--r-- 1 root root   66 Oct 24  2015 actions.load
-rw-r--r-- 1 root root  843 Oct 24  2015 alias.conf
-rw-r--r-- 1 root root   62 Oct 24  2015 alias.load

root@b28027aa3d70:/# ls -l /etc/apache2/mods-enabled/|head
total 0
lrwxrwxrwx 1 root root 36 Jun  7 13:46 access_compat.load -> 
../mods-available/access_compat.load
lrwxrwxrwx 1 root root 28 Jun  7 13:46 alias.conf -> 
../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 Jun  7 13:46 alias.load -> 
../mods-available/alias.load
lrwxrwxrwx 1 root root 33 Jun  7 13:46 auth_basic.load -> 
../mods-available/auth_basic.load

if I install the libapache2-mod-php5 package I end up with it enabled 
automatically:

root@b28027aa3d70:/# ls -l /etc/apache2/mods-*/php*
-rw-r--r-- 1 root root 865 Apr 27 11:42 /etc/apache2/mods-available/php5.conf
-rw-r--r-- 1 root root  59 Apr 27 11:42 /etc/apache2/mods-available/php5.load
lrwxrwxrwx 1 root root  27 Jun  7 13:48 /etc/apache2/mods-enabled/php5.conf -> 
../mods-available/php5.conf
lrwxrwxrwx 1 root root  27 Jun  7 13:48 /etc/apache2/mods-enabled/php5.load -> 
../mods-available/php5.load

but then can easily disable it without uninstalling it:

root@b28027aa3d70:/# a2dismod php5
Module php5 disabled.
To activate the new configuration, you need to run:
  service apache2 restart
root@b28027aa3d70:/# ls -l /etc/apache2/mods-*/php*
-rw-r--r-- 1 root root 865 Apr 27 11:42 /etc/apache2/mods-available/php5.conf
-rw-r--r-- 1 root root  59 Apr 27 11:42 /etc/apache2/mods-available/php5.load


This is just hooked up in the apache config using

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

They also do this available/enabled setup for standalone conf files and 
sites(vhost configs)

The nice thing about this system is that the base installation can include 
standard modules that are present but not enabled by default:

root@b28027aa3d70:/# ls -l /etc/apache2/mods-*/cgi.*
-rw-r--r-- 1 root root 58 Oct 24  2015 /etc/apache2/mods-available/cgi.load
root@b28027aa3d70:/# a2enmod cgi
root@b28027aa3d70:/# ls -l /etc/apache2/mods-*/cgi.*
-rw-r--r-- 1 root root 58 Oct 24  2015 /etc/apache2/mods-available/cgi.load
lrwxrwxrwx 1 root root 26 Jun  7 13:56 /etc/apache2/mods-enabled/cgi.load -> 
../mods-available/cgi.load


The directory/symlink thing is just one implementation, automatically editing a 
special .bro file and adding/removing lines would work too.

So, the way this could work is that '$TOOL install foo' could both 'install' 
and 'enable' 'foo' and '$TOOL disable foo' could disable it without removing it.



-- 
- Justin Azoff


_______________________________________________
bro-dev mailing list
[email protected]
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev

Reply via email to