Obsolete
Version 6 (Joël Brogniart, 12/07/2017 10:41 am) → Version 7/29 (Joël Brogniart, 12/07/2017 10:41 am)
h1. Installation de la version de développement d'AMC sous OS X Mountain Lion (10.8)
_(Cette installation fonctionne sous OS X 10.7.5 et OS X 10.8.3 avec XCode 4.6.1 et MacPorts 2.1.3)_
Le logiciel Auto Multiple Choice (AMC) est un logiciel de gestion de questionnaires. Il permet, à partir de la définition des questions (question à choix unique/question à choix multiple, bonnes/mauvaises réponsesâ¦) de générer des feuilles de questionnaires. Une fois ces questionnaires remplis et numérisés, AMC permet de corriger automatiquement les questionnaires. Ce logiciel fonctionne dans un environnement graphique X Window System sous Linux et OS X.
Il est possible d'installer la "version précompilée 1.1.1 d'AMC":http://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Installation_d'AMC_sous_OS_X_Mountain_Lion, mais pour pouvoir bénéfier des améliorations apportées à Auto Multiple Choice au cours de son développement, il est aussi possible d'installer AMC à partir du code source.
Pour l'instant, l'installation décrite ici est assez technique et concerne uniquement OS X 10.8. Cette installation nécessite quelques connaissances sur les outils Unix, l'utilisation de lignes de commandes, une compréhension de l'architecture des ports "MacPorts":http://www.macports.org, une petite compréhension des dépendances entre différents outils (Subversion, MacPorts, PERL, X11, portsâ¦) et de l'architecture OS X. Il faut aussi disposer des droits d'administration sur l'ordinateur. Elle n'est donc malheureusement pas destinée à tout le monde. Il y a un petit soucis pour la communication avec les outils d'impression et la version installée ne pourra pas imprimer directement. Les documents générés par AMC devront être imprimés à partir de OS X.
Pour cette installation il va falloir créer un dépot local MacPort. Dans ce dépot, seront mis les fichiers de description de port des outils inconnus de MacPorts. Il y aura un fichier de port pour AMC et quelques fichiers de port supplémentaires pour des outils nécessaires au fonctionnement d'AMC. Une fois les fichiers de port installés, l'installation d'AMC pourra être lancée.
h2. Prérequis
Les prérequis sont identiques à ceux de l'installation de la version 1.1.1 d'AMC. Pour fonctionner avec son interface, AMC nécessite un environnement graphique X Window System ou X11, la police de caractères Linux Libertine et le système d'installation MacPorts.
h3. L'environnement X Window System
OS X ne contient pas en standard l'environnement graphique X11. Il est possible de combler cette lacune en installant XQuartz, un environnement X Windows System fonctionnant sous OS X. On peut télécharger l'application sur le site "XQuartz":http://xquartz.macosforge.org.
h3. La police Linux Libertine
La police Linux Libertine est une police libre qui couvre les pages de code pour les langues latines, le grec, les langues cyrilliques, l'hébreu, l'alphabet phonétique international (et d'autres). Il faut télécharger le paquet "OTF" sur le site "LinuxLibertine.org":http://www.linuxlibertine.org.
*Attention* : La version actuelle de XQuartz (2.7.4) ne reconnait pas les polices installées dans le dossier de l'utilisateur. Il faut installer les polices en les déplaçant dans le dossier "@/Library/Fonts@".
h3. MacPorts
MacPorts est un système qui permet de compiler, installer et gérer des logiciels source libre. Il faut télécharger le paquet d'installation Mountain Lion sur le site "MacPorts":http://www.macports.org et installer MacPorts.
h2. MacPorts et les fichiers de port
Un fichier de port MacPorts contient les informations qui permettent d'installer un programme dans le système MacPorts. Il indique quels sont les outils nécessaires à l'installation et au fonctionnement du programme et comment faire pour installer le programme. MacPorts contient de "nombreux ports":http://www.macports.org/ports.php", mais il ne contient pas de port décrivant l'installation d'AMC à partir du code source du programme. Certains outils nécessaires pour l'installation et le fonctionnement d'AMC sont absents de MacPorts. Il va donc falloir créer les fichiers de port pour ces outils ainsi que le fichier de port pour la version de développement d'AMC.
Pour éviter les conflits avec les ports déjà décrits de MacPorts, les nouveaux fichiers de ports seront installés dans le dossier de l'utilisateur qui fait l'installation, au lieu d'être installés dans les dossiers directements gérés par MacPorts.
*Remarque* : MacPorts est un effort collaboratif et de nombreux développeurs participent à son évolution. Ainsi les fichiers décrits ici ont ils été proposés pour être ajoutés aux fichiers référencés dans MacPorts. Lorsque et si un ajout est accepté, le fichier de port local n'est plus nécessaire. Une mise à jour de MacPorts importera le fichier de port accepté dans la hiérarchie standard de MacPorts.
h3. Dépot local MacPorts
Pour que MacPorts puisse utiliser un dossier local, il faut créer ce dossier local.
<pre>mkdir -p ~/nix/macports</pre>
Il faut ensuite indiquer à MacPorts de prendre en compte le dossier local et ceci, avant la prise en compte de la hiérarchie standard de MacPorts. Pour cela il faut éditer le fichier "@/opt/local/etc/macports/sources.conf@" et ajouter un URL pointant vers le dossier local avant l'URL @rsync@ du dépot MacPorts.
<pre>file:///Users/julesvernes/nix/macports
rsync://rsync.macports.org/release/tarballs/ports.tar [default]</pre>
h3. Fichiers de ports
Une archive contenant les fichiers de ports décrits ici est disponible au téléchargement : attachment:macports.zip.
Les ports sont regroupés par catégories et l'organisation des fichiers de port reflète ce groupement. Chaque port fait partie d'une catégorie principale et dispose de son propre dossier. La catégorie principale de AMC dans MacPorts est X11, aussi le dossier du port pour AMC se trouvera à l'intérieur d'un dossier @X11@. AMC est développé en PERL et nécessite de nombreux modules CPAN. Les modules PERL à ajouter le seront dans le dossier @perl@. Les ports PERL suivants seront ajoutés.
* p5-email-abstract (module CPAN "Email::Abstract":http://search.cpan.org/~rjbs/Email-Abstract)
* p5-email-sender (module CPAN "Email::Sender":http://search.cpan.org/~rjbs/Email-Sender)
* p5-moo (module CPAN "Moo":http://search.cpan.org/~mstrout/Moo)
* p5-moox-types-mooselike (module CPAN "Moox::Types::MooseLike":http://search.cpan.org/~mateu/MooX-Types-MooseLike)
* p5-role-tiny (module CPAN "Role::Tiny":http://search.cpan.org/~ilmari/Role-Tiny)
* p5-strictures (module CPAN "strictures":http://search.cpan.org/~ether/strictures)
* p5-throwable (module CPAN "Throwable":http://search.cpan.org/~rjbs/Throwable)
Les ports suivants seront mis à jour car la version actuellement disponible dans MacPort est trop ancienne.
* -p5-class-load p5-class-load (module CPAN "Class::Load":http://search.cpan.org/~drolsky/Class-Load)- (plus nécessaire, mis à jour dans MacPorts) "Class::Load":http://search.cpan.org/~drolsky/Class-Load)
* p5-email-mime (module CPAN "Email::MIME":http://search.cpan.org/~rjbs/Email-MIME)
* -p5-email-simple (module CPAN "Email::Simple":http://search.cpan.org/~rjbs/Email-Simple)- (plus nécessaire, mis à jour dans MacPorts)
Voici une commande permettant de créer cette hiérarchie.
<pre>cd ~/nix/macports
mkdir -p perl/p5-class-load perl/p5-email-abstract perl/p5-email-mime perl/p5-email-sender \
perl/p5-email-sender perl/p5-email-simple perl/p5-moo perl/p5-moox-types-mooselike \
perl/p5-role-tiny perl/p5-strictures \
perl/p5-throwable x11/auto-multiple-choice-devel</pre>
!port-hierarchy.png!
Chacun des dossiers de port doit contenir un document nommé @Portfile@. Ce document est un document texte contenant une description permettant l'installation par MacPorts de l'outil. Les fichiers de port des nouveaux modules PERL ont été créés avec l'utilitaire "@cpan2port@":https://trac.macports.org/wiki/howto/cpan2port puis modifiés pour respecter les règles et pratiques utilisées par les contributeurs de MacPorts. Pour les modules mis à jour, une copie du fichier de port disponible dans MacPorts a été adaptée pour l'installation de la nouvelle version de l'outil.
h4. @perl/p5-class-load/Portfile@
<pre title="perl/p5-class-load/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Class-Load 0.20
license {Artistic-1 GPL}
maintainers nomaintainer
description a working (require \"Class::Name\") and more
long_description ${description}
platforms darwin
checksums sha256 823c45885e1d29feef6867282b881d402f42af6413c7e0e9f8fe32086aee8c20 \
rmd160 040eeb3049f08444e7d7f3cfcf0bcc03e2ed7e97
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-try-tiny \
port:p${perl5.major}-package-stash \
port:p${perl5.major}-module-implementation \
port:p${perl5.major}-data-optlist \
port:p${perl5.major}-module-runtime
depends_build-append port:p${perl5.major}-test-requires \
port:p${perl5.major}-test-fatal
supported_archs noarch
}</pre>
h4. @perl/p5-email-abstract/Portfile@
<pre title="perl/p5-email-abstract/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-Abstract 3.004
license {Artistic-1 GPL}
maintainers nomaintainer
description Email::Abstract - unified interface to mail representations
long_description Email::Abstract provides module writers with the ability \
to write simple, representation-independent mail handling \
code. For instance, in the cases of Mail::Thread or \
Mail::ListDetector, a key part of the code involves \
reading the headers from a mail object. Where previously \
one would either have to specify the mail class required, \
or to build a new object from scratch, Email::Abstract can \
be used to perform certain simple operations on an object \
regardless of its underlying representation. \
\
Email::Abstract currently supports Mail::Internet, \
MIME::Entity, Mail::Message, Email::Simple and \
Email::MIME. Other representations are encouraged to \
create their own Email::Abstract::* class by copying \
Email::Abstract::EmailSimple. All modules installed under \
the Email::Abstract hierarchy will be automatically \
picked up and used.
platforms darwin
supported_archs noarch
checksums sha256 0d195361c1168b2e890b94aeae6b7b4f2d3eaf6664df18f178c543c1fa532a3a \
rmd160 a6a99eb1c250392c55ee216c79897796c7c8501b
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-email-simple \
port:p${perl5.major}-mro-compat
}</pre>
h4. @perl/p5-email-mime/Portfile@
<pre title="perl/p5-email-mime/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-MIME 1.911
license {Artistic-1 GPL}
maintainers ricci openmaintainer
description Easy MIME message parsing
long_description ${description}
platforms darwin
supported_archs noarch
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-email-mime-contenttype \
port:p${perl5.major}-email-mime-encodings \
port:p${perl5.major}-email-messageid \
port:p${perl5.major}-email-simple \
port:p${perl5.major}-mime-types
checksums sha256 cde752e1cbfc9869547b5f94d8e4b9b64bdb6403746111e02e79be3085be7b5a \
rmd160 ebe53fb4174e5c73002879eab73becb868372fdc
}</pre>
h4. @perl/p5-email-sender/Portfile@
<pre title="perl/p5-email-sender/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-Sender 1.300006
license {Artistic-1 GPL}
maintainers nomaintainer
description Email::Sender - a library for sending email
long_description Email::Sender replaces the old and sometimes problematic \
Email::Send library, which did a decent job at handling \
very simple email sending tasks, but was not suitable for \
serious use, for a variety of reasons.
platforms darwin
supported_archs noarch
checksums sha256 860fd72a906f1de8755d7e9c791a1d2517229a997c4612199d949eb0857cfbff \
rmd160 d37ba19b3bdc961dd9c96a72ab8ed987cb65e7ff
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-try-tiny \
port:p${perl5.major}-capture-tiny \
port:p${perl5.major}-moo \
port:p${perl5.major}-sub-exporter \
port:p${perl5.major}-throwable \
port:p${perl5.major}-module-runtime \
port:p${perl5.major}-moox-types-mooselike \
port:p${perl5.major}-email-abstract \
port:p${perl5.major}-email-simple \
port:p${perl5.major}-list-moreutils \
port:p${perl5.major}-email-address
}</pre>
h4. @perl/p5-moo/Portfile@
<pre title="perl/p5-moo/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Moo 1.001000 ../by-authors/id/M/MS/MSTROUT
license {Artistic-1 GPL}
maintainers nomaintainer
description Moo - Minimalist Object Orientation (with Moose compatiblity)
long_description This module is an extremely light-weight subset of Moose \
optimised for rapid startup and \"pay only for what you \
use\". \
\
It also avoids depending on any XS modules to allow simple \
deployments. The name Moo is based on the idea that it \
provides almost -- but not quite -- two thirds of Moose. \
\
Unlike Mouse this module does not aim at full \
compatibility with Moose's surface syntax, preferring \
instead of provide full interoperability via the metaclass \
inflation capabilities described in \"MOO AND MOOSE\".
platforms darwin
supported_archs noarch
checksums sha256 be0abe8537b80b41d278542e8335d72a28ae7915edd274f6c58e0078d95e1e18 \
rmd160 eec88fcab9bd6053e7b7781ce9d960ffeb563e26
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-devel-globaldestruction \
port:p${perl5.major}-strictures \
port:p${perl5.major}-role-tiny \
port:p${perl5.major}-module-runtime \
port:p${perl5.major}-class-method-modifiers
depends_build-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-moox-types-mooselike/Portfile@
<pre title="perl/p5-moox-types-mooselike/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup MooX-Types-MooseLike 0.23
license {Artistic-1 GPL}
maintainers nomaintainer
description MooX::Types::MooseLike - some Moosish types and a type builder
long_description ${description}
platforms darwin
supported_archs noarch
checksums sha256 6b4a9b079490cdce9c6ca4f1211ce853da3367801ca35360e0f0c63495dd5f48 \
rmd160 6cb1ba26bf37fc8adc105676735e067500d21e14
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-moo \
port:p${perl5.major}-module-runtime
depends_build-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-role-tiny/Portfile@
<pre title="perl/p5-role-tiny/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Role-Tiny 1.002005 ../by-authors/id/M/MS/MSTROUT
license {Artistic-1 GPL}
maintainers nomaintainer
description Role::Tiny - Roles. Like a nouvelle cuisine portion size slice of Moose.
long_description Role::Tiny is a minimalist role composition tool.
platforms darwin
supported_archs noarch
checksums sha256 3905f99efd3b604a5de83265914aaa0ead1dcb45c6e38b58c24a2de0309e5bee \
rmd160 aabe3136c2a3877ef6d110b5873c935673985d91
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-strictures/Portfile@
<pre title="perl/p5-strictures/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup strictures 1.004004 ../by-authors/id/E/ET/ETHER
license {Artistic-1 GPL}
platforms darwin
maintainers nomaintainer
description strictures - turn on strict and make all warnings fatal.
long_description ${description}
checksums sha256 12117dbaaaa85e07cbf01d95927ecb5ba8d5ed896c18d7dbc6b4be47b255ee34 \
rmd160 e9638bdb9621637b457f039913185f1fcf012aa4
supported_archs noarch</pre>
h4. @perl/p5-throwable/Portfile@
<pre title="perl/p5-throwable/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Throwable 0.200004 ../by-authors/id/R/RJ/RJBS
license {Artistic-1 GPL}
maintainers nomaintainer
description Throwable - a role for classes that can be thrown
long_description Throwable is a role for classes that are meant to be \
thrown as exceptions to standard program flow. It is \
very simple and does only two things: saves any previous \
value for \$@ and calls die \$self.
platforms darwin
supported_archs noarch
checksums sha256 dda2f5c50ecf92e19a5a294d175ca44364ffcc4b7b88e5eac0461dd63219a30e \
rmd160 00683277732ba97c0ff2dca408b332f5f066bf0b
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-moox-types-mooselike \
port:p${perl5.major}-devel-stacktrace \
port:p${perl5.major}-class-load \
port:p${perl5.major}-moo
}</pre>
h4. @x11/auto-multiple-choice-devel/Portfile@
<pre title="x11/auto-multiple-choice-devel/Portfile"># -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 96038 2012-07-30 02:14:11Z dports@macports.org $
PortSystem 1.0
name auto-multiple-choice-devel
svn.revision 1361
version 1.1.1.${svn.revision}
categories x11 tex education
platforms darwin
license GPL-2+
maintainers nomaintainer
description Auto Multiple Choice - Multiple Choice Papers Management
long_description Utility to manage multiple choice questionnaires, \
with optionally mixed questions and answers. \
AMC provides automatic marking from papers' scans. \
Annotated papers are produced. Marks can be exported \
as an OpenOffice.org sheet file. \
\
This version can't print. Documents should be printed from OS X.
homepage http://home.gna.org/auto-qcm
conflicts auto-multiple-choice
depends_build-append port:dblatex \
port:p5.12-xml-libxml
depends_lib port:opencv
depends_run port:p5.12-gtk2 \
port:p5.12-xml-simple \
port:p5.12-xml-writer \
port:p5.12-archive-zip \
port:p5.12-locale-gettext \
port:p5.12-digest-md5 \
port:p5.12-module-load-conditional \
port:p5.12-perlmagick \
port:p5.12-openoffice-oodoc \
port:p5.12-file-mimeinfo \
port:p5.12-dbd-sqlite \
port:p5.12-text-csv \
port:p5.12-file-basedir \
port:p5.12-email-mime \
port:p5.12-email-sender \
port:sqlite3 \
port:poppler \
port:netpbm \
port:librsvg \
port:gdk-pixbuf2
use_configure no
fetch.type svn
svn.url svn://svn.gna.org/auto-qcm/trunk/
worksrcdir trunk
build.args AMCCONF=macports \
BASEPATH=${prefix} \
LATEX_FREE=1 \
GCC_PP="${configure.cc} ${configure.cc_archflags}"
# When building from source, some files should be configured before.
# This pre-configuration use the make tool, not the configure tool.
pre-build {
system -W ${worksrcpath} "${build.cmd} version_files"
}
# When first installed auto-multiple-choice could fail to launch with
# a "Format d'image non reconnu at /opt/local/lib/AMC/perl/AMC-gui.pl line 101"
# ("Unknown image format?").
# The following update cache command makes auto-multiple-choice happy.
post-activate {
system "${prefix}/bin/gdk-pixbuf-query-loaders --update-cache 2>&1"
}
destroot.args AMCCONF=macports \
BASEPATH=${prefix}
variant latex description "Add LaTeX support" {
depends_run-append port:texlive-latex-extra \
port:texlive-latex-recommended \
port:texlive-fonts-recommended \
port:texlive-xetex
build.args-delete LATEX_FREE=1
post-activate {
system "${prefix}/bin/mktexlsr 2>&1"
}
post-deactivate {
system "${prefix}/bin/mktexlsr 2>&1"
}
}
default_variants +latex
livecheck.type regex
livecheck.url http://svn.gna.org/viewcvs/auto-qcm/trunk/
livecheck.version ${svn.revision}
livecheck.regex {Revision (\d+)}</pre>
h2. Installation de AMC
Une fois les fichiers de port mis en place, il faut générer l'index des nouveaux ports.
<pre>cd ~/nix/macports
portindex</pre>
Enfin, l'installation de la version de développement d'AMC peut être lancée.
<pre>sudo port install auto-multiple-choice-devel</pre>
AMC est prêt à être utilisé.
*Attention* : les versions standard et développement d'AMC ne peuvent être installées simultanément. Si une version standard était précédemment installée, il faut la désinstaller avant l'installation de la version de développement.
<pre>sudo port uninstall auto-multiple-choice</pre>
h2. Utilisation de AMC
Vous pouvez lancer AMC à partir du terminal ou à partir de XQuartz.
h3. Dans Terminal
<pre>auto-multiple-choice-devel</pre>
Cette commande lancera l'application XQuartz puis AMC.
h3. Dans XQuartz
Lancer l'application XQuartz.
!xquartz.png!
On peut tout de suite configurer XQuartz pour faciliter le lancement de AMC. Ouvrir le menu @Applications > Personnaliserâ¦@.
!xquartz-menu-applications-personnaliser.png!
Dans la fenêtre de personnalisation, cliquer le bouton @Ajouter un élément@.
!xquartz-fenetre-personnaliser-menu-applications.png!
Mettre "@Auto Multiple Choice@" dans la colonne @Nom@ et "@auto-multiple-choice@" dans la colonne @Commande@ du nouvel item de menu.
!xquartz-fenetre-personnaliser-menu-applications-2.png!
Fermer la fenêtre de personnalisation puis choisir le menu @Applications > Auto Multiple Choix@.
!xquartz-menu-applications-amc.png!
La fenêtre de AMC doit apparaître.
!auto-multiple-choice-window.png!
à part pour l'impression, tout devrait marcher.
h2. Liens
* Auto Multiple Choice, "http://home.gna.org/auto-qcm/":http://home.gna.org/auto-qcm/.
* Auto Multiple Choice "(version 1.1.1) - installation sous OS X Mountain Lion (10.8)":http://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Installation_d'AMC_sous_OS_X_Mountain_Lion.
* MacPorts, "http://www.macports.org":http://www.macports.org.
* MacPorts, "Local Portfile Repositories":http://guide.macports.org/#development.local-repositories.
* MacPorts, "How to create portfiles for CPAN Perl modules":https://trac.macports.org/wiki/howto/cpan2port.
* Famille de polices Linux Libertine, "LinuxLibertine.org":http://www.linuxlibertine.org.
* XQuartz, http://xquartz.macosforge.org</a>.
_(Cette installation fonctionne sous OS X 10.7.5 et OS X 10.8.3 avec XCode 4.6.1 et MacPorts 2.1.3)_
Le logiciel Auto Multiple Choice (AMC) est un logiciel de gestion de questionnaires. Il permet, à partir de la définition des questions (question à choix unique/question à choix multiple, bonnes/mauvaises réponsesâ¦) de générer des feuilles de questionnaires. Une fois ces questionnaires remplis et numérisés, AMC permet de corriger automatiquement les questionnaires. Ce logiciel fonctionne dans un environnement graphique X Window System sous Linux et OS X.
Il est possible d'installer la "version précompilée 1.1.1 d'AMC":http://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Installation_d'AMC_sous_OS_X_Mountain_Lion, mais pour pouvoir bénéfier des améliorations apportées à Auto Multiple Choice au cours de son développement, il est aussi possible d'installer AMC à partir du code source.
Pour l'instant, l'installation décrite ici est assez technique et concerne uniquement OS X 10.8. Cette installation nécessite quelques connaissances sur les outils Unix, l'utilisation de lignes de commandes, une compréhension de l'architecture des ports "MacPorts":http://www.macports.org, une petite compréhension des dépendances entre différents outils (Subversion, MacPorts, PERL, X11, portsâ¦) et de l'architecture OS X. Il faut aussi disposer des droits d'administration sur l'ordinateur. Elle n'est donc malheureusement pas destinée à tout le monde. Il y a un petit soucis pour la communication avec les outils d'impression et la version installée ne pourra pas imprimer directement. Les documents générés par AMC devront être imprimés à partir de OS X.
Pour cette installation il va falloir créer un dépot local MacPort. Dans ce dépot, seront mis les fichiers de description de port des outils inconnus de MacPorts. Il y aura un fichier de port pour AMC et quelques fichiers de port supplémentaires pour des outils nécessaires au fonctionnement d'AMC. Une fois les fichiers de port installés, l'installation d'AMC pourra être lancée.
h2. Prérequis
Les prérequis sont identiques à ceux de l'installation de la version 1.1.1 d'AMC. Pour fonctionner avec son interface, AMC nécessite un environnement graphique X Window System ou X11, la police de caractères Linux Libertine et le système d'installation MacPorts.
h3. L'environnement X Window System
OS X ne contient pas en standard l'environnement graphique X11. Il est possible de combler cette lacune en installant XQuartz, un environnement X Windows System fonctionnant sous OS X. On peut télécharger l'application sur le site "XQuartz":http://xquartz.macosforge.org.
h3. La police Linux Libertine
La police Linux Libertine est une police libre qui couvre les pages de code pour les langues latines, le grec, les langues cyrilliques, l'hébreu, l'alphabet phonétique international (et d'autres). Il faut télécharger le paquet "OTF" sur le site "LinuxLibertine.org":http://www.linuxlibertine.org.
*Attention* : La version actuelle de XQuartz (2.7.4) ne reconnait pas les polices installées dans le dossier de l'utilisateur. Il faut installer les polices en les déplaçant dans le dossier "@/Library/Fonts@".
h3. MacPorts
MacPorts est un système qui permet de compiler, installer et gérer des logiciels source libre. Il faut télécharger le paquet d'installation Mountain Lion sur le site "MacPorts":http://www.macports.org et installer MacPorts.
h2. MacPorts et les fichiers de port
Un fichier de port MacPorts contient les informations qui permettent d'installer un programme dans le système MacPorts. Il indique quels sont les outils nécessaires à l'installation et au fonctionnement du programme et comment faire pour installer le programme. MacPorts contient de "nombreux ports":http://www.macports.org/ports.php", mais il ne contient pas de port décrivant l'installation d'AMC à partir du code source du programme. Certains outils nécessaires pour l'installation et le fonctionnement d'AMC sont absents de MacPorts. Il va donc falloir créer les fichiers de port pour ces outils ainsi que le fichier de port pour la version de développement d'AMC.
Pour éviter les conflits avec les ports déjà décrits de MacPorts, les nouveaux fichiers de ports seront installés dans le dossier de l'utilisateur qui fait l'installation, au lieu d'être installés dans les dossiers directements gérés par MacPorts.
*Remarque* : MacPorts est un effort collaboratif et de nombreux développeurs participent à son évolution. Ainsi les fichiers décrits ici ont ils été proposés pour être ajoutés aux fichiers référencés dans MacPorts. Lorsque et si un ajout est accepté, le fichier de port local n'est plus nécessaire. Une mise à jour de MacPorts importera le fichier de port accepté dans la hiérarchie standard de MacPorts.
h3. Dépot local MacPorts
Pour que MacPorts puisse utiliser un dossier local, il faut créer ce dossier local.
<pre>mkdir -p ~/nix/macports</pre>
Il faut ensuite indiquer à MacPorts de prendre en compte le dossier local et ceci, avant la prise en compte de la hiérarchie standard de MacPorts. Pour cela il faut éditer le fichier "@/opt/local/etc/macports/sources.conf@" et ajouter un URL pointant vers le dossier local avant l'URL @rsync@ du dépot MacPorts.
<pre>file:///Users/julesvernes/nix/macports
rsync://rsync.macports.org/release/tarballs/ports.tar [default]</pre>
h3. Fichiers de ports
Une archive contenant les fichiers de ports décrits ici est disponible au téléchargement : attachment:macports.zip.
Les ports sont regroupés par catégories et l'organisation des fichiers de port reflète ce groupement. Chaque port fait partie d'une catégorie principale et dispose de son propre dossier. La catégorie principale de AMC dans MacPorts est X11, aussi le dossier du port pour AMC se trouvera à l'intérieur d'un dossier @X11@. AMC est développé en PERL et nécessite de nombreux modules CPAN. Les modules PERL à ajouter le seront dans le dossier @perl@. Les ports PERL suivants seront ajoutés.
* p5-email-abstract (module CPAN "Email::Abstract":http://search.cpan.org/~rjbs/Email-Abstract)
* p5-email-sender (module CPAN "Email::Sender":http://search.cpan.org/~rjbs/Email-Sender)
* p5-moo (module CPAN "Moo":http://search.cpan.org/~mstrout/Moo)
* p5-moox-types-mooselike (module CPAN "Moox::Types::MooseLike":http://search.cpan.org/~mateu/MooX-Types-MooseLike)
* p5-role-tiny (module CPAN "Role::Tiny":http://search.cpan.org/~ilmari/Role-Tiny)
* p5-strictures (module CPAN "strictures":http://search.cpan.org/~ether/strictures)
* p5-throwable (module CPAN "Throwable":http://search.cpan.org/~rjbs/Throwable)
Les ports suivants seront mis à jour car la version actuellement disponible dans MacPort est trop ancienne.
* -p5-class-load p5-class-load (module CPAN "Class::Load":http://search.cpan.org/~drolsky/Class-Load)- (plus nécessaire, mis à jour dans MacPorts) "Class::Load":http://search.cpan.org/~drolsky/Class-Load)
* p5-email-mime (module CPAN "Email::MIME":http://search.cpan.org/~rjbs/Email-MIME)
* -p5-email-simple (module CPAN "Email::Simple":http://search.cpan.org/~rjbs/Email-Simple)- (plus nécessaire, mis à jour dans MacPorts)
Voici une commande permettant de créer cette hiérarchie.
<pre>cd ~/nix/macports
mkdir -p perl/p5-class-load perl/p5-email-abstract perl/p5-email-mime perl/p5-email-sender \
perl/p5-email-sender perl/p5-email-simple perl/p5-moo perl/p5-moox-types-mooselike \
perl/p5-role-tiny perl/p5-strictures \
perl/p5-throwable x11/auto-multiple-choice-devel</pre>
!port-hierarchy.png!
Chacun des dossiers de port doit contenir un document nommé @Portfile@. Ce document est un document texte contenant une description permettant l'installation par MacPorts de l'outil. Les fichiers de port des nouveaux modules PERL ont été créés avec l'utilitaire "@cpan2port@":https://trac.macports.org/wiki/howto/cpan2port puis modifiés pour respecter les règles et pratiques utilisées par les contributeurs de MacPorts. Pour les modules mis à jour, une copie du fichier de port disponible dans MacPorts a été adaptée pour l'installation de la nouvelle version de l'outil.
h4. @perl/p5-class-load/Portfile@
<pre title="perl/p5-class-load/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Class-Load 0.20
license {Artistic-1 GPL}
maintainers nomaintainer
description a working (require \"Class::Name\") and more
long_description ${description}
platforms darwin
checksums sha256 823c45885e1d29feef6867282b881d402f42af6413c7e0e9f8fe32086aee8c20 \
rmd160 040eeb3049f08444e7d7f3cfcf0bcc03e2ed7e97
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-try-tiny \
port:p${perl5.major}-package-stash \
port:p${perl5.major}-module-implementation \
port:p${perl5.major}-data-optlist \
port:p${perl5.major}-module-runtime
depends_build-append port:p${perl5.major}-test-requires \
port:p${perl5.major}-test-fatal
supported_archs noarch
}</pre>
h4. @perl/p5-email-abstract/Portfile@
<pre title="perl/p5-email-abstract/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-Abstract 3.004
license {Artistic-1 GPL}
maintainers nomaintainer
description Email::Abstract - unified interface to mail representations
long_description Email::Abstract provides module writers with the ability \
to write simple, representation-independent mail handling \
code. For instance, in the cases of Mail::Thread or \
Mail::ListDetector, a key part of the code involves \
reading the headers from a mail object. Where previously \
one would either have to specify the mail class required, \
or to build a new object from scratch, Email::Abstract can \
be used to perform certain simple operations on an object \
regardless of its underlying representation. \
\
Email::Abstract currently supports Mail::Internet, \
MIME::Entity, Mail::Message, Email::Simple and \
Email::MIME. Other representations are encouraged to \
create their own Email::Abstract::* class by copying \
Email::Abstract::EmailSimple. All modules installed under \
the Email::Abstract hierarchy will be automatically \
picked up and used.
platforms darwin
supported_archs noarch
checksums sha256 0d195361c1168b2e890b94aeae6b7b4f2d3eaf6664df18f178c543c1fa532a3a \
rmd160 a6a99eb1c250392c55ee216c79897796c7c8501b
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-email-simple \
port:p${perl5.major}-mro-compat
}</pre>
h4. @perl/p5-email-mime/Portfile@
<pre title="perl/p5-email-mime/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-MIME 1.911
license {Artistic-1 GPL}
maintainers ricci openmaintainer
description Easy MIME message parsing
long_description ${description}
platforms darwin
supported_archs noarch
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-email-mime-contenttype \
port:p${perl5.major}-email-mime-encodings \
port:p${perl5.major}-email-messageid \
port:p${perl5.major}-email-simple \
port:p${perl5.major}-mime-types
checksums sha256 cde752e1cbfc9869547b5f94d8e4b9b64bdb6403746111e02e79be3085be7b5a \
rmd160 ebe53fb4174e5c73002879eab73becb868372fdc
}</pre>
h4. @perl/p5-email-sender/Portfile@
<pre title="perl/p5-email-sender/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Email-Sender 1.300006
license {Artistic-1 GPL}
maintainers nomaintainer
description Email::Sender - a library for sending email
long_description Email::Sender replaces the old and sometimes problematic \
Email::Send library, which did a decent job at handling \
very simple email sending tasks, but was not suitable for \
serious use, for a variety of reasons.
platforms darwin
supported_archs noarch
checksums sha256 860fd72a906f1de8755d7e9c791a1d2517229a997c4612199d949eb0857cfbff \
rmd160 d37ba19b3bdc961dd9c96a72ab8ed987cb65e7ff
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-try-tiny \
port:p${perl5.major}-capture-tiny \
port:p${perl5.major}-moo \
port:p${perl5.major}-sub-exporter \
port:p${perl5.major}-throwable \
port:p${perl5.major}-module-runtime \
port:p${perl5.major}-moox-types-mooselike \
port:p${perl5.major}-email-abstract \
port:p${perl5.major}-email-simple \
port:p${perl5.major}-list-moreutils \
port:p${perl5.major}-email-address
}</pre>
h4. @perl/p5-moo/Portfile@
<pre title="perl/p5-moo/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Moo 1.001000 ../by-authors/id/M/MS/MSTROUT
license {Artistic-1 GPL}
maintainers nomaintainer
description Moo - Minimalist Object Orientation (with Moose compatiblity)
long_description This module is an extremely light-weight subset of Moose \
optimised for rapid startup and \"pay only for what you \
use\". \
\
It also avoids depending on any XS modules to allow simple \
deployments. The name Moo is based on the idea that it \
provides almost -- but not quite -- two thirds of Moose. \
\
Unlike Mouse this module does not aim at full \
compatibility with Moose's surface syntax, preferring \
instead of provide full interoperability via the metaclass \
inflation capabilities described in \"MOO AND MOOSE\".
platforms darwin
supported_archs noarch
checksums sha256 be0abe8537b80b41d278542e8335d72a28ae7915edd274f6c58e0078d95e1e18 \
rmd160 eec88fcab9bd6053e7b7781ce9d960ffeb563e26
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-devel-globaldestruction \
port:p${perl5.major}-strictures \
port:p${perl5.major}-role-tiny \
port:p${perl5.major}-module-runtime \
port:p${perl5.major}-class-method-modifiers
depends_build-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-moox-types-mooselike/Portfile@
<pre title="perl/p5-moox-types-mooselike/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup MooX-Types-MooseLike 0.23
license {Artistic-1 GPL}
maintainers nomaintainer
description MooX::Types::MooseLike - some Moosish types and a type builder
long_description ${description}
platforms darwin
supported_archs noarch
checksums sha256 6b4a9b079490cdce9c6ca4f1211ce853da3367801ca35360e0f0c63495dd5f48 \
rmd160 6cb1ba26bf37fc8adc105676735e067500d21e14
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-moo \
port:p${perl5.major}-module-runtime
depends_build-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-role-tiny/Portfile@
<pre title="perl/p5-role-tiny/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Role-Tiny 1.002005 ../by-authors/id/M/MS/MSTROUT
license {Artistic-1 GPL}
maintainers nomaintainer
description Role::Tiny - Roles. Like a nouvelle cuisine portion size slice of Moose.
long_description Role::Tiny is a minimalist role composition tool.
platforms darwin
supported_archs noarch
checksums sha256 3905f99efd3b604a5de83265914aaa0ead1dcb45c6e38b58c24a2de0309e5bee \
rmd160 aabe3136c2a3877ef6d110b5873c935673985d91
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-test-fatal
}</pre>
h4. @perl/p5-strictures/Portfile@
<pre title="perl/p5-strictures/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup strictures 1.004004 ../by-authors/id/E/ET/ETHER
license {Artistic-1 GPL}
platforms darwin
maintainers nomaintainer
description strictures - turn on strict and make all warnings fatal.
long_description ${description}
checksums sha256 12117dbaaaa85e07cbf01d95927ecb5ba8d5ed896c18d7dbc6b4be47b255ee34 \
rmd160 e9638bdb9621637b457f039913185f1fcf012aa4
supported_archs noarch</pre>
h4. @perl/p5-throwable/Portfile@
<pre title="perl/p5-throwable/Portfile">PortSystem 1.0
PortGroup perl5 1.0
perl5.branches 5.8 5.10 5.12 5.14 5.16
perl5.setup Throwable 0.200004 ../by-authors/id/R/RJ/RJBS
license {Artistic-1 GPL}
maintainers nomaintainer
description Throwable - a role for classes that can be thrown
long_description Throwable is a role for classes that are meant to be \
thrown as exceptions to standard program flow. It is \
very simple and does only two things: saves any previous \
value for \$@ and calls die \$self.
platforms darwin
supported_archs noarch
checksums sha256 dda2f5c50ecf92e19a5a294d175ca44364ffcc4b7b88e5eac0461dd63219a30e \
rmd160 00683277732ba97c0ff2dca408b332f5f066bf0b
if {${perl5.major} != ""} {
depends_lib-append port:p${perl5.major}-moox-types-mooselike \
port:p${perl5.major}-devel-stacktrace \
port:p${perl5.major}-class-load \
port:p${perl5.major}-moo
}</pre>
h4. @x11/auto-multiple-choice-devel/Portfile@
<pre title="x11/auto-multiple-choice-devel/Portfile"># -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 96038 2012-07-30 02:14:11Z dports@macports.org $
PortSystem 1.0
name auto-multiple-choice-devel
svn.revision 1361
version 1.1.1.${svn.revision}
categories x11 tex education
platforms darwin
license GPL-2+
maintainers nomaintainer
description Auto Multiple Choice - Multiple Choice Papers Management
long_description Utility to manage multiple choice questionnaires, \
with optionally mixed questions and answers. \
AMC provides automatic marking from papers' scans. \
Annotated papers are produced. Marks can be exported \
as an OpenOffice.org sheet file. \
\
This version can't print. Documents should be printed from OS X.
homepage http://home.gna.org/auto-qcm
conflicts auto-multiple-choice
depends_build-append port:dblatex \
port:p5.12-xml-libxml
depends_lib port:opencv
depends_run port:p5.12-gtk2 \
port:p5.12-xml-simple \
port:p5.12-xml-writer \
port:p5.12-archive-zip \
port:p5.12-locale-gettext \
port:p5.12-digest-md5 \
port:p5.12-module-load-conditional \
port:p5.12-perlmagick \
port:p5.12-openoffice-oodoc \
port:p5.12-file-mimeinfo \
port:p5.12-dbd-sqlite \
port:p5.12-text-csv \
port:p5.12-file-basedir \
port:p5.12-email-mime \
port:p5.12-email-sender \
port:sqlite3 \
port:poppler \
port:netpbm \
port:librsvg \
port:gdk-pixbuf2
use_configure no
fetch.type svn
svn.url svn://svn.gna.org/auto-qcm/trunk/
worksrcdir trunk
build.args AMCCONF=macports \
BASEPATH=${prefix} \
LATEX_FREE=1 \
GCC_PP="${configure.cc} ${configure.cc_archflags}"
# When building from source, some files should be configured before.
# This pre-configuration use the make tool, not the configure tool.
pre-build {
system -W ${worksrcpath} "${build.cmd} version_files"
}
# When first installed auto-multiple-choice could fail to launch with
# a "Format d'image non reconnu at /opt/local/lib/AMC/perl/AMC-gui.pl line 101"
# ("Unknown image format?").
# The following update cache command makes auto-multiple-choice happy.
post-activate {
system "${prefix}/bin/gdk-pixbuf-query-loaders --update-cache 2>&1"
}
destroot.args AMCCONF=macports \
BASEPATH=${prefix}
variant latex description "Add LaTeX support" {
depends_run-append port:texlive-latex-extra \
port:texlive-latex-recommended \
port:texlive-fonts-recommended \
port:texlive-xetex
build.args-delete LATEX_FREE=1
post-activate {
system "${prefix}/bin/mktexlsr 2>&1"
}
post-deactivate {
system "${prefix}/bin/mktexlsr 2>&1"
}
}
default_variants +latex
livecheck.type regex
livecheck.url http://svn.gna.org/viewcvs/auto-qcm/trunk/
livecheck.version ${svn.revision}
livecheck.regex {Revision (\d+)}</pre>
h2. Installation de AMC
Une fois les fichiers de port mis en place, il faut générer l'index des nouveaux ports.
<pre>cd ~/nix/macports
portindex</pre>
Enfin, l'installation de la version de développement d'AMC peut être lancée.
<pre>sudo port install auto-multiple-choice-devel</pre>
AMC est prêt à être utilisé.
*Attention* : les versions standard et développement d'AMC ne peuvent être installées simultanément. Si une version standard était précédemment installée, il faut la désinstaller avant l'installation de la version de développement.
<pre>sudo port uninstall auto-multiple-choice</pre>
h2. Utilisation de AMC
Vous pouvez lancer AMC à partir du terminal ou à partir de XQuartz.
h3. Dans Terminal
<pre>auto-multiple-choice-devel</pre>
Cette commande lancera l'application XQuartz puis AMC.
h3. Dans XQuartz
Lancer l'application XQuartz.
!xquartz.png!
On peut tout de suite configurer XQuartz pour faciliter le lancement de AMC. Ouvrir le menu @Applications > Personnaliserâ¦@.
!xquartz-menu-applications-personnaliser.png!
Dans la fenêtre de personnalisation, cliquer le bouton @Ajouter un élément@.
!xquartz-fenetre-personnaliser-menu-applications.png!
Mettre "@Auto Multiple Choice@" dans la colonne @Nom@ et "@auto-multiple-choice@" dans la colonne @Commande@ du nouvel item de menu.
!xquartz-fenetre-personnaliser-menu-applications-2.png!
Fermer la fenêtre de personnalisation puis choisir le menu @Applications > Auto Multiple Choix@.
!xquartz-menu-applications-amc.png!
La fenêtre de AMC doit apparaître.
!auto-multiple-choice-window.png!
à part pour l'impression, tout devrait marcher.
h2. Liens
* Auto Multiple Choice, "http://home.gna.org/auto-qcm/":http://home.gna.org/auto-qcm/.
* Auto Multiple Choice "(version 1.1.1) - installation sous OS X Mountain Lion (10.8)":http://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Installation_d'AMC_sous_OS_X_Mountain_Lion.
* MacPorts, "http://www.macports.org":http://www.macports.org.
* MacPorts, "Local Portfile Repositories":http://guide.macports.org/#development.local-repositories.
* MacPorts, "How to create portfiles for CPAN Perl modules":https://trac.macports.org/wiki/howto/cpan2port.
* Famille de polices Linux Libertine, "LinuxLibertine.org":http://www.linuxlibertine.org.
* XQuartz, http://xquartz.macosforge.org</a>.