40

Since there is only one TeX server in Australia, I am thinking to initiate negotiations with my institution to host a TeX repository on the website of University.

First of all, please give me some hints/clues on how should I convince the university for this. In the other words, what is the advantages for university to host such a repository?

Also, I am interested to know what is the actual figures for such TeX repositories? For example:

  • How much physical space is required (i.e.15GB)?
  • How many times a year should TeX repositories get updated by new versions of TeX packages?
  • Time, resources, staff required for maintenance of the repository
  • How much data is downloaded from TeX repository per day/month?
8
  • 2
    Every night I mirror the TeX Live repo for me. I have more than just one or two computers, so having my own repo is quite comfortable. For just TeX Live I need about 2 GB. Concerning your questions: a) no idea how much the complete repo takes b) do it every night via cronjob c) once the cron job is set up correctly => 0 work d) I know the German dante repo has several Terabyte of data transfer volume. Jun 15, 2013 at 16:31
  • 6
    +1 Good luck! :) I sincerely wish you can get it to work and am happy to see people who take the plunge and so it!
    – Count Zero
    Jun 15, 2013 at 16:35
  • 11
    You would probably be better addressing this to the ctan maintainers (who are the only ones who know the figures) rather than to a public forum (where it may be considered off topic) you can mail them at ` ctan at ctan.org ` Jun 15, 2013 at 16:47
  • 9
    Adding to David's comment, check Becoming a CTAN Mirror. I did not have a hard time trying to convince my university to host it: I asked if the /pub dir was free to host a CTAN Mirror and told them we only had one mirror in Brazil. I think the maintainers' mathematical background persuaded them :)
    – henrique
    Jun 15, 2013 at 18:30
  • 3
    @antmw1361 Maybe you could answer your own question with what's worked for you, what hasn't worked, etc. so that people looking for this sort of thing in the future will be able to find it? Thanks, and good luck!
    – Sam Whited
    Sep 13, 2013 at 20:52

1 Answer 1

16

If you become an official CTAN mirror:

  1. How much physical space is required (i.e.15GB)?

    32GB (2013: between 20GB and 30GB).

  2. How many times a year should TeX repositories get updated by new versions of TeX packages?

    Once a day.

  3. Time, resources, staff required for maintenance of the repository

    One day to install, configure, initialize and test your server (BSD* or Linux + Apache + Cron job to perform automatic mirroring operation).

    One minute per day to verify the automatic mirroring operation.

  4. How much data is downloaded from TeX repository per day/month?

    Depending on the number of users and the bandwidth of your server (my public mirror in 2016: between 1500GB and 2500GB per month).

Example of cron job (FreeBSD):

#!/usr/bin/perl -w
use strict;
use warnings;
my $server = "rsync.dante.ctan.org";
my $local_copy = "/var/ctan-mirror";
my @rsync_comm =  (
           "/usr/local/bin/rsync",
           "-a",
           "--delete",
           "--no-motd",
           "--stats",
           "rsync://$server/CTAN/",
           $local_copy,
          );

my $date = localtime();
print "$date: Starting CT(eX)AN synchronisation...\n";
my $status = system @rsync_comm;
if ($status != 0) {
  print "WARNING !!!\n";
  if ($? == -1) {
    print "failed to execute: $!\n";
  } elsif ($? & 127) {
    printf "child died with signal %d, %s coredump\n",
      ($? & 127),  ($? & 128) ? 'with' : 'without';
  } else {
    printf "child exited with value %d\n", $? >> 8;
  }
}
$date = localtime();
printf "fix permissions...\n";
system("/usr/bin/find '$local_copy' -type f -perm +0111 -ls -exec chmod 644 {} \\; | wc -l");
print "$date: Ending CT(eX)AN synchronisation...\n";

Example of Apache (2.2) configuration:

<VirtualHost *:80>

  ServerName ctan.example.com
  DocumentRoot /var/ctan-mirror

  <Directory "/var/ctan-mirror">
    Options Indexes FollowSymLinks
    IndexOptions FancyIndexing NameWidth=* VersionSort HTMLTable
    IndexOptions Charset=UTF-8 SuppressIcon SuppressRules

    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>

</VirtualHost>
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .