two instances of dccd (was Re: two instances of dccm)

Vernon Schryver vjs@calcite.rhyolite.com
Mon Jul 5 20:26:21 UTC 2004


> From: David Sparks 

> ./configure --disable-dccifd --disable-dccm --with-db-memory=1024 
> --without-sendmail --without-cgibin

Don't you need --homedir=/some/where ?


> I've created a new 'dcc' user and su to that user.  Using the configure 
> line above:
>
> adding --homedir=/home/dcc tries to install manpages and cdcc into a 
> privledged directories (ie /usr/local/bin)
>
> this also breaks the --without-cgibin so that option is removed, the 
> problem is:  mkdir: cannot create directory `/home/dccno': Permission denied

What happens if you add `./configure -with-uid=dccno` ?

> adding --disable-sys-inst still tries to install cdcc into a privledged 
> directory

I'm not sure that's a bug because of the lack of an obvious alternative
to /usr/local/bin for cdcc.
Does `./configure --bindir=/home/dccno/bin` work?


I just tried
    ./configure --disable-dccifd --disable-dccm --with-db-memory=1024
        --without-sendmail --without-cgibin -with-uid=XXX --disable-sys-inst
        --bindir=/tmp/g/bin --homedir=/tmp/g/dcc
   make install
and it all seemed to work.

I suspect --with-db-memory=1024 does not do what you expect, because
it sets the minimum RAM that dccd thinks is available for mmap()
of /var/dcc/dcc_db and /var/dcc/dcc_db.hash.


> This seems to indicate that the --with-installroot= option is broken.

On the contrary, I think you are trying to use --with-installroot for
other than its intended purpose.  Its intended purpose is to let you
build in one place as if it were someplace else, and then later copy
everything to the someplace else, such as building a binary "package."


> Being explicit about everything will build and install:
>
> ./configure --disable-sys-inst --disable-dccifd --disable-dccm 
> --with-db-memory=1024 --without-sendmail --homedir=/home/dcc 
> --bindir=/home/dcc/bin --libexecdir=/home/dcc/libexec 
> --mandir=/home/dcc/man --with-rundir=/home/dcc/run --disable-IPv6
>
> Unfortunately now start-dccd tries to do a `su` which fails.  

That's not entirely explicit.  You didn't specify a UID, so the
installation mechanisms assumed you want --with-uid=0


>                                                               I can 
> start the server manually but I have no idea how to get cdcc to query 
> the server:
>
> /home/dcc/bin/cdcc -h /home/dcc -c /home/dcc/ids 'id 32701' status
> DCC server 127.0.0.1 at 127.0.0.1 not responding

"-c /home/dcc/ids" is redundant given "-h /home/dcc"

On what UDP port is the server listening?  You can't have two dccd
processes listening on UDP port 6277 on a single IP address.
You may need to add -a,7726 or similar to DCCD_ARGS in the second
dcc_conf file and then use 
   cdcc -h homedir "id 32701; port 7726; status"


> Perhaps a better solution is to install into a chroot'd environment in 
> /var/dcc and give the server multiple IP addresses, one for each dccd?

I do not understand the problem being solved, but chroot is usually
unnecessarily painful.


Vernon Schryver    vjs@rhyolite.com



More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.