2009-12-10 12 views
3

Existe-t-il un moyen de satisfaire une certaine dépendance de port avec un autre package (que celui spécifié) dans MacPorts? Plus spécifiquement, utiliser le paquet XYZ-devel au lieu de simplement XYZ pour un second port qui nécessite XYZ?Remplacer la dépendance MacPorts par un autre package

Merci d'avance.

Répondre

1

Si le port -devel n'est pas proposé en variante, le seul moyen est de modifier le fichier port.

$ sudo port edit $the_port 

ouvre le port spécifié dans un éditeur. Vous pouvez modifier la dépendance du port de publication au port -devel.

Notez que:

  1. Cela peut briser le port, car il ne fonctionne pas avec la version -devel (peu probable, mais possible).
  2. Vos modifications apportées au fichier port seront annulées chaque fois que vous effectuerez un port selfupdate. Si vous ne voulez pas avoir à "réparer" le fichier port à chaque mise à jour, vous pouvez configurer un local Portfile repository.
+0

Merci pour le tuyau. Ce que je fais maintenant est de copier le port X-devel vers mon dépôt local, et de le renommer en X. De plus, je télécharge les correctifs dans ce répertoire afin qu'il les trouve (sinon il tentera de les télécharger depuis le répertoire du X port -devel sur le serveur). – Johannes

1

Vous pouvez utiliser la commande "variantes de port" pour afficher la liste des variantes disponibles pour un port donné. Ex:

 
[[email protected] ~]$ port variants ffmpeg 
ffmpeg has the variants: 
    darwin_10: Platform variant, selected automatically 
    no_gpl: disallow use of GPL code, license will be LGPL 
    no_mmx: disable all x86 asm optimizations 
    speex: enable Speex decoding via libspeex 

Vous pouvez ensuite utiliser "+ Variantname" pour activer ou "- Variantname" pour désactiver une variante donnée pour l'installation (par exemple, on peut utiliser « sudo port installer ffmpeg + Speex "pour installer ffmpeg avec la variante speex). C'est le seul moyen (qui ne casse pas MacPorts) que vous pouvez choisir entre différentes configurations et dépendances.