3.2. Linux
Beaucoup de distributions GNU Linux/BSD incluent Bugzilla et ses
dépendances dans leur système de gestion de paquets natif.
Installer Bugzilla avec un accès root
sur tout système GNU Linux/BSD
devrait être aussi facile que de trouver le paquet Bugzilla dans l’application
de gestion de paquet et de l’installer en utilisant la syntaxe
de commande normale. Il peut y avoir toutefois un peu de paramétrage supplémentaire à faire.
Si vous installez votre machine à partir de zéro, Démarrage rapide (Ubuntu Linux 22.04) contient probablement les meilleures instructions dans votre cas.
3.2.1. Installer les paquets
Utilisez les gestionnaires de paquets de votre distribution pour installer Perl, votre moteur de base de données préféré (MySQL ou MariaDB dans le doute) et un serveur Web (Apache dans le doute). Certaines distributions proposent même un paquet Bugzilla, cependant, celui-ci peut-être un peu vieux.
Les commandes ci-dessous installeront ceux-ci et d’autres paquets nécessaires au fonctionnement de Bugzilla. Si un paquet ne s’installe pas ou si le nom n’est pas trouvé, retirez-le de la liste et relancez la commande. Si vous utilisez un autre moteur de base de données ou un autre serveur Web, substituez les noms de paquets avec les libellés appropriés.
3.2.1.1. Fedora, CentOS Stream et RHEL
Les commandes suivantes installeront le paquet Bugzilla fourni par Fedora :
yum install bugzilla httpd mariadb-server
Ensuite, vous pourrez alors
consulter configuration de la base de données. Il peut être utile de savoir que
Fedora stockent les fichiers Bugzilla dans /usr/share/bugzilla
. C’est donc dans ce répertoire
qu’il faudra exécuter checksetup.pl
.
Si vous voulez installer une version de Bugzilla fournie par le projet Bugzilla sur RHEL ou CentOS manuellement, vous devrez suivre les instructions suivantes :
Sur CentOS Stream and RHEL, ajouter le dépôt Fedora EPEL comme indiqué dans les instructions d’installation.
Lancer la commande suivante pour installer les dépendances de Bugzilla :
dnf install git httpd httpd-devel mariadb-devel gcc mariadb-server mod_perl mod_perl-devel 'perl(autodie)' 'perl(CGI)' 'perl(Date::Format)' 'perl(DateTime)' 'perl(DateTime::TimeZone)' 'perl(DBI)' 'perl(DBD::mysql)' 'perl(DBIx::Connector)' 'perl(Digest::SHA)' 'perl(Email::MIME)' 'perl(Email::Sender)' 'perl(fields)' 'perl(JSON::XS)' 'perl(List::MoreUtils)' 'perl(Math::Random::ISAAC)' 'perl(Memoize)' 'perl(Safe)' 'perl(Template)' 'perl(URI)'
Sur Fedora, toutes les dépendances optionnelles sont disponibles :
dnf install gd-devel graphviz patchutils 'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' 'perl(Cache::Memcached)' 'perl(Chart::Lines)' 'perl(Daemon::Generic)' 'perl(Email::Reply)' 'perl(Encode)' 'perl(Encode::Detect)' 'perl(File::Copy::Recursive)' 'perl(File::MimeInfo::Magic)' 'perl(File::Which)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(LWP::UserAgent)' 'perl(MIME::Parser)' 'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' 'perl(PatchReader)' 'perl(SOAP::Lite)' 'perl(Template::Plugin::GD::Image)' 'perl(Test::Taint)' 'perl(TheSchwartz)' 'perl(XMLRPC::Lite)' 'perl(XML::Twig)'
Sur CentOS Stream et RHEL avec EPEL, quelques modules sont absents des dépôts. Il faut donc utiliser la commande suivante :
dnf install gd-devel graphviz patchutils 'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' 'perl(Cache::Memcached)' 'perl(Encode)' 'perl(Encode::Detect)' 'perl(File::Copy::Recursive)' 'perl(File::MimeInfo::Magic)' 'perl(File::Which)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' 'perl(HTML::Parser)' 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(LWP::UserAgent)' 'perl(MIME::Parser)' 'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' 'perl(SOAP::Lite)' 'perl(Test::Taint)' 'perl(XMLRPC::Lite)' 'perl(XML::Twig)'
et installer les modules optionnels avec la commande :
cd /var/www/html/bugzilla/ && ./install-module.pl Chart::Lines Daemon::Generic Email::Reply HTML::FormatText::WithLinks PatchReader Template::Plugin::GD::Image TheSchwartz
Si vous projetez d’utiliser un moteur de base de données autre que MariaDB, vous devrez alors aussi installer les paquets appropriés.
3.2.1.2. Ubuntu et Debian
Vous pouvez installer les paquets nécessaires avec la commande : apt install apache2 build-essential git libcgi-pm-perl libdatetime-perl libdatetime-timezone-perl libdbi-perl libdbix-connector-perl libdigest-sha-perl libemail-address-perl libemail-mime-perl libemail-sender-perl libjson-xs-perl liblist-moreutils-perl libmath-random-isaac-perl libtemplate-perl libtimedate-perl liburi-perl libmariadb-dev-compat libdbd-mysql-perl mariadb-server
Si vous projetez d’utiliser un moteur de base de données autre que MariaDB, vous devrez
alors aussi installer les paquets appropriés. Dans la commande ci-dessus, les paquets
nécessaires pour MariaDB sont : libdbd-mysql-perl
, libmariadb-dev-compat
et mariadb-server
).
Vous pouvez installer les paquets optionnels avec la commande : apt install graphviz libapache2-mod-perl2 libapache2-mod-perl2-dev libauthen-radius-perl libauthen-sasl-perl libcache-memcached-perl libchart-perl libdaemon-generic-perl libemail-reply-perl libencode-detect-perl libencode-perl libfile-copy-recursive-perl libfile-mimeinfo-perl libfile-which-perl libgd-dev libgd-graph-perl libgd-perl libgd-text-perl libhtml-formattext-withlinks-perl libhtml-parser-perl libhtml-scrubber-perl libio-stringy-perl libjson-rpc-perl libmime-tools-perl libnet-ldap-perl libnet-smtp-ssl-perl libsoap-lite-perl libtemplate-plugin-gd-perl libtest-taint-perl libtheschwartz-perl libwww-perl libxmlrpc-lite-perl libxml-twig-perl
Il n’existe pas de paquet Debian ou Ubuntu pour PatchReader
. Si vous en avez besoin, vous devrez
l’installer par un aure moyen que le gestionnaire de paquets.
3.2.1.3. Gentoo
emerge -av bugzilla
installera Bugzilla et toutes ses dépendances. Si vous n’avez pas le flag vhosts
USE activé, Bugzilla sera installé dans /var/www/localhost/bugzilla
.
Vous pourrez ensuite vous rendre dans Configuration de la base de données.
3.2.1.4. openSUSE
zypper in bugzilla
Il est disponible dans les dépôts openSUSE Leap depuis la version 15.2 et dans les
dépôts openSUSE Tumbleweed. Un paquet optionnel bugzilla-apache
est disponible et
permet de passer outre la configuration de la base de données.
3.2.2. Perl
Testez la version de Perl installée avec la commande suivante :
$ perl -v
Bugzilla nécessite au minimum la version Perl 5.14.0.
3.2.3. Bugzilla
Le meilleur moyen d’obtenir Bugzilla est de le faire par git :
git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla
Exécutez la commande ci-dessus dans votre répertoire home
, en remplaçant X.X
avec les deux nombres
de la version stable de Bugzilla que vous désirez - par ex. 4.4
.
Si ce n’est pas possible, vous pouvez télécharger l’archive de Bugzilla <http://www.bugzilla.org/download/>`_.
Placez Bugzilla dans le répertoire approprié, accessible par l’utilisateur du serveur Web
(probablement apache
ou www-data
).
Un bon emplacement est soit directement à la racine du serveur Web
(souvent /var/www/html
) soit dans /usr/local
, avec un lien symbolique
vers la racine du serveur Web ou un alias dans la configuration du
serveur Web.
Avertissement
La distribution Bugzilla par défaut n’est PAS conçue pour être placée
dans le répertoire cgi-bin
. Ceci inclut également tout répertoire
configuré en utilisant la directive
ScriptAlias
d’Apache.
3.2.4. Perl Modules
Bugzilla nécessite de nombreux modules Perl. Vous pouvez les installer globalement en utilisant le gestionnaire de paquets de votre distribution, ou en installant des copies utilisées seulement pour Bugzilla. Parfois, Bugzilla peut nécessiter une version d’un module Perl plus récent que celui fourni par votre distribution, auquel cas, vous devrez installer une copie de cette version utilisée par Bugzilla seulement.
Vous devrez alors être root
, par ex. en utilisant la
commande su. Vous devrez rester root
jusqu’à la fin de l’installation. Ceci peut
être évité dans certaines circonstances si vous êtes membre du groupe du serveur Web,
mais être root
est plus facile et fonctionne toujours.
Pour vérifier si vous avez tous les modules nécessaires, exécutez la commande :
./checksetup.pl --check-modules
Vous pouvez lancer cette commande autant de fois que nécessaire.
Si vous n’avez pas déjà tous les modules nécessaires, vous pouvez les installer en utilisant le gestionnaire de paquets de votre distribution. Vous pouvez alternativement installer tous les modules manquants localement (c-à-d. seulement pour Bugzilla) comme ceci :
./install-module.pl --all
Vous pouvez également indiquer un nom de module individuel :
./install-module.pl <modulename>
3.2.5. Serveur Web
Tout serveur Web en mesure d’exécuter des scripts CGI peut être utilisé. Nous avons des instructions spécifiques pour les suivants :
3.2.6. Moteur de base de données
Bugzilla peut fonctionner avec les moteurs de base de données MySQL, MariaDB, PostgreSQL, Oracle et SQLite. Vous n’avez besoin que d’un seul de ces moteurs pour utiliser Bugzilla. MySQL et MariaDB sont les plus couramment utilisés. SQLite est adapté pour des installations de test car il ne nécessite pas de configuration. Configurez votre serveur en suivant les instructions ci-dessous :
3.2.7. localconfig
Vous devez maintenant exécuter checksetup.pl
à nouveau, cette fois
sans l’argument --check-modules
.
./checksetup.pl
Cette fois, checksetup.pl
devrait vous dire que tous les
modules appropriés sont installés et affichera un message à ce sujet, et générera
un fichier de sortie appelé localconfig
. Ce fichier contient les
paramètres par défaut pour un grand nombre de paramètres de Bugzilla.
Ouvrez ce fichier dans votre éditeur. Les deux seules valeurs que vous avez
besoin de changer sont $db_driver
et $db_pass
,
respectivement le type de base de données et le mot de passe pour
l’utilisateur qui créera pour vous la base de données. Choisissez un mot de passe
compliqué (pour la simplicité, il ne devrait pas contenir d’apostrophe)
et saisissez-le dans le fichier. $db_driver
peut être mysql
,
Pg
(PostgreSQL), oracle
ou SQLite
.
Définissez la valeur de $webservergroup
avec le nom groupe avec lequel votre serveur Web s’exécute.
Fedora/Red Hat :
apache
Debian/Ubuntu :
www-data
Mac OS X :
_www
Windows : ignorez ce paramètre car il n’est pas utile pour ce système d’exploitation
Les autres options dans le fichier localconfig
sont documentées avec leurs
commentaires. Si vous avez une configuration de base de données non standard, vous aurez
peut-être besoin de modifier d’autres paramètres $db_*
.
Note
Sous Oracle, $db_name
devrait en fait être
le nom du SID de votre base de données (par ex. XE
si vous utilisez Oracle XE).
3.2.8. checksetup.pl
Ensuite, exécutez checksetup.pl
une nouvelle fois :
./checksetup.pl
Il confirmera à nouveau
que tous les modules sont présents et remarquera la modification
du fichier localconfig
, en supposant que vous l’avez modifié
à votre convenance. Il compile ensuite les modèles de l’interface utilisateur,
se connecte à la base de données en utilisant l’utilisateur bugs
que vous avez créé et le mot de passe que vous avez défini et crée enfin la base de
données bugs
et les tables à l’intérieur.
Après cela, il demande des détails sur le compte administrateur. Bugzilla peut avoir plusieurs administrateurs –vous pouvez en créer d’autres plus tard– mais il en a besoin d’un pour démarrer. Saisissez l’adresse électronique d’un administrateur, son nom complet, et un mot de passe approprié pour Bugzilla.
checksetup.pl
se terminera alors. Vous pouvez relancer
checksetup.pl
à tout moment si vous le souhaitez.
3.2.9. Bravo
Votre installation Bugzilla devrait à présent fonctionner. Vérifiez-le en exécutant la commande suivante :
./testserver.pl http://<your-bugzilla-server>/
Si elle passe sans erreur, accédez à http://<your-bugzilla-server>/
dans votre navigateur
–vous devriez alors voir la page d’accueil de Bugzilla. Bien sûr, si vous avez installé Bugzilla
dans un sous-répertoire, assurez-vous que celui-ci figure dans URL.
Ensuite, consultez Configuration post-installation essentielle.
Cette documentation contient très probablement des bogues ; si vous en découvrez, veuillez les signaler ici.