Fedora RPM Guide - en to fr translation catalogue (128 entries)

note: Tag: title
en: Packaging Guidelines
fr: Recommandations pour l'empaquetage

note: Tag: para
en: This chapter covers:
fr: Ce chapitre porte sur :

note: Tag: para
en: Avoiding common mistakes
fr: le contournement des erreurs courantes

note: Tag: para
en: Following good practices
fr: le suivi de bonnes pratiques

note: Tag: para
en: RPM is a complex system that helps manage thousands of packages for a complex operating system. Furthermore, RPM is very, very flexible. This flexibility makes it important that you follow the rules to create packages the proper way. Otherwise, you’ll face a host of problems with your RPMs. Following some best practices guidelines will help you avoid future problems as you release RPM updates.
fr: RPM est un système sophistiqué pour vous aider à gérer des milliers de paquets sur un système d'exploitation complexe. Plus encore, RPM est très, très souple. Cette souplesse induit l'importance d'être en adéquation avec les règles de création des paquets. À défaut, vous serez face à un tas de difficultés avec vos RPM. Le suivi de recommandations pour de meilleures pratiques vous aidera à éviter de futurs problèmes lors de la parution de mise à jour du RPM.

note: Tag: para
en: This chapter covers ways to avoid common problems as well as best-practice guidelines for creating your own RPMs.
fr: Ce chapitre porte sur les moyens d'éviter les problèmes courants. Il donne également des recommandations de bonnes pratiques pour créer vos propres RPM.

note: Tag: title
en: Avoiding Common Problems
fr: Contournement de problèmes courants

note: Tag: para
en: Developers creating RPMs seem to hit many of the same roadblocks. This section covers some of the most common problems faced by RPM users and package builders.
fr: Les développeurs créant des RPM semblent toujours buter sur les mêmes écueils. Cette section traite de quelques uns des problèmes les plus courants rencontrés par les utilisateurs de RPM et par les constructeurs de paquets.

note: Tag: para
en: Warning
fr: Avertissement

note: Tag: para
en: Never, never, never build RPMs logged in as the root user. See the section on Building for details.
fr: Jamais, au grand jamais, ne construisez de RPM en étant connecté en tant qu'administrateur. Voyez le paragraphe Construire pour plus de détails.

note: Tag: title
en: Scan the mailing lists
fr: Parcourir les listes de messages

note: Tag: para
en: Many people have tried to solve a lot of serious problems that arise when using RPM, so if you are facing difficulties, chances are someone else has tackled those issues before. The RPM mailing list provides a technical forum for discussing RPM issues and problems. In many, if not most, cases, you can find answers to problems by scanning the mailing list archives.
fr: Beaucoup de personnes se sont efforcées de résoudre un tas de problèmes sérieux qui surviennent lors de l'utilisation de RPM ; donc, si vous faites face à des difficultés, il y a quelques chances qu'elles aient déjà été résolues par certains. La liste des messages RPM offre un forum technique pour discuter des problèmes et des solutions autour de RPM. Dans la plupart des cas, si ce n'est la majorité, vous trouverez une réponse à vos problèmes en parcourant les archives des listes de messages.

note: Tag: para
en: You can also sign up for the mailing list so that you can send in requests and see the responses.
fr: Vous pouvez également vous inscrire sur la liste de messages, et ainsi y poser vos questions et voir les réponses.

note: Tag: para
en: Cross Reference
fr: Référence croisée

note: Tag: para
en: For details on viewing the RPM mailing list archives and signing up for the list, see www.rpm.org/mailing_list/. See <ulink url="http://groups.yahoo.com/group/rpm-list/messages">http://groups.yahoo.com/group/rpm-list/messages</ulink> for an archive of the list.
fr: Pour des précisions sur la façon de consulter la liste de messages RPM et de s'y enregistrer, voyez <ulink url="http://www.rpm.org/wiki/Communicate" />. Consultez <ulink url="http://lists.rpm.org/pipermail/rpm-list/" /> et <ulink url="https://www.redhat.com/archives/rpm-list/" /> pour les archives de la liste.

note: Tag: para
en: If you are working with RPMs and pushing the envelope for other operating systems or complicated packages, this list is definitely worth a look.
fr: Si vous travaillez avec RPM, que vous innovez pour d'autres systèmes d'exploitation ou pour des paquets complexes, cette liste vaut sans aucun doute la peine d'être consultée.

note: Tag: para
en: Before sending any messages, though, be sure to look through the message archives to see if the message has already been answered. You will save time waiting for a response if you can get an archived response right away.
fr: Avant d'envoyer un quelconque message, assurez-vous toutefois d'avoir parcouru les archives pour voir si le message n'aurait pas déjà trouvé de réponse. Vous gagnerez du temps d'attente si vous trouvez immédiatement une réponse dans les archives.

note: Tag: para
en: You should also ask any questions in a way that will generate the most helpful responses. This includes:
fr: Veuillez également interroger de façon à ce que la question génère les réponses les plus utiles. Cela consiste à :

note: Tag: para
en: Do your homework first. Check to see if your question has already been answered by looking at the mailing list or newsgroup archives. In the end, this saves you the most time, as you don’t have to wait for answers.
fr:  — faire au préalable votre travail localement. Vérifiez que votre question n'a pas déjà trouvé une réponse en examinant la liste des messages ou les archives des groupes de nouvelles. Finalement, c'est ce qui vous fera gagner le plus de temps, étant donné que n'aurez pas à attendre des réponses.

note: Tag: para
en: Describe the problem and the symptoms as clearly as possible. After all, this is what you want help with.
fr:  — décrire le problème et ses symptômes aussi clairement que possible. C'est le sujet même de votre demande d'aide.

note: Tag: para
en: Use clear subject headers. This is the first part of your message that people will read. If you are not clear, the key people who could answer your questions may never even read your message. And, if they don’t read the message, you will never get an answer.
fr:  — définir clairement l'objet de votre question. C'est la partie du message qui sera lue en premier. Si vous n'êtes pas clair, les personnes ayant la clé de vos problèmes ne liront peut-être jamais  votre message. Et, s'ils ne lisent pas le message, ils ne vous donneront jamais la réponse.

note: Tag: para
en: Send your message in plain text, not HTML. Do not include a separate HTML copy of your message. This just makes it harder to read, especially for people who read collected digests of mailing lists.
fr:  — envoyer votre message en texte brut, pas en HTML. N'incorporez pas de copie HTML séparée de votre message. Cela ne le rendrait que plus difficile à lire, en particulier pour les gens qui ne parcourent que les collections de résumés des listes de messages.

note: Tag: para
en: Make it easy for people to reply to you. Include your email address in your message. You might want to include a line that states something like “Please send your reply to me at” and then provide your email address.
fr:  — faciliter la réponse de vos interlocuteurs. Incorporez votre adresse électronique dans votre message. Vous pourrez ajouter une ligne comme « Please send your reply to me at » (Veuillez adresser votre réponse à l'adresse...), suivie de votre adresse e-mail.

note: Tag: para
en: These tips on asking questions come from the Internet document on How to Ask Questions the Smart Way by Eric Steven Raymond and Rick Moen, available at multiple sites, including www.owlriver.com/tips/smart.
fr: Ces astuces pour poser des questions sont tirées du document internet « How to Ask Questions the Smart Way » (Comment questionner : les manières élégantes) de Eric Steven Raymond et Rick Moen, disponibles sur de multiples sites, en particulier <ulink url="http://www.gnurou.org/writing/smartquestionsfr" />.

note: Tag: para
en: In addition to the RPM mailing list, there is also a Usenet newsgroup, named linux.redhat.rpm. You can read this newsgroup with any newsreading program.
fr: En plus des listes de messages RPM, il y a le groupe de nouvelles Usenet, appelé linux.redhat.rpm. Vous pouvez lire ce groupe de nouvelles avec n'importe quel programme de lecture de nouvelles.

note: Tag: para
en: Newsgroups are sometimes called discussion groups.
fr: Les groupes de nouvelles sont quelquefois appelés groupes de discussion.

note: Tag: title
en: Use rpmbuild
fr: Utiliser <command>rpmbuild</command>

note: Tag: para
en: In older versions of RPM, you called the rpm –ba command to build RPMs. With RPM 4.1, you must use the rpmbuild command. If you have the rpmbuild command available, even if you are running an older version of RPM, run rpmbuild instead of rpm to build your RPMs.
fr: Dans les versions les plus anciennes de RPM, vous faisiez appel à la commande <command>rpm –ba</command> pour construire des RPM. Avec RPM 4.1, vous devez utiliser la commande <command>rpmbuild</command>. Si la commande <command>rpmbuild</command> est à votre disposition, même si vous exécutez une ancienne version de RPM, utilisez <command>rpmbuild</command> au lieu de <command>rpm</command> pour construire vos RPM.

note: Tag: para
en: You’d be surprised at how such a simple item is one of the most-asked questions on the RPM mailing list. That’s because the rpm –ba command, and the other –b options, no longer work in RPM 4.1. These options are supported by the rpmbuild command.
fr: Vous ne manquerez pas d'être surpris comment une chose aussi simple puisse être une des questions les plus fréquemment posées sur la liste de messages RPM. Cela provient du fait que la commande <command>rpm -ba</command>, ainsi que les autres options <option>-b</option>, ne fonctionnent plus avec RPM 4.1. Ces options sont maintenant prises en charge par la commande <command>rpmbuild</command>.

note: Tag: title
en: Don’t try to defeat the system
fr: Ne pas essayer de mettre en échec le système

note: Tag: para
en: If you are finding your spec files getting more and more complex, and that you are trying to disable RPM features, chances are you are trying to defeat the system. This is not a good idea.
fr: Trouvant que vos fichiers spec deviennent de plus en plus compliqués, si vous essayez de désactiver les fonctionnalités RPM, il y a des chances que vous soyez en train de vous efforcer de mettre le système en échec. Ce n'est pas une bonne idée.

note: Tag: para
en: The RPM system works in a certain way. You may not always agree with the way it works, but if you try to make it work in contrary ways, in most cases you’ll end up fighting RPM to no avail.
fr: Le système RPM fonctionne d'une certaine façon. Vous ne serez peut-être pas toujours d'accord avec cette façon de travailler, mais si vous essayez de le faire fonctionner à contre sens, dans la plupart des cas vous finirez par engager une vaine bataille contre RPM.

note: Tag: para
en: There are certain rules, and more importantly certain conventions that RPMs should follow. The previous chapters in this section on building RPMs have outlined those conventions. Follow them. When you go against these conventions, you are really trying to defeat how the RPM system works.
fr: Il y a certaines règles, et, plus important, certaines conventions que RPM doit suivre. Les chapitres précédents de cette section sur la construction des RPM ont souligné ces conventions. Suivez-les. Quand vous allez contre, vous vous efforcez en réalité de mettre en échec la méthode de travail de RPM.

note: Tag: title
en: Turn off automatic dependency generation
fr: Désactiver la génération automatique des dépendances

note: Tag: para
en: When you build an RPM, the rpmbuild command will automatically generate dependencies on Linux shared libraries and other system commands. You can turn this off if you need to, using a number of means.
fr: Quand vous construisez un RPM, la commande <command>rpmbuild</command> génère automatiquement les dépendances sur des bibliothèques partagées et autres commandes système. Vous pouvez désactiver cette fonctionnalité si besoin est ; il existe plusieurs façons de le faire.

note: Tag: para
en: You can disable the automatic generation of dependencies by placing the following directive in your spec file:
fr: Vous pouvez désactiver la génération automatique des dépendances en plaçant la directive suivante dans votre fichier spec :

note: Tag: para
en: A better approach, though, is to override the %{__find_requires} and %{__find_provides} macros, or just one of these as needed. You can null out either of these macros by adding commands like the following to your spec file:
fr: Une meilleure approche, toutefois, consiste à neutraliser les macros <structfield>%{__find_requires}</structfield> et <structfield>%{__find_provides}</structfield>, ou uniquement l'une des deux selon nécessité. Vous pouvez annuler l'action de l'une ou l'autre de ces macros en ajoutant une commande du type suivant dans votre fichier spec :

note: Tag: para
en: This approach is better because it allows you to override only the requires checks. In addition, you can get more specific and simply change how the automatic dependency checks are performed. For example, you can also change the definitions of these macros to perform normal dependency generation except for any problematic files or packages. These two macros resolve to shell scripts that perform the automated dependency checks, as you can see with the rpm --eval command:
fr: Cette approche est meilleure parce qu'elle vous permet de neutraliser uniquement la vérification des dépendances requises. En plus, vous pouvez modifier de manière plus précise et plus simple la manière dont la vérification automatique des dépendances est réalisée. Par exemple, vous pouvez aussi modifier les définitions de ces macros pour réaliser une exécution normale de la génération des dépendances sauf pour certains fichiers ou paquets à problèmes. Ces deux macros limitent la vérification de la génération des dépendances aux scripts de l'interpréteur de commande, comme l'indique la commande <command>rpm --eval</command> :

note: Tag: para
en: $ rpm --eval "%__find_provides"
fr: <prompt>$</prompt> <command>rpm --eval "%__find_provides"</command>

note: Tag: para
en: /usr/lib/rpm/find-provides
fr: <computeroutput>/usr/lib/rpm/find-provides</computeroutput>

note: Tag: para
en: rpm --eval "%__find_requires"
fr: <prompt>$</prompt> <command>rpm --eval "%__find_requires"</command>

note: Tag: para
en: /usr/lib/rpm/find-requires
fr: <computeroutput>/usr/lib/rpm/find-requires</computeroutput>

note: Tag: para
en: You can override these scripts to filter out any dependencies that cause problems for your packages.
fr: Vous pouvez annuler ces scripts pour éliminer par filtrage toute dépendance qui poserait problème pour vos paquets.

note: Tag: title
en: Don't list directories in %files
fr: Ne pas lister de répertoires dans <structfield>%files</structfield>

note: Tag: para
en: Unless you really mean it, don’t list directories in your %files section in your spec files. That is because the rpmbuild program will automatically add all files in that directory to your RPM. If this is a system directory, such as /usr/bin, your RPM has now claimed ownership for all the files, regardless of the source package.
fr: Sauf en connaissance de cause, ne listez pas de répertoires dans la section <structfield>%files</structfield> du fichier spec. Le programme <command>rpmbuild</command> ajouterait automatiquement tous les fichiers du répertoire désigné dans votre RPM. S'il s'agit d'un répertoire système, comme <filename>/usr/bin</filename>, RPM réclamera la propriété de tous les fichiers, sans tenir compte du paquet source.

note: Tag: para
en: To avoid all files in the directory becoming part of the package, list the files explicitly, perhaps generating the list of files as the program builds.
fr: Pour éviter que tous les fichiers du répertoire ne fassent partie du répertoire, listez les fichiers de manière explicite, peut-être en créant la liste des fichiers pendant la construction du programme.

note: Tag: para
en: If you do need a directory installed as part of your package, use the %dir directive, described in <xref linkend="ch-specfiles" /> .
fr: Si vous n'avez pas besoin d'un répertoire installé comme partie du paquet, utilisez la directive <structfield>%dir</structfield>, décrite dans le <xref linkend="ch-specfiles"/>.

note: Tag: title
en: Handling circular dependencies
fr: Gérer les dépendances circulaires

note: Tag: para
en: If two packages each depend on the other, you don’t want each package’s spec file to list the other in a Requires section. If this occurs, the packages won’t install without one of the force options, since each package will require the other to be installed first.
fr: Si deux paquets dépendent l'un de l'autre, il n'est pas nécessaire que le fichier spec de chaque paquet liste l'autre dans la section <literal>Requires</literal>. Si cela arrive, les paquets ne s'installeront pas sans employer une des options de forçage, étant donné que chaque paquet requiert que l'autre soit préalablement installé.

note: Tag: para
en: <xref linkend="ch-using-rpm" /> covers how to install or upgrade packages while ignoring dependency checks. In general, you do not want to ignore these checks.
fr: Le <xref linkend="ch-using-rpm" /> indique comment installer ou mettre à jour des paquets en ignorant les vérifications de dépendance. En règle générale, il convient de ne pas ignorer ces vérifications.

note: Tag: para
en: You can work around this issue by using the PreReq directive instead of Requires. For example, if package A depends on B and package B depends on A, you can place the following in the package B spec file:
fr: Vous pouvez contourner cette difficulté en utilisant la directive <literal>PreReq</literal> au lieu de <literal>Requires</literal>. Par exemple, si un paquet A depend de B et que B dépende de A, vous pouvez écrire ce qui suit dans le fichier spec du paquet B :

note: Tag: para
en: PreReq: A
fr: <userinput>PreReq: A</userinput>

note: Tag: para
en: In addition, you can install both packages at the same time to avoid some of the problems with circular dependencies. Simply include both packages on the rpm –Uvh command line.
fr: En outre, vous pouvez installer deux paquets en même temps pour éviter quelques uns des problèmes de dépendances circulaires. Simplement, mettez les deux paquets sur la ligne de commande de <command>rpm –Uvh</command>.

note: Tag: title
en: Following Good Practices
fr: Suivi des bonnes pratiques

note: Tag: para
en: Working through problems is one thing. It’s best, however, to set up an environment to help avoid problems all together. The following sections cover what are considered the best practices for creating RPMs.
fr: Débrouiller des problèmes est une chose. Mais, mettre en place un environnement pour les éviter est bien mieux. Les sections qui suivent traitent de ce qui est considéré comme étant de bonne pratique pour créer des RPM.

note: Tag: para
en: Before you make an RPM, you should plan out what you intend to build and how it will be structured. As you build the RPM, you want to watch out for things that can go wrong, and work from a known clean environment.
fr: Avant de faire un RPM, vous devez élaborer le plan de ce que vous avez l'intention de construire et de la manière dont cela sera structuré. Pendant la construction du RPM, vous serez attentif aux choses qui pourraient mal tourner et vous travaillerez à partir d'un environnement clair et connu.

note: Tag: title
en: Preparation
fr: Préparer

note: Tag: para
en: Before you start to make an RPM, you need to follow a few steps to ensure you have everything ready.
fr: Avant de débuter la construction du RPM, vous devez passer par quelques étapes pour vous assurer que tout est prêt.

note: Tag: title
en: Create a Source RPM
fr: Créer un RPM source

note: Tag: para
en: Having a source RPM allows you to transfer all the sources for a package from one system to another, along with all the instructions coded in the spec file for actually building the binary package. This is very handy for keeping track of software, and it is also very important since you can regenerate the binary RPM at any time from the source RPM. In other words, make the generation of RPMs follow the RPM conventions and fit this into your normal software build process.
fr: Posséder un RPM source vous permet de transférer toutes les sources d'un paquet d'un système à un autre, le tout avec les instructions codées dans le fichier spec pour construire vraiment le paquet binaire. Garder une trace du logiciel est très pratique, et aussi très important pour pouvoir régénérer le RPM binaire n'importe quand à partir du RPM source. En d'autres termes, générer des RPM source est conforme aux conventions de bonne pratique et est en accord avec un processus normal de construction.

note: Tag: para
en: This means that for each RPM you want to build, you really need two: a source and a binary RPM. This isn’t that hard to do, since you can easily make a source RPM into a binary RPM with the rpmbuild command.
fr: Cela signifie que pour chaque RPM que vous souhaitez construire, vous en avez besoin de deux en réalité : un RPM source et un RPM binaire. Ce n'est pas difficile à obtenir, puisque vous pouvez facilement construire un RPM binaire à partir d'un RPM source avec la commande <command>rpmbuild</command>.

note: Tag: title
en: Start with Pristine Sources
fr: Débuter avec des sources intactes

note: Tag: para
en: In addition to planning on making a source RPM, you should also start with pristine, unmodified sources for the application you plan to package as an RPM. Starting with pristine sources means you can reproduce the entire process and recreate the RPM from scratch if necessary. (Quality control and configuration management people really appreciate this.)
fr: En plus, pour prévoir la construction d'un RPM source, vous devez débuter avec des sources intactes, sans modifications, pour l'application que vous avez prévu d'empaqueter en RPM. Démarrer sur des sources intactes signifie que vous serez capable de reproduire la totalité du processus et de recréer le RPM à partir de zéro si nécessaire (les personnels du contrôle qualité et de la gestion des configurations apprécieront vraiment).

note: Tag: para
en: The pristine sources should be exactly the sources you got when you downloaded the application, or acquired it in house. This doesn’t mean that you won’t have to modify the sources eventually. For that, you create patches. The key is just to start the process with unmodified sources.
fr: Les sources intactes sont exactement celles obtenues lors du téléchargement de l'application ou lors de leur prise de possession dans la société. Cela ne signifie pas que vous n'aurez pas éventuellement à modifier les sources. Pour cela, vous créerez des modificatifs. La clé consiste simplement à débuter le processus avec des sources sans modification.

note: Tag: para
en: Some RPMs have nearly 100 patches that the rpmbuild command applies when building the RPM. That is a lot of patches, too many for most applications. Even so, the process is the same. Create a patch or patches for all the changes you need to make. You can easily specify patches in the spec file.
fr: Certains RPM ont près de cent correctifs, que la commande RPM applique lors de la construction. Cela fait un tas de correctifs, beaucoup trop pour la plupart des applications. Mais même dans ce cas, le processus reste le même. Créez un correctif ou des correctifs pour toutes les modifications que vous aurez besoin de faire. Vous pouvez facilement spécifier les correctifs dans le fichier spec.

note: Tag: para
en: <xref linkend="ch-specfiles" /> covers the spec file.
fr: Le <xref linkend="ch-specfiles" /> traite du fichier spec.

note: Tag: para
en: Keeping your patches separate from the original sources makes it easier to reproduce the RPM from scratch, and makes it easier to integrate a new version of the base software, since your code, in the form of patches, is separated from the base software code.
fr: Séparer vos correctifs des sources originelles facilite la reproduction du RPM à partir de zéro, ainsi que l'intégration d'une nouvelle version du logiciel de base, étant donné que votre code, sous forme de correctifs, est séparé du code du logiciel de base.

note: Tag: title
en: Decide What Goes In Each Package
fr: Décider ce qui va dans chaque paquet

note: Tag: para
en: You don’t have to stuff all your software into one RPM. Instead, you can often simplify your RPM by dividing it into two or three separate (but likely dependent) RPMs.
fr: Vous n'avez pas à entasser tous vos logiciels dans un seul RPM. Au lieu de cela, vous simplifierez vos RPM en les divisant en deux ou trois RPM séparés (mais vraisemblablement interdépendants).

note: Tag: para
en: For example, the RPM system itself has one RPM for the basic system, rpm, one for developers of the RPM system, rpm-devel, and one for those building RPMs, rpm-build. Yet another RPM provides the Python programming API, rpm-python.
fr: Par exemple, le système RPM lui-même a un RPM pour le système de base, <package>rpm</package>, un pour les développeurs du système RPM, <package>rpm-devel</package> et un pour ceux qui construisent des RPM, <package>rpm-build</package>. Il y a même encore un autre RPM relatif à l'API de programmation en Python, <package>rpm-python</package>.

note: Tag: para
en: <xref linkend="ch-rpm-programming-python" /> covers Python programming.
fr: Le <xref linkend="ch-rpm-programming-python"/> traite de la programmation en Python.

note: Tag: para
en: This last division is important. The Python RPM draws in as a dependency the Python system itself. Adding this into, say, the core RPM package would needlessly complicate the dependencies for that package.
fr: Cette dernière division est importante. Le RPM Python déclare comme dépendance le système Python lui-même. Ajouter cela dans, disons, le cœur du paquet RPM aurait compliqué pour rien les dépendances de ce paquet.

note: Tag: para
en: When dividing your software into RPMs, keep two main issues in mind:
fr: Quand vous divisez votre logiciel en plusieurs RPM, gardez en tête deux objectifs primordiaux :

note: Tag: para
en: *You want to divide the software into RPMs that fit the model for users of the system.
fr:  — diviser le logiciel en RPM correspondant au mode de travail des utilisateurs du système.

note: Tag: para
en: *You want to divide the software into RPMs such that the separate RPMs are simpler to create and manage.
fr:  — diviser le logiciel en RPM de sorte que les RPM séparés soient plus simples à créer et à gérer.

note: Tag: para
en: The RPM system follows these guidelines, especially the first. Few users will extend the RPM system itself, which allows RPM team to shed this functionality from the core RPM and contain it in rpm-devel. Those who build RPMs fit into a different category than those who use RPMs since just about everybody needs to use RPMs to install packages, but few users actually build RPMs. Again, the separation works from a user’s perspective.
fr: Le système RPM suit ces recommandations, la première en particulier. Peu d'utilisateurs demandent à étendre le système RPM aux fonctionnalités de développement, ce qui a incité l'équipe RPM de les isoler du cœur de RPM et les cantonner dans <package>rpm-devel</package>. Ceux qui construisent des RPM font partie d'une catégorie différente de ceux qui utilisent les RPM comme monsieur Toutlemonde, uniquement pour installer des paquets ; mais peu d'utilisateurs construisent en fait des RPM. Et à nouveau, la séparation s'opère dans une perspective utilisateur.

note: Tag: para
en: You also want your package divisions to make each package easier to specify. You can break particularly tough dependencies into smaller units and simplify things. If the package division doesn’t simplify things, then it may not be a good idea.
fr: Vous souhaitez certainement que la division du paquet rende chacun des sous-paquets plus facile à définir. Vous pouvez casser des dépendances particulièrement coriaces en plus petites unités et simplifier les choses. Si la division des paquets ne simplifie pas les choses, alors, ce n'est certainement pas une bonne idée.

note: Tag: title
en: Create a Test RPM Database
fr: Créer une base de données RPM de test

note: Tag: para
en: You don’t always have to work with the system RPM database. In fact, while developing RPMs, you probably don’t want to change the system database.
fr: Vous ne devez pas travailler en permanence avec la base de données RPM. En fait, lors du développement des RPM, vous ne souhaitez probablement pas faire de modifications à la base système.

note: Tag: para
en: If you have a test RPM database, you can install your RPMs into this test database. To do so, use the --justdb, --dbpath, --prefix, and --badreloc options. These options allow you to install an RPM into just the database, using a different database, with a different root file location (into a test directory, for example) and handle all files that were not marked for relocation, respectively.
fr: Si vous avez une base de données RPM de test, vous pouvez installer vos RPM dans cette base. Pour ce faire, utilisez les options <option>--justdb</option>, <option>--dbpath</option>, <option>--prefix</option> et <option>--badreloc</option>. Ces options vous permettent respectivement, d'installer un RPM dans la base, en utilisant une base différente, avec un emplacement différent du fichier racine (dans un répertoire de test, par exemple) et de gérer tous les fichiers non marqués pour relogement.

note: Tag: para
en: The --test option when installing also allows you to just test the install, not actually perform it.
fr: L'option <option>--test</option> vous permet aussi de faire uniquement un test d'installation, sans la réaliser effectivement.

note: Tag: para
en: Combined, all these options mean you can use an RPM database just set up for testing and that problems won’t impact your working Linux systems. To make this work, though, you need a test RPM database.
fr: Combinées, toutes ces options vous donnent le moyen d'utiliser une base de données RPM paramétrée uniquement pour les tests, et si problème il y a, il n'impactera pas votre système Linux de travail. Pour travailler de la sorte, il vous faut toutefois une base de données RPM de test.

note: Tag: para
en: To be rigorous, you should create the test RPM database from scratch from a known set of packages. This will allow you to exactly verify the behavior of your RPM under different system configurations. This is the best choice since you should install the packages under a known, and non-root, directory hierarchy to avoid having file problems with the working system.
fr: Pour être rigoureux, vous devez créer une base de données RPM de test à partir de zéro avec un jeu de paquets connus. Cela vous permet de vérifier le comportement de votre RPM sous différentes configurations système. C'est la meilleure façon d'opérer puisque vous installerez les paquets dans une hiérarchie de répertoires définie, non racine, pour éviter d'avoir des problèmes de fichiers avec le système de travail.

note: Tag: para
en: If you want to cheat, you can copy your real RPM database to another directory and use that. Note that in this case, the file paths in the database will point to the real file locations on disk.
fr: Si vous voulez tricher, vous pouvez copier votre base de données RPM réelle dans un autre répertoire et l'utiliser. Notez que dans ce cas, les chemins des fichiers dans la base de donnée pointeront sur l'emplacement réel des fichiers sur le disque.

note: Tag: para
en: Regardless of how you create a test database, recreate the database each time you run a test, so that you are sure of a known starting state. Usually this is as simple as copying a master test RPM database into a directory you use for running tests.
fr: Indépendamment de la façon dont vous créez la base de test, recréez la base chaque fois que vous lancez un test ; vous serez ainsi sûr de partir d'un état connu. En règle générale, cela consiste simplement à copier une base RPM maître de test dans un répertoire à utiliser pour lancer les tests.

note: Tag: title
en: Building
fr: Construire

note: Tag: para
en: Building RPMs isn’t as easy as it should be. You’ll often need to try again and again to get the rpmbuild command to create a working RPM. This section covers best practices to follow when performing the actual build of the RPM.
fr: Construire des RPM n'est pas aussi facile que cela. Vous devrez souvent et encore réitérer vos tentatives pour obtenir de la commande <command>rpmbuild</command> la création d'un RPM fonctionnel. Cette section traite des meilleures pratiques pour réaliser une vrai construction de RPM.

note: Tag: title
en: Use Tools
fr: Utiliser les outils

note: Tag: para
en: Using tools can help speed up the RPM-making process, as well as give you a head start in learning how RPMs work. RPM-building tools such as the Red Hat plugin for the Eclipse Integrated Development Environment have proven really helpful.
fr: L'emploi d'outils peut accélérer le processus de création des RPM, tout en vous avantageant par la connaissance de la manière dont RPM fonctionne. Les outils de construction de RPM, comme le greffon Red Hat pour « Eclipse Integrated Development Environment »(Environnement de Développement Intégré Eclipse), font preuve d'une réelle utilité.

note: Tag: para
en: <xref linkend="ch-extra-packaging-tools" /> covers RPM-building tools. <xref linkend="ch-development-tools" /> covers the Eclipse Integrated Development Environment.
fr: Le <xref linkend="ch-extra-packaging-tools"/> traite des outils de construction des RPM. Le <xref linkend="ch-development-tools"/> traite de l'environnement de développement intégré <command>Eclipse</command>.

note: Tag: para
en: Even though so-called real Linux hackers can make a working virtual memory system with just the cat command, don’t scoff at tools. Your time is too valuable.
fr: Même si des hackers d'un pseudo-Linux réel peuvent faire un système de mémoire virtuelle fonctionnel uniquement avec la commande <command>cat</command>, ne moquez pas les outils. Votre temps est trop précieux.

note: Tag: para
en: Another useful tool is the gendiff program that comes with the RPM release. The gendiff program makes it easier to create patches by avoiding the need to keep a separate directory of the original sources, The gendiff program also works on all changed files within a directory, making a patch for everything you modified.
fr: Un autre outil très utile est le programme <command>gendiff</command> livré avec RPM. Le programme <command>gendiff</command> facilite la création de correctifs en s'exonérant de la nécessité de garder les sources originelles dans un répertoire séparé. Le programme <command>gendiff</command> fonctionne aussi au niveau répertoire en créant un correctif pour tout ce qui a été modifié.

note: Tag: para
en: To work with gendiff, you need to first save a backup copy of each file you intend to edit prior to editing. Use a consistent file-name extension for the saved copies of the files, such as .orig, short for original. After you edit some files, run the gendiff command as follows:
fr: Pour travailler avec <command>gendiff</command>, vous devrez d'abord enregistrer, avant tout changement, une copie de chacun des fichiers que vous avez l'intention de modifier. Utilisez une extension de nom de fichier constante (unique) pour les copies sauvegardées, comme <filename>.orig</filename> abréviation de original. Après avoir modifie certains fichiers, lancez la commande <command>gendiff</command> comme ceci :

note: Tag: para
en: $ gendiff directory_name .saved_extension &gt; patch_name.patch
fr: <prompt>$</prompt> <command>gendiff <replaceable>NOM_RÉPERTOIRE .EXTENSION_SAUVEGARDE</replaceable> &gt; <replaceable>NOM_CORRECTIF.patch</replaceable></command>

note: Tag: para
en: For example, if you saved the original files to a .orig extension, you can create a patch in a directory named src (short for sources) with a command like the following:
fr: Par exemple, si vous avez enregistré les fichiers originaux avec l'extension <filename>.orig</filename>, vous pouvez créer un correctif dans un répertoire nommé <filename>src</filename> (pour sources) avec une commande comme la suivante :

note: Tag: para
en: $gendiff src .orig &gt; mypatch.patch
fr: <prompt>$</prompt><command>gendiff src .orig &gt; <replaceable>mon_correctif.patch</replaceable></command>

note: Tag: para
en: The patch file mypatch.patch will contain all the differences detected for all files in the given directory.
fr: Le fichier correctif <filename>mon_correctif.patch</filename> contient toutes les différences détectées pour tous les fichiers du répertoire indiqué.

note: Tag: title
en: Never Build RPMs as Root
fr: Ne jamais construire de RPM en tant qu'administrateur

note: Tag: para
en: Never, never, never build RPMs logged in as the root user. Always build your RPMS while logged in as a normal user. This is hard to remember since you must be logged in as root to install an RPM. And you’ll want to test each RPM you create to see if it can install cleanly.
fr: Jamais, au grand jamais, ne construisez de RPM en étant connecté en tant qu'administrateur. Construisez toujours vos RPM en étant connecté en tant qu'utilisateur normal. Il est difficile de s'en souvenir étant donné que vous devez être connecté en tant qu'administrateur pour installer un RPM. Et que vous souhaitez tester tout RPM que vous créez pour voir si il peut s'installer proprement.

note: Tag: para
en: Even so, never build RPMs logged in as the root user. The RPM spec file has a number of scripts and commands. An error in any of these could cause damage to your system. This includes modifying files, removing files, or copying new contents on top of system files. The root user has permission to perform all these operations.
fr: Même pour ces raisons, ne construisez jamais de RPM en étant connecté en tant qu'administrateur. Le fichier spec RPM possède un certain nombre de scripts et de commandes. Une erreur dans l'un d'entre eux peut endommager votre système. Ces dommages incluent modifications de fichiers, effacement de fichiers et copie de nouveaux contenus en-tête de fichiers système. Un administrateur est autorisé à faire toutes ces opérations.

note: Tag: para
en: To avoid all this, build your RPMs while logged in as a normal user. Any problematic scripts should generate errors.
fr: Pour éviter ces actions, construisez vos RPM en étant connecté en tant qu'utilisateur normal. Tout script à problèmes générera des erreurs.

note: Tag: title
en: Create a Digital Signature
fr: Créer une signature électronique

note: Tag: para
en: RPM 4.1 and later revisions place more importance on signing your packages. The rpm command will, by default, verify signatures on each package it reads.
fr: RPM 4.1 et les révisions ultérieures donnent une place importante à la signature des paquets. La commande <command>rpm</command>, par défaut, vérifie les signatures sur chaque paquet qu'il lit.

note: Tag: para
en: Therefore, you should create a digital signature for your packages, if only to meet user expectations. In addition, you should place a copy of your digital signature on your organization’s Web site and public key servers. Having multiple copies in multiple locations helps prevent malicious users from impersonating your keys.
fr: Donc, vous devez créer une signature électronique pour vos paquets, ne serait-ce que pour satisfaire les attentes des utilisateurs. De plus, vous devez mettre une copie de votre signature électronique sur le site web de votre société ainsi que sur les serveurs de clés publiques. Avoir plusieurs copies dans de nombreux emplacements rend difficile l'imitation de vos clés par des utilisateurs malicieux.

note: Tag: para
en: <xref linkend="ch-rpmbuild" /> covers signing packages.
fr: Le <xref linkend="ch-rpmbuild" /> traite de la signature des paquets.

note: Tag: title
en: Copy Smartly
fr: Copier intelligemment

note: Tag: para
en: Your Linux distribution probably includes more than one CD-ROM chock full of RPMs. Each of these RPMs has a spec file. You can examine these spec files and see how others choose to build their RPMs. Rather than starting from scratch, you can copy declarations from these spec files into your spec file.
fr: Votre distribution Linux inclut probablement plus d'un CD-ROM archiplein de RPM. Chacun de ces RPM a un fichier spec. Vous pouvez examiner ces fichiers spec et voir combien de fois d'autres les ont choisis pour construire leurs RPM. Plutôt que de repartir à zéro, vous pourrez copier des déclarations de ce choix de fichiers spec dans votre propre fichier spec.

note: Tag: para
en: Not all these packages were made smartly. Some spec files, as you will see, are a large mess. Obviously, don’t copy these. Look for clean spec files with clear directives.
fr: La totalité de ces paquets n'a pas été faite correctement. Quelques fichiers spec, comme vous le verrez, sont de belles pagailles. Évidemment, ne les copiez pas. Recherchez des fichiers spec propres avec des directives claires.

note: Tag: title
en: Set Up the BuildRoot
fr: Définir le <structfield>BuildRoot</structfield>

note: Tag: para
en: A BuildRoot directive sets the location where your code will be built. The convention is for you to define a subdirectory beneath the _tmppath directory. For example:
fr: La directive <structfield>BuildRoot</structfield> définit l'emplacement où votre code sera construit. Conventionnellement, vous définirez un sous-répertoire de <filename>_tmppath</filename>. Par exemple :

note: Tag: para
en: BuildRoot: %{_tmppath}/%{name}-buildroot
fr: <userinput>BuildRoot: %{_tmppath}/%{name}-buildroot</userinput>

note: Tag: para
en: Once set, rpmbuild defines the RPM_BUILD_ROOT environment variable to the value specified for the BuildRoot.
fr: Une fois défini, <command>rpmbuild</command> fixe la variable d'environnement <varname>RPM_BUILD_ROOT</varname> à la valeur indiquée pour <structfield>BuildRoot</structfield>.

note: Tag: para
en: With the rpmbuild command, you can use the --buildroot option to specify a directory to use to override the BuildRoot directive in the spec file.
fr: Avec la commande <command>rpmbuild</command>, vous pouvez utiliser l'option <option>--buildroot</option> pour définir un répertoire qui écrase l'indication de la directive <structfield>BuildRoot</structfield> du fichier spec.

note: Tag: para
en: Using a BuildRoot set to a directory that normal users have write access to allows you to build the package logged in as a normal user. It also helps separate the contents of your package from those of other RPMs.
fr: Définissez comme <structfield>BuildRoot</structfield> un répertoire sur lequel les utilisateurs normaux ont accès en écriture pour vous permettre de construire le paquet en étant connecté en tant qu'utilisateur normal. Cela facilite aussi la séparation des contenus de votre RPM de ceux des autres RPM.

note: Tag: para
en: Always define a BuildRoot.
fr: Définissez toujours un <structfield>BuildRoot</structfield>.

note: Tag: title
en: Add changelog entries for each new version
fr: Ajouter des entrées au journal des modifications pour toute nouvelle version

note: Tag: para
en: Each time you create a new version in RPM format, you should add an entry to the change log. This allows administrators to get a better idea about what changed from the previous version.
fr: Chaque fois que vous créez une nouvelle version au format RPM, vous devez ajouter une entrée dans le journal. Cela permet aux administrateurs d'avoir une meilleure idée à propos de ce qui a été modifié sur la précédente version.

note: Tag: para
en: The change log can help people decide whether or not to upgrade a package. A log entry about a security fix, for example, provides useful information to users.
fr: Le journal des modification peut aider les personnes à se décider sur l'opportunité de mettre à jour un paquet. Une entrée de journal à propos d'un correctif de sécurité, par exemple, fournit des informations utiles aux utilisateurs.

note: Tag: title
en: Define the Group For Your Package
fr: Définir le groupe de votre paquet

note: Tag: para
en: Packages are categorized into groups. These group names, while not always the best, appear in the graphical tools such as the Red Hat package manager. If your application is a Linux shell program, then users will expect to find it in the System Environment/Shells group and not the Development/Languages or System Environment/Daemons groups. This is a rather small detail, but it helps users find your package in the huge array of Linux RPMs.
fr: Les paquets sont classés en groupes. Ces noms de groupes, bien que pas toujours adaptés, apparaissent dans des outils graphiques tels que le gestionnaire de paquets Red Hat. Si votre application est un programme pour l'interpréteur Linux, les utilisateurs s'attendent à le trouver dans le groupe <literal>System Environment/Shells</literal> et non dans les groupes <literal>Development/Languages</literal> ou <literal>System Environment/Daemons</literal>. Ce n'est certainement qu'un petit détail, mais il aide les utilisateurs à trouver votre paquet dans la gigantesque suite de RPM Linux.

note: Tag: para
en: The official list of RPM groups is located in /usr/share/doc/rpm-4.1/GROUPS for RPM 4.1, and similarly-named directories for other RPM versions.
fr: La liste officielle des groupes RPM est située dans <filename>/usr/share/doc/rpm-4.1/GROUPS</filename> pour RPM 4.1 ou dans les répertoires désignés de manière analogue pour les autres versions de RPM.

note: Tag: title
en: Summary
fr: Résumé

note: Tag: para
en: This chapter covers guidelines for avoiding problems when creating RPMs and following best practices to avoid future problems as well.
fr: Ce chapitre traite des recommandations pour éviter des problèmes lors de la création de RPM, ainsi que du suivi des bonnes pratiques pour pallier des difficultés dans le futur.

note: Tag: para
en: When trying to avoid common problems, your best starting point is the RPM mailing list and newsgroup.
fr: Pour essayer d'éviter les problèmes courants, les meilleurs points de départ sont la liste de messages RPM et le groupe de nouvelles.

note: Tag: para
en: For best practices, you should start at the very beginning when you are planning what to build into an RPM. Always start with pristine sources and then patch as needed. Your RPM should include the pristine sources and any necessary patches. You should always create a source RPM, so that you can reproduce your RPM anywhere.
fr: En ce qui concerne les bonnes pratiques, il faut les démarrer dès le tout début quand vous planifiez ce que vous allez mettre dans le RPM. Débutez toujours avec des sources intactes(originelles) et ensuite faites des correctifs selon nécessité. Votre RPM doit comporter les sources intactes et tous les correctifs nécessaires. Vous devez toujours créer un RPM source, de façon à pouvoir reproduire votre RPM n'importe où.

note: Tag: para
en: When building RPMs, copy good examples of spec files, as this will get you going far more quickly than any other technique. Use tools to help automate parts of your RPM-building process.
fr: En construisant des RPM, prenez des bons exemples de fichiers spec, ce qui vous permettra d'aller beaucoup plus vite que toute autre technique. Utilisez des outils pour automatiser des parties du processus de construction de votre RPM.

note: Tag: para
en: Never build RPMs when logged in as the root user.
fr: Ne construisez jamais vos RPM en étant connecté en tant qu'administrateur.

note: Tag: para
en: This chapter ends the section on building RPMs. The next section covers programming to the RPM APIs.
fr: Ce chapitre clôt la section concernant la construction des RPM. La section suivante porte sur la programmation des API RPM.
