Dans la sortie «apt-cache depend», quelle est la signification de Suggests, Recommends, |, <>?

20

J'ai vérifié la page man / info, mais il n'y a aucune référence à certains aspects de la sortie de apt-cache depends

La page man / info a essayé d'être utile (de manière obtuse); citation: "Pour la signification spécifique du reste de la sortie, il est préférable de consulter le code source d'apt"

Maintenant, pour être honnête avec la page d'informations, cette citation concernait l'option `` showpkg '' qu'elle avait raisonnablement expliquée, mais mon option n'avait pas de telle explication ... Je comprends que les informations Linux proviennent de nombreuses sources (pas seulement man / info pages), et je ne veux pas particulièrement fouiller dans la source (même si je le fais parfois), voici donc un exemple de ce que j'aimerais savoir.

# I can assume what these mean, but... 
#  What does | mean? (probably means 'or'???)
#  What does <pkg> and the following indentations  mean? 
#  At the end, the interaction(?) of Suggest and Recommends puzzles me.

$ apt-cache depends solr-common
solr-common    
  Depends: debconf
 |Depends: openjdk-6-jre-headless
 |Depends: <java5-runtime-headless>
    default-jre-headless
    gcj-4.4-jre-headless
    gcj-jre-headless
    gij-4.3
   openjdk-6-jre-headless
  Depends: <java6-runtime-headless>
    default-jre-headless
    openjdk-6-jre-headless
  Depends: libcommons-codec-java
  Depends: libcommons-csv-java
  Depends: libcommons-fileupload-java
  Depends: libcommons-httpclient-java
  Depends: libcommons-io-java
  Depends: libjaxp1.3-java
  Depends: libjetty-java
  Depends: liblucene2-java
  Depends: libservlet2.5-java
  Depends: libslf4j-java
  Depends: libxml-commons-external-java
  Suggests: libmysql-java
 |Recommends: solr-tomcat
  Recommends: solr-jetty
Peter.O
la source

Réponses:

15

La référence faisant autorité est le manuel de politique de Debian: http://www.debian.org/doc/debian-policy/

Citant le manuel:

Le champ Recommandations doit répertorier les packages qui pourraient être trouvés avec celui-ci dans toutes les installations, sauf inhabituelles.

Suggestions: Ceci est utilisé pour déclarer qu'un paquet peut être plus utile avec un ou plusieurs autres. L'utilisation de ce champ indique au système d'emballage et à l'utilisateur que les packages répertoriés sont liés à celui-ci et peuvent peut-être améliorer son utilité, mais que l'installation de celui-ci sans eux est parfaitement raisonnable.

De nos jours, les packages recommandés sont également installés par défaut (lorsque vous installez le package en faisant la recommandation).

Comme vous l'avez deviné | indique "ou". La ligne de contrôle affiche normalement foo | , mais apt-cache depend semble le reformater en affichant chaque alternative sur sa propre ligne et en préfixant la première avec le |. En d'autres termes, le tuyau marque l'option préférée et la ligne suivante est l'alternative.

Le package répertorié entre crochets indique qu'il s'agit d'un package virtuel. Les packages répertoriés sur les lignes en retrait après ce sont les différents packages qui fournissent ce service.

psusi
la source
Merci psusi. Cela m'a certainement mis sur la bonne voie. La différence entre les recommandations et les suggestions est encore un peu vague pour moi, mais je suis sûr que maintenant je sais à peu près ce qu'elles signifient, je vais progressivement le «comprendre». par l'exposition à quelques exemples où j'ai déjà une idée de quoi et pourquoi quelque chose est suggéré ou recommandé.
Peter.O
2
Les recommandations sont maintenant installées par défaut et les suggestions ne le sont pas. C'est la principale différence dans la pratique. Essentiellement, recommande de vous permettre de "dépendre" de quelque chose mais autorisez l'utilisateur à le désinstaller sans désinstaller vos packages. Les suggestions apparaissent simplement dans certaines interfaces utilisateur comme quelque chose que vous pourriez également vouloir installer. Le cas d'utilisation est quelque chose comme file-roller(le gestionnaire d'archives) suggérant une bibliothèque de compression plus exotique qu'il pourrait utiliser s'il est installé mais que la plupart des gens ne veulent pas.
andrewsomething
3
@ fred.bear un bon exemple est un programme musical comme l'audace. Si vous souhaitez extraire des CD, vous devez installer cdparanoia. Si vous souhaitez encoder / lire des mp3, vous devez installer lame. Vous pouvez toujours exécuter audacity sans ceux-ci, mais la plupart des gens qui l'exécutent s'attendent à ce qu'il puisse extraire des CD en mp3, donc ces packages doivent être recommandés. Il peut également encoder en FLAC, mais cela fait un meilleur candidat pour suggère car la plupart des gens n'utilisent pas FLAC.
psusi
@andrewsomething et @psusi ... quelques belles extensions ... merci
Peter.O