5 votes

Plusieurs Depends/Recommends/[ ] dans un fichier de contrôle ?

Est-il possible d'avoir plusieurs lignes pour tout type de champ dans un fichier de contrôle dpkg ? Il ne s'agit pas de la continuation de la ligne, mais par exemple des Depends entrecoupés de Recommends comme ceci :

Dépend de : git, etckeeper, apt-file
Recommande : equivs
Dépend de : mplayer, pidgin, dlocate, pwsafe, ciso
Recommande : aria2

Et ainsi de suite. Est-ce autorisé, est-ce non spécifié (et un outil va tousser dessus) ou est-ce explicitement interdit ? (Je n'ai rien trouvé non plus dans la politique Debian).

5voto

Ghirai Points 11

Non, tu ne peux pas faire ça. Il ne m'était jamais venu à l'esprit d'essayer une telle chose, mais j'ai tenté de le faire. J'ai essayé de construire un paquet avec les éléments suivants dans le fichier debian/control fichier :

Package: bzr-explorer
Architecture: all
XB-Python-Version: ${python:Versions}
Depends: ${misc:Depends}, ${python:Depends}
Recommends: tango-icon-theme
Suggests: bzr-gtk
Depends: bzr (>= 1.14), qbzr (>= 0.19)
Recommends: bzr-svn
Suggests: bzr-git

dpkg n'a pas aimé du tout :

dpkg-source: error: syntax error in bzr-explorer-1.1.2/debian/control at line 24: duplicate field Depends found
dpkg-buildpackage: error: dpkg-source --before-build bzr-explorer-1.1.2 gave error exit status 9
debuild: fatal error at line 1337:
dpkg-buildpackage -rfakeroot -d -us -uc -S failed

En fait, maintenant que je le cherche, cela est explicitement interdit dans Charte Debian, 5.1 Syntaxe des fichiers de contrôle :

Un paragraphe ne doit pas contenir plus d'une une instance d'un champ particulier nom.

5voto

Joshua Clayton Points 151

Il s'avère que oui, vous pouvez avoir une entrée multiligne "Depends".

Oh, joie ! cela rend la maintenance d'un fichier debian/control beaucoup plus agréable si les dépendances vont au-delà d'un petit nombre Un seul Depends peut s'étendre sur plusieurs lignes. Les lignes suivantes doivent commencer par un seul espace. Voir ci-dessous (un paquet réel avec des noms modifiés pour protéger les innocents)

Package: company-y-meta
Architecture: all
Depends: ${misc:Depends},
 python-y-production,
 python-y-cellular,
 y-update,
 y-webapp-passwords,
 telegraf-y-addon (>= 0.0.01),
 vendor-cellular-utils (<< 1.20),
Description: Company Y Metapackage
 This package installs no software, but depends on all
 software needed to install product-y on physical platform

J'ai lu cette question plusieurs fois, et j'ai cru que la réponse acceptée à l'origine signifiait que vous ne pouviez jamais avoir d'entrées Depend multilignes. Vous pouvez, comme décrit ci-dessus. Mais il s'avère qu'ils étaient spécifiquement intéressés par les clés Depends multiples. Vous ne pouvez pas avoir de clés Depends multiples, sauf dans la mesure où vous écrivez un fichier de spécification multipackage, où chaque clause Depends irait à un sous-package différent.

Vous peut ont des entrées multi-lignes, (mais vous ne pouvez pas les intercaler avec d'autres parties du fichier de contrôle).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X