2013-02-05 2 views
1

En construisant nos propres paquets deb, nous avons rencontré le problème d'avoir à patcher manuellement certains scripts pour obtenir le préfixe approprié.Les scripts installés par le paquet deb ont un mauvais préfixe

En particulier,

  • Nous construisons mono
  • Nous utilisons tarballs officiels.
  • Les scripts qui finissent dans le mauvais préfixe sont: mcs, xbuild, nunit-console4, etc

Un exemple d'un script mal:

#!/bin/sh 
exec /root/7digital-mono/mono/bin/mono \ 
     --debug $MONO_OPTIONS \ 
     /root/7digital-mono/mono/lib/mono/2.0/nunit-console.exe "[email protected]" 

Quel devrait être le résultat final correct:

#!/bin/sh 
exec /usr/bin/mono \ 
     --debug $MONO_OPTIONS \ 
     /usr/lib/mono/2.0/nunit-console.exe "[email protected]" 

La solution que nous utilisons dans notre script build-package avant d'appeler dpkg-buildpackage:

sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/mcs 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/xbuild 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console2 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console4 

Maintenant, quelle est la bonne façon de résoudre ce problème? Scripts complets de création de paquets Debian here.

Clause de non-responsabilité: Je sais qu'il existe des packs d'aperçu de Mono 3 here! Mais ceux qui ne fonctionnent pas pour Squeeze.

Répondre

2

la bonne façon est de pas appel ./configure --prefix=$TARGET_DIR

cela indique tous les binaires/scripts/... que les fichiers installated finiront dans ${TARGET_DIR}, alors qu'ils devraient vraiment endup dans /usr.

vous pouvez utiliser la variable DESTDIR (comme dans make install DESTDIR=${TARGET_DIR}) pour changer (préfixe) la cible d'installation lors de l'installation (fichiers de bout en ${TARGET_DIR}/${prefix} mais n'auront ${prefix} « intégré »)

+0

cool, Je vais tester cela maintenant – knocte

+0

mmm, quand je fais cela, il échoue, je vais récupérer l'erreur dès que possible et vous faire savoir – knocte

+0

que faites-vous, et comment ça échoue? –

Questions connexes