Setting up a CVS 'pserver' on Slackware Linux 10.1

Category: Software and Systems Engineering
Author: Sean O'Donnell
Fri, Jun. 24th, 2005 @ 2:20:22 (MDT)

This example will demonstrate a basic approach to setting up a CVS pserver on the Slackware Linux v10.1 Operating System. This example should be able to be applied to any other linux distro as well, given some appropriate tweeks.

Update/Disclaimer: I highly suggest using SSH to access your CVS repository, rather than this pserver approach.

The first step in this process, is to login as root.

$ su

Once you've logged in as root, you'll want to create a new group for the cvs user account.

$ groupadd cvs

You should now have a new group named 'cvs'.

The next step is to add the user account...

$ useradd  -g cvs -m cvs; passwd cvs;

You should now have a new user named 'cvs' added to your system, associated with the 'cvs' group, with a the following home directory: '/home/cvs'.

You should have also been prompted to set the 'cvs' user account password.

Now that you have the cvs user and user-home directory setup, you'll want to create the Repository Root Directory...

$ mkdir /home/cvs/CVSROOT

Then, you'll want to change the ownership of that directory...

$ chown cvs:cvs /home/cvs/CVSROOT

Next we'll need to edit our '/etc/inetd.conf' file, by adding the following line(s):

# /etc/inetd.conf 
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvs pserver

I don't normally run inetd, or any of the related protocols/services, mainly for security reasons, so I've commented-out all of the other protocols/services, only to allow cvspserver to be used.

Finally, if you are not already running inetd, you can do so now.

$ inetd

This should start the CVS Server.

To ensure that the server is now running, you should try the following command:

$ netstat -taupox | grep cvspserver

You should see results similar to the following:

tcp 0 0 *:cvspserver *:* LISTEN 29958/inetd off (0.00/0/0)

If the CVS Server is running, you can now attempt to connect to the cvs server (from a remote machine)...

$ cvs -d :pserver:cvs@hostname:/home/cvs login

You should be prompted for the cvs account password.

The 'cvs ... login' command should have created a file '~/.cvspass, which will allow you to simply execute commands without being prompted for a password again.

You can now attempt to import your current project into the cvs server, from the localhost environment...

$ cd ~/public_html/current/project/example
$ cvs -d:pserver:cvs@localhost/home/cvs import -m "Initial Import" projectname vendor revision

The command above should import the '~/public_html/current/project/example' directory, with the comment 'Initial Import', into the 'projectname' directory of the CVS Server Repository.

You'll want to edit the command above to fit your needs, including the 'vendor' and 'revision'.

Copyleft (<) 1998-2019