44 votes

Comment télécharger le code source avec Pacman sur Arch Linux ?

J'utilise Arch Linux . Je veux faire la même chose que apt-get source coreutils ; est-il possible de télécharger des sources avec Pacman ? Je n'ai pas trouvé de solution dans le pages de manuel .

Comment puis-je obtenir le code source d'un paquet ?

0 votes

Vous pouvez également obtenir des paquets individuels via svn : wiki.archlinux.org/index.php?title=Récupérer_PKGBUILDS_From_SVN

47voto

osager Points 1279
  1. pacman -S asp

  2. disons que si vous voulez le code source de la commande Linux find

    1. trouver quel paquet la commande find appartient à : pacman -Qo $(which find) . Le résultat est "/usr/bin/find is owned by findutils 4.4.2-3".
  3. asp export findutils

  4. cd findutils makepkg -o

Vous avez maintenant votre code source.

1 votes

Si vous ne voulez qu'un seul paquet, vous pouvez faire quelque chose comme abs core/wpa_supplicant où vous ajoutez le dépôt de paquets. Vous pouvez également utiliser ABSROOT=/tmp/ abs core/wpa_supplicant si vous ne voulez pas utiliser sudo .

1 votes

Merci pour le conseil sur le fait de ne pas être sudo pour télécharger un paquet (ce qui est possible avec apt-get source). Au fait, à l'étape 5.1, si vous recherchez find tapez simplement pacman -Qo find . Personnellement, je préfère utiliser pkgfile find . Essayez-le.

0 votes

Vous pourriez utiliser makepkg -o pour télécharger et corriger uniquement les sources, au lieu de construire le paquet complet !

22voto

kilian Points 51

Mise à jour de 2018 :

En abs L'outil décrit ci-dessous a été déprécié et elle ainsi que son point de terminaison rsync ont été abandonnés depuis mi 2017.

En asp offre désormais une fonctionnalité similaire. Plus d'informations ici .


Comme déjà mentionné, vous pouvez utiliser l'ABS (Arch Build System) :

Installez-le en utilisant pacman :

sudo pacman -S base-devel abs

Tout d'abord, téléchargez l'arbre ABS :

sudo abs

Ensuite, prenez un paquet spécifique :

sudo abs [package_name]

Ensuite, copiez le paquet, dont vous voulez avoir la source, à partir de l'arbre abs local (par ex. /var/abs/core/findutils ) vers un autre répertoire, par exemple /home/blabla/abs

Ensuite, exécutez makepkg :

  • si vous voulez seulement obtenir les sources et ne pas construire le paquet, vous pouvez exécuter makepkg -od

  • sinon courir makepkg -s qui gérera alors automatiquement toutes les dépendances du paquet.

  • Attention car makepkg va écraser vos modifications, utiliser makepkg -e pour construire vos sources locales à la place

Si vous voulez installer le paquet que vous avez construit, exécutez

pacman -U name-of-package.xz

0 votes

makepkg -i installera également le paquet ; il est également possible d'utiliser makepkg -ei pour compiler ce qui se trouve dans src et installer le paquet qui en résulte en une seule fois

3voto

ypnos Points 21940

Edit : Cette réponse est périmée en raison de changements sur l'ABS.

Vous obtenez les sources du paquetage à partir du dépôt SVN d'Arch Linux, appelé ABS.

Trouvez d'abord le paquet en ligne : http://www.archlinux.org/packages/?q=coreutils

Ensuite, sur la page des détails du paquet, sur le côté droit, utilisez les liens SVN, par exemple : http://repos.archlinux.org/wsvn/packages/coreutils/trunk/

Et là, vous avez un joli bouton "Télécharger", dans ce cas il mène à : http://repos.archlinux.org/wsvn/packages/coreutils/trunk/?op=dl&isdir=1

C'est un peu plus compliqué que apt-get source . Mais peut-être trouvez-vous un outil sur AUR qui fait le travail pour vous, par exemple yaourt supporte la construction à partir de sources et leur exportation.

1 votes

J'ai juste oublié de mentionner que l'ABS mentionné est également livré avec des outils d'espace utilisateur, de sorte que vous pouvez en fait vérifier automatiquement tous les paquets, etc. Cependant, c'est une surcharge pour les paquets uniques.

0 votes

Le site repo est juste vide maintenant.

0 votes

C'est vrai, mais les liens sur la page des détails du paquet sont toujours là, et les paquets peuvent maintenant être trouvés ici : projects.archlinux.org/svntogit/packages.git/tree

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X