Comment puis-je créer un package .deb avec ma compilation OpenCV compilée?

9

OpenCV 2.4.2 a pris 6 heures pour compiler sur le Raspberry Pi et j'adorerais tout emballer sous forme de deb mais je ne l'ai jamais fait auparavant. Comment puis-je empaqueter les fichiers compilés afin qu'ils téléchargent ou incluent les autres bibliothèques nécessaires?

timelf123
la source
Est-ce plus une question spécifique à Linux plutôt qu'une question liée à Pi? Peut-être mieux de demander à Debain à ce sujet?
Salut. Comme il s'agit de Debian générique, cela vous dérangerait-il si je le déplaçais vers Ask Ubuntu ou Unix & Linux ?
Jivings
@Jivings Je pense que c'est lié à PI car je ne sais rien sur le flotteur dur contre le flotteur doux et je sais qu'il y a des réserves avec Pi à ce sujet. S'il y a un consensus général sur le fait que quelqu'un pourrait aider à répondre à cette question, je n'ai aucun problème à le déplacer

Réponses:

4

Si par OpenCV vous voulez dire les bibliothèques de vision par ordinateur à http://opencv.willowgarage.com/ alors elles sont déjà empaquetées pour debian par l'équipe scientifique de Debian.

Votre meilleur pari est de télécharger le paquet source debianisé depuis votre miroir Debian le plus proche, de modifier le debian / rules et / ou le Makefile ou de configurer etc selon les besoins pour compiler correctement sur le raspberry pi et reconstruire les paquets.

Le travail d'emballage est déjà fait, il n'est pas nécessaire de le refaire .... et encore et encore à chaque fois que vous souhaitez les mettre à jour.

Il y a tout un tas de paquets binaires, mais libopencv-dev est probablement ce que vous voulez commencer par http://packages.debian.org/search?keywords=libopencv-dev

cas
la source
Les packages publiés fonctionneront-ils sur une architecture ARM comme le Raspberry Pi? J'aurais aimé mieux comprendre les packages et les dépendances, mais il me semble qu'à moins que willowgarage ne publie un package spécifiquement pour le processeur du Raspberry Pi, leurs packages ne fonctionneront pas.
Dan B
Vous devez avoir mal lu ce que j'ai écrit. J'ai dit de télécharger les paquets Debian SOURCE et de recompiler pour Raspberry Pi. 'onlinemarketresults' a déjà un environnement de compilation RPi (ou de compilation croisée) et sait comment compiler pour RPi, il voulait juste savoir comment faire un paquet.
cas
11

J'ai pensé que j'ajouterais une meilleure réponse pour quiconque observant ce fil.

Donc, si vous avez déjà eu du mal à créer opencv sur l'appareil, vous avez probablement suivi les instructions ici:

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

Dans ce cas, si vous n'ajoutez pas le -D argspour remplacer dynamiquement les paramètres CMake à l'étape deux et que vous exécutez simplement cmake ..à l'intérieur du répertoire de construction (que vous avez créé), il générera un CMakeCache.txtfichier.

Si vous modifiez le CMakeCache.txtfichier, vous pouvez modifier:

CPACK_BINARY_DEB:BOOL=ON

... en plus des autres variables spécifiées dans le lien opencv ci-dessus. Au lieu de courir makeou make install... juste courir make packageet la magie opère.

Avertissement: Si vous en avez, WITH_CUDA:BOOL=ONvous pouvez avoir des problèmes de dépendance avec le packager - et c'est une question totalement différente ...

Pour plus d'informations, consultez les CPACK_*_*:BOOLparamètres dans les fichiers cmake et consultez la documentation CPack:

http://www.cmake.org/Wiki/CMake:CPackPackageGenerators

hhony
la source
Cela produit quelques fichiers .deb, quelques fichiers tar et un script. Lesquels doivent être distribués et exécutés sur un système cible? Tout? Ont-ils besoin de fichiers de support?
Alex
@Alex, j'ai oublié ce billet l'année dernière. Donc, vous devriez avoir OpenCV-*-{libs,dev}.deb besoin des deux. Je pense que dev a les en-têtes que ld utilise pour créer un lien avec le .so dans les bibliothèques. Vous pouvez également comprendre cela en exécutant dpkg -c OpenCV-*.debsur le package, pour répertorier le contenu. De plus, si vous l'avez créé à partir de source.tar, vous n'aurez peut-être pas de numéro de version et vous n'aimerez dpkg -i $pkgpas cela. Vous pouvez dire s'il indique OpenCV-unknown-*{dev,libs}.debDans quel cas git clone github.com/Itseez/opencvet git checkout $tagdans l'onglet des versions. Si vous construisez à partir du haut de l'arborescence, vous obtenez également une balise sur deb.
hhony