ViewVC Installation
La procédure d'installation présentée ci dessous a été effectuée sous Ubuntu en se basant sur le fichier INSTALL dans l'archive téléchargée.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Installation initiale
Quelques dépendances sont nécessaire pour l'utilisation de ViewVC qui est écrit en python.
La dépendance python-pygments
a été ajoutée:
#sudo apt-get install python-subversion #sudo apt-get install python-pygments
La dépendance code>python-mysqldb</code> a été ajoutée, nécessaire pour la capture des commits sous SVN:
#sudo apt-get install python-mysqldb
L'archive est uploader dans /tmp
puis installée sous /var/opt/viewvc
.
#cd /var/opt #sudo mkdir viewvc #sudo tar -C /var/opt -xzvf /tmp/viewvc-1.1.8.tar.gz
Pour s'assurer le bon fonctionnement de l'application, le serveur en mode standalone est lancé:
#cd /var/opt/viewvc-1.1.8 #sudo bin/standalone.py -r /var/opt/svn/study/ server ready at http://localhost:49152/viewvc
Préparation de l'installation
La préparation de l'installation s'effectue en exécutant le script viewvc-install
sous /var/opt/viewvc-1.1.8
.
/var/opt/viewvc-1.1.8$ sudo ./viewvc-install This is the ViewVC 1.1.8 installer. It will allow you to choose the install path for ViewVC. You will now be asked some installation questions. Defaults are given in square brackets. Just hit [Enter] if a default is okay. Installation path [/var/opt/viewvc]: /var/opt/viewvc DESTDIR path (generally only used by package maintainers) []: Installing ViewVC to /var/opt/viewvc: created /var/opt/viewvc/bin/cgi/ installed /var/opt/viewvc/bin/cgi/viewvc.cgi installed /var/opt/viewvc/bin/cgi/query.cgi created /var/opt/viewvc/bin/wsgi/ installed /var/opt/viewvc/bin/wsgi/viewvc.wsgi installed /var/opt/viewvc/bin/wsgi/viewvc.fcgi installed /var/opt/viewvc/bin/wsgi/query.wsgi installed /var/opt/viewvc/bin/wsgi/query.fcgi created /var/opt/viewvc/bin/mod_python/ installed /var/opt/viewvc/bin/mod_python/viewvc.py installed /var/opt/viewvc/bin/mod_python/query.py installed /var/opt/viewvc/bin/mod_python/handler.py installed /var/opt/viewvc/bin/mod_python/.htaccess installed /var/opt/viewvc/bin/standalone.py installed /var/opt/viewvc/bin/loginfo-handler installed /var/opt/viewvc/bin/cvsdbadmin installed /var/opt/viewvc/bin/svndbadmin installed /var/opt/viewvc/bin/make-database installed /var/opt/viewvc/viewvc.conf.dist installed /var/opt/viewvc/viewvc.conf installed /var/opt/viewvc/cvsgraph.conf.dist installed /var/opt/viewvc/cvsgraph.conf installed /var/opt/viewvc/mimetypes.conf.dist installed /var/opt/viewvc/mimetypes.conf created /var/opt/viewvc/lib/ installed /var/opt/viewvc/lib/PyFontify.py installed /var/opt/viewvc/lib/accept.py installed /var/opt/viewvc/lib/blame.py installed /var/opt/viewvc/lib/compat.py installed /var/opt/viewvc/lib/compat_difflib.py installed /var/opt/viewvc/lib/compat_ndiff.py installed /var/opt/viewvc/lib/config.py installed /var/opt/viewvc/lib/cvsdb.py installed /var/opt/viewvc/lib/dbi.py installed /var/opt/viewvc/lib/debug.py installed /var/opt/viewvc/lib/ezt.py installed /var/opt/viewvc/lib/idiff.py installed /var/opt/viewvc/lib/popen.py installed /var/opt/viewvc/lib/py2html.py installed /var/opt/viewvc/lib/query.py installed /var/opt/viewvc/lib/sapi.py created /var/opt/viewvc/lib/vcauth/ installed /var/opt/viewvc/lib/vcauth/__init__.py created /var/opt/viewvc/lib/vcauth/forbidden/ installed /var/opt/viewvc/lib/vcauth/forbidden/__init__.py created /var/opt/viewvc/lib/vcauth/forbiddenre/ installed /var/opt/viewvc/lib/vcauth/forbiddenre/__init__.py created /var/opt/viewvc/lib/vcauth/svnauthz/ installed /var/opt/viewvc/lib/vcauth/svnauthz/__init__.py created /var/opt/viewvc/lib/vclib/ installed /var/opt/viewvc/lib/vclib/__init__.py created /var/opt/viewvc/lib/vclib/ccvs/ installed /var/opt/viewvc/lib/vclib/ccvs/__init__.py installed /var/opt/viewvc/lib/vclib/ccvs/bincvs.py installed /var/opt/viewvc/lib/vclib/ccvs/blame.py installed /var/opt/viewvc/lib/vclib/ccvs/ccvs.py created /var/opt/viewvc/lib/vclib/ccvs/rcsparse/ installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/__init__.py installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/common.py installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/debug.py installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/default.py installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/parse_rcs_file.py installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/run-tests.py created /var/opt/viewvc/lib/vclib/ccvs/rcsparse/test-data/ installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/test-data/default,v installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/test-data/default.out installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/test-data/empty-file,v installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/test-data/empty-file.out installed /var/opt/viewvc/lib/vclib/ccvs/rcsparse/texttools.py created /var/opt/viewvc/lib/vclib/svn/ installed /var/opt/viewvc/lib/vclib/svn/__init__.py installed /var/opt/viewvc/lib/vclib/svn/svn_ra.py installed /var/opt/viewvc/lib/vclib/svn/svn_repos.py installed /var/opt/viewvc/lib/viewvc.py installed /var/opt/viewvc/lib/win32popen.py created /var/opt/viewvc/templates/ installed /var/opt/viewvc/templates/diff.ezt installed /var/opt/viewvc/templates/dir_new.ezt installed /var/opt/viewvc/templates/directory.ezt created /var/opt/viewvc/templates/docroot/ installed /var/opt/viewvc/templates/docroot/help.css installed /var/opt/viewvc/templates/docroot/help_dirview.html installed /var/opt/viewvc/templates/docroot/help_log.html installed /var/opt/viewvc/templates/docroot/help_query.html installed /var/opt/viewvc/templates/docroot/help_rootview.html created /var/opt/viewvc/templates/docroot/images/ installed /var/opt/viewvc/templates/docroot/images/annotate.png installed /var/opt/viewvc/templates/docroot/images/back.png installed /var/opt/viewvc/templates/docroot/images/back_small.png installed /var/opt/viewvc/templates/docroot/images/broken.png installed /var/opt/viewvc/templates/docroot/images/chalk.jpg installed /var/opt/viewvc/templates/docroot/images/cvsgraph_16x16.png installed /var/opt/viewvc/templates/docroot/images/cvsgraph_32x32.png installed /var/opt/viewvc/templates/docroot/images/diff.png installed /var/opt/viewvc/templates/docroot/images/dir.png installed /var/opt/viewvc/templates/docroot/images/down.png installed /var/opt/viewvc/templates/docroot/images/download.png installed /var/opt/viewvc/templates/docroot/images/favicon.ico installed /var/opt/viewvc/templates/docroot/images/feed-icon-16x16.jpg installed /var/opt/viewvc/templates/docroot/images/forward.png installed /var/opt/viewvc/templates/docroot/images/list.png installed /var/opt/viewvc/templates/docroot/images/lock.png installed /var/opt/viewvc/templates/docroot/images/log.png installed /var/opt/viewvc/templates/docroot/images/text.png installed /var/opt/viewvc/templates/docroot/images/up.png installed /var/opt/viewvc/templates/docroot/images/view.png installed /var/opt/viewvc/templates/docroot/images/viewvc-logo.png installed /var/opt/viewvc/templates/docroot/styles.css installed /var/opt/viewvc/templates/error.ezt installed /var/opt/viewvc/templates/file.ezt installed /var/opt/viewvc/templates/graph.ezt created /var/opt/viewvc/templates/include/ installed /var/opt/viewvc/templates/include/diff_form.ezt installed /var/opt/viewvc/templates/include/dir_footer.ezt installed /var/opt/viewvc/templates/include/dir_header.ezt installed /var/opt/viewvc/templates/include/file_header.ezt installed /var/opt/viewvc/templates/include/footer.ezt installed /var/opt/viewvc/templates/include/header.ezt installed /var/opt/viewvc/templates/include/log_footer.ezt installed /var/opt/viewvc/templates/include/log_header.ezt installed /var/opt/viewvc/templates/include/paging.ezt installed /var/opt/viewvc/templates/include/pathrev_form.ezt installed /var/opt/viewvc/templates/include/props.ezt installed /var/opt/viewvc/templates/include/sort.ezt installed /var/opt/viewvc/templates/log.ezt installed /var/opt/viewvc/templates/log_table.ezt installed /var/opt/viewvc/templates/query.ezt installed /var/opt/viewvc/templates/query_form.ezt installed /var/opt/viewvc/templates/query_results.ezt installed /var/opt/viewvc/templates/revision.ezt installed /var/opt/viewvc/templates/roots.ezt installed /var/opt/viewvc/templates/rss.ezt created /var/opt/viewvc/templates-contrib/ installed /var/opt/viewvc/templates-contrib/README created /var/opt/viewvc/templates-contrib/newvc/ installed /var/opt/viewvc/templates-contrib/newvc/README created /var/opt/viewvc/templates-contrib/newvc/templates/ installed /var/opt/viewvc/templates-contrib/newvc/templates/diff.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/directory.ezt created /var/opt/viewvc/templates-contrib/newvc/templates/docroot/ installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/help.css installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/help_dirview.html installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/help_log.html installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/help_query.html installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/help_rootview.html created /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/ installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/back.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/back_small.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/broken.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/cvs-logo.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/dir.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/down.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/feed-icon-16x16.jpg installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/forward.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/svn-logo.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/text.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/up.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/images/viewvc-logo.png installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/scripts.js installed /var/opt/viewvc/templates-contrib/newvc/templates/docroot/styles.css installed /var/opt/viewvc/templates-contrib/newvc/templates/error.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/file.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/graph.ezt created /var/opt/viewvc/templates-contrib/newvc/templates/include/ installed /var/opt/viewvc/templates-contrib/newvc/templates/include/diff_form.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/include/fileview.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/include/footer.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/include/header.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/include/pathrev_form.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/include/props.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/log.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/markup.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/query.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/query_form.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/query_results.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/revision.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/roots.ezt installed /var/opt/viewvc/templates-contrib/newvc/templates/rss.ezt created /var/opt/viewvc/templates-contrib/viewsvn/ installed /var/opt/viewvc/templates-contrib/viewsvn/INSTALL installed /var/opt/viewvc/templates-contrib/viewsvn/README created /var/opt/viewvc/templates-contrib/viewsvn/extras/ installed /var/opt/viewvc/templates-contrib/viewsvn/extras/svnindex.css installed /var/opt/viewvc/templates-contrib/viewsvn/extras/svnindex.xsl created /var/opt/viewvc/templates-contrib/viewsvn/screenshots/ installed /var/opt/viewvc/templates-contrib/viewsvn/screenshots/diff.png installed /var/opt/viewvc/templates-contrib/viewsvn/screenshots/dir.png installed /var/opt/viewvc/templates-contrib/viewsvn/screenshots/log.png installed /var/opt/viewvc/templates-contrib/viewsvn/screenshots/markup.png created /var/opt/viewvc/templates-contrib/viewsvn/templates/ installed /var/opt/viewvc/templates-contrib/viewsvn/templates/diff.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/directory.ezt created /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/ installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/broken.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/dir.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/down.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/download.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/favicon-svn.ico installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/feed-icon-16x16.jpg installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/logo-svn.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/logo-viewvc.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/svn.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/text.png created /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/ installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/back.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/back_small.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/blame.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/checkout.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/diff.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/forward.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/license.txt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/log.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/patch.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/repos.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/tortoisesvn/tsvn.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/up.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/images/viewvc.png installed /var/opt/viewvc/templates-contrib/viewsvn/templates/docroot/styles.css installed /var/opt/viewvc/templates-contrib/viewsvn/templates/error.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/file.ezt created /var/opt/viewvc/templates-contrib/viewsvn/templates/include/ installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/diff_form.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/dir_footer.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/dir_header.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/file_header.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/footer.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/header.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/log_footer.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/log_header.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/paging.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/pathrev_form.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/include/props.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/log.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/query.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/query_form.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/query_results.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/revision.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/roots.ezt installed /var/opt/viewvc/templates-contrib/viewsvn/templates/rss.ezt ViewVC file installation complete. Consult the INSTALL document for detailed information on completing the installation and configuration of ViewVC on your system. Here's a brief overview of the remaining steps: 1) Edit the /var/opt/viewvc/viewvc.conf file. 2) Either configure an existing web server to run /var/opt/viewvc/bin/cgi/viewvc.cgi. Or, copy /usr/local/viewvc-1.1.7/bin/cgi/viewvc.cgi to an already-configured cgi-bin directory. Or, use the standalone server provided by this distribution at /usr/local/viewvc-1.1.7/bin/standalone.py.
Propriétaire fichiers
L'installation a été réalisée avec le compte root
. Il est préférable de donner la propriété au compte de démarrage du serveur web, soit www-data
dans le cadre de cette installation.
#sudo chown -R www-data:www-data /var/opt/viewvc
Sécurisation
Après avoir modifié le propriétaire des fichiers, il est conseillé de positionner des droits restrictifs afin que seul le propriétaire puisse accéder à ceux-ci.
#sudo find /var/opt/viewvc -exec chmod -R go-rwx {} \;
A noter l'utilisation de la suppression des droits, et non pas la spécification avec une commande de type chmod 600
. En effet, l'utilitaire d'installation positionne les droits d'exécution sur certains fichiers, qu'il ne faudrait pas supprimer.
Configuration
Comme indiqué en fin d'exécution, il est nécessaire de compléter celle-ci en modifiant le fichier de configuration viewvc.conf
. Par défaut, l'installation est effectuée dans le répertoire /var/opt/viewvc
. Dans le cadre de cet exemple, un seul repository SVN, situé à l'emplacement /var/opt/svn/study
, est exposé.
Les modifications apportées à la configuration initiale sont:
- Configuration du répertoire root d'un repository SVN.
## svn_roots: Specifies each of the Subversion roots (repositories) on
## your system and assigns names to them. Each root should be given by
## a "name: path" value. Multiple roots should be separated by commas
## and can be placed on separate lines.
##
## Example:
## svn_roots = svnrepos: /opt/svn/,
## anotherrepos: /usr/local/svn/repos2
##
svn_roots = studyrepos: /var/opt/svn/study
- Le paramètre
root_parents
n'est pas configuré car un unique repository est exposé.
- Le repository par défaut est spécifié à l'unique configuré:
## default_root: This is the name of the default root. Valid names
## include those explicitly listed in the cvs_roots and svn_roots
## configuration options, as well as those implicitly indicated by
## virtue of being the basenames of repositories found in the
## root_parents option locations.
##
## NOTE: This setting is ignored when root_as_url_component is enabled.
##
## Example:
## default_root = cvsroot
##
default_root = studyrepos
Dans le cas, où plusieurs repository doivent être publiés, et sont stockés dans le même emplacement, il est préférable d'utiliser le paramètre default_root
, en commentant le paramètre svn_roots
. Dans cet exemple, les repository se trouvent à la racine /var/opt/svn
. Le "root" par défaut est positionné à studyrepos
.
## svn_roots: Specifies each of the Subversion roots (repositories) on
## your system and assigns names to them. Each root should be given by
## a "name: path" value. Multiple roots should be separated by commas
## and can be placed on separate lines.
##
## Example:
## svn_roots = svnrepos: /opt/svn/,
## anotherrepos: /usr/local/svn/repos2
##
# svn_roots = studyrepos: /var/opt/svn/study
## root_parents: Specifies a list of directories under which any
## number of repositories may reside. You can specify multiple root
## parents separated by commas or new lines, each of which is of the
## form "path: type" (where type is either "cvs" or "svn").
##
## Rather than force you to add a new entry to 'cvs_roots' or
## 'svn_roots' each time you create a new repository, ViewVC rewards
## you for organizing all your repositories under a few parent
## directories by allowing you to simply tell it about those parent
## directories. ViewVC will then notice each repository of the
## specified type in that directory as a root whose name is the
## subdirectory in which that repository lives.
##
## For example, if you have three Subversion repositories located at
## /opt/svn/projects, /opt/svn/websites, and /opt/svn/devstuff, you
## could list them individually in svn_roots like so:
##
## svn_roots = projects: /opt/svn/projects,
## websites: /opt/svn/websites,
## devstuff: /opt/svn/devstuff
##
## or you could instead use the root_parents configuration option:
##
## root_parents = /opt/svn: svn
##
## The benefit of this latter approach is that, as you add new
## repositories to your /opt/svn directory, they automatically become
## available for display in ViewVC without additional configuration.
##
## WARNING: the root names derived for repositories configured via the
## root_parents option can, of course, clash with names you have
## defined in your cvs_roots or svn_roots configuration items. If
## this occurs, you can either rename the offending repository on
## disk, or grant new names to the clashing item in cvs_roots or
## svn_roots. Each parent path is processed sequentially, so the
## names of repositories under later parent paths may override earlier
## ones.
##
## Example:
## root_parents = /opt/svn: svn,
## /opt/cvs: cvs
##
root_parents = /var/opt/svn: svn
## default_root: This is the name of the default root. Valid names
## include those explicitly listed in the cvs_roots and svn_roots
## configuration options, as well as those implicitly indicated by
## virtue of being the basenames of repositories found in the
## root_parents option locations.
##
## NOTE: This setting is ignored when root_as_url_component is enabled.
##
## Example:
## default_root = cvsroot
##
default_root = studyrepos
A noter que dans le cadre de cette installation, celle ci est réalisée dans le répertoire /var/opt/viewvc
. Or, l'administration est simplifiée, surtout pour les mises à jour, en utilisant des liens symbolique. Pour cela, il faut installer l'application dans /var/opt/viewvc-1.1.8
et mettre en place un lien symbolique /var/opt/viewvc
pointant sur ce dernier. Ceci est réalisé dans le cadre des mises à jour.
Configuration MySql
Publication sous Apache
Update
Bug
Suite à une mise à jour de Ubuntu, version 15.10, la version de python est modifiée. Les actions posts commit et la mise à jour de la base de données n'était plus fonctionnelle avec le message d'erreur suivant.
#sudo /var/opt/viewvc/viewvc/bin/svndbadmin -v rebuild /var/opt/svn/study Traceback (most recent call last): File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 376, in <module> main(command, repository, revs, verbose, force) File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 255, in main db = cvsdb.ConnectDatabase(cfg) File "/var/opt/viewvc/1.1.15/lib/cvsdb.py", line 898, in ConnectDatabase db.Connect() File "/var/opt/viewvc/1.1.15/lib/cvsdb.py", line 61, in Connect version = self.GetMetadataValue("version") File "/var/opt/viewvc/1.1.15/lib/cvsdb.py", line 190, in GetMetadataValue cursor.execute(sql, sql_args) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 198, in execute query = query % args TypeError: not all arguments converted during string formatting
Cette anomalie est corrigée à partir de la version 1.1.23, et il faut donc passer la mise à jour.
Suite à une mise à jour des paquest python
en version 2.7
sur Ubuntu
, une erreur se produisait lors de actions post commit ou du rafraîchissement, avec le message suivant.
Traceback (most recent call last): File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 376, in <module> main(command, repository, revs, verbose, force) File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 277, in main handle_revision(db, command, repo, rev, verbose) File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 208, in handle_revision revision = repo[rev] File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 85, in __getitem__ rev = SvnRev(self, rev) File "/var/opt/viewvc/viewvc/bin/svndbadmin", line 194, in __init__ diff_fp = diffobj.get_pipe() File "/usr/lib/python2.7/dist-packages/svn/fs.py", line 109, in get_pipe self.get_files() File "/usr/lib/python2.7/dist-packages/svn/fs.py", line 104, in get_files self._dump_contents(self.tempfile2, self.root2, self.path2) File "/usr/lib/python2.7/dist-packages/svn/fs.py", line 88, in _dump_contents fp.write(chunk) TypeError: write() argument 1 must be unicode, not str
Il semblerait qu'il y ait un bug dans le module SVN de la version de python utilisé, au niveau de la fonction _dump_contents
du script svn/fs.py
. La cause semble être le mode d'ouverture d'un fichier temporaire, qui ne l'effectue pas en binaire, mode w+
. Le mode d'ouverture est modifié en wb+
pour y remédier. Attention, le correctif semble fonctionner dans ce cas, mais cela n'a pas été validé pour tous les produits.
def _dump_contents(self, file, root, path, pool=None):
#fp = builtins.open(file, 'w+') # avoid namespace clash with
# trimmed-down svn_fs_open()
fp = builtins.open(file, 'wb+')
if path is not None:
stream = file_contents(root, path, pool)
try:
while True:
chunk = _svncore.svn_stream_read(stream, _svncore.SVN_STREAM_CHUNK_SIZE)
if not chunk:
break
fp.write(chunk)
finally:
_svncore.svn_stream_close(stream)
fp.close()