Comment connaître le référentiel source d'un paquet dans Debian?

9

Dans Debian, AFAIK, certains paquets sont maintenus dans Subversion (fameusement team-pkg-gnome), tandis que certains sont maintenus dans git, et d'autres dans d'autres VCS.

Existe-t-il un moyen de savoir où se trouve la source d'un paquet sans faire un apt-get source $PACKAGENAME?

J'ai essayé trois méthodes et toutes ont échoué: -

$apt show $PACKAGENAME
$aptitude show $PACKAGENAME 
$apt-cache show $PACKAGENAME 

aucun des éléments ci-dessus ne peut donner / partager ces informations.

Existe-t-il de toute façon pour obtenir les informations. J'ai besoin de connaître le dépôt source. nom et s'il est en git, svn ou un autre contrôle de version.

shirish
la source
politique apt-cache <package>. Duplicate: superuser.com/questions/106794/…
h3rrmiller
@ h3rrmiller qui vous montre d'où le package est téléchargé, pas où la source du package est hébergée.
Evan Carroll

Réponses:

8

Utilisation des outils CLI

Comme indiqué par derobert , les paquets Debian qui sont maintenus dans un VCS sont censés l'indiquer dans une paire de Vcs-...champs dans leur paquet source.

Le meilleur outil pour utiliser ces informations est debcheckoutdans le devscriptspackage, ou apt-cache showsrc. Les deux afficheront gnome-disk-utilityles informations de votre référentiel.

apt-cache showsrc gnome-disk-utility

affichera toutes les informations contenues dans le paquet source, y compris les liens vers le VCS ( Vcs-Browerdonne un lien à utiliser dans un navigateur, Vcs-Gitdonne le lien pour cloner le référentiel git, en supposant que le référentiel utilise git):

Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-disk-utility
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-disk-utility.git

tandis que

debcheckout -d gnome-disk-utility

n'affichera que les informations VCS et les détails pertinents (si le package est hébergé dans un VCS).

Check-out

Si vous souhaitez ensuite extraire la source,

debcheckout gnome-disk-utility

fera cela pour vous.

Interface Web

Vous pouvez également voir ces informations sur le Debian Package Tracker , qui sera lié au VCS où le paquet est hébergé (s'il y en a un).

Stephen Kitt
la source
11

Beaucoup de packages incluent cela dans leurs informations de contrôle dans les Vcs-*champs. Vous pouvez le voir facilement (et sans télécharger le package source) en utilisant apt-cache showsrc.

$ apt-cache showsrc gnome-disk-utility
⋮
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-disk-utility
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-disk-utility.git
⋮

Dans ce cas, vous pouvez git clone https://salsa.debian.org/gnome-team/gnome-disk-utility.gitdonc télécharger la source ou la parcourir sur le Web à l' adresse https://salsa.debian.org/gnome-team/gnome-disk-utility .

Tous les packages n'ont pas de Vcs-*champs. Ils peuvent être manquants car le responsable n'utilise pas de VCS (ou du moins pas public), ou n'a pas ajouté les en-têtes pour une autre raison. apt-get source packagenameobtiendra toujours la source, mais pas via un VCS. De même, vous pouvez parcourir toutes les sources en ligne sur http://sources.debian.net/

(Remarque: vous aurez besoin de deb-srclignes dans votre sources.listfichier.)

Mise à jour: souligne Stephen Kittdebcheckout -d ; la première fois que j'en avais entendu parler aussi. Voir (et voter positivement) la réponse de Stephen Kitt pour plus de détails.

derobert
la source
1

Vous n'êtes pas tout à fait raison: le code source Debian est en paquets source: vous avez besoin de lignes avec deb-srcvotre /etc/apt/sources.listcomme par exemple

 deb-src http://ftp2.fr.debian.org/debian/ jessie main contrib non-free

(adaptez cela à votre géographie et à vos habitudes)

Ensuite, vous pouvez demander que le code source soit construit à partir de la source en utilisant par exemple aptitude build(et vous voudrez peut-être utiliser aptitude build-deppour installer les packages nécessaires pour cette construction).

Les mainteneurs Debian empaquettent le code source en incorporant leurs correctifs par rapport à un référentiel logiciel en amont. Ce référentiel de logiciels en amont utilise (ou peut-être pas) le système de contrôle de version qu'ils souhaitent utiliser.

Basile Starynkevitch
la source