Como posso criar um pacote .deb com minha compilação OpenCV compilada?


9

O OpenCV 2.4.2 levou 6 horas para compilar no Raspberry Pi e eu adoraria empacotar tudo como um deb, mas nunca fiz isso antes. Como posso empacotar os arquivos compilados para que eles baixem ou incluam as outras bibliotecas necessárias?


Isso é mais uma questão específica do Linux do que uma questão relacionada ao Pi? Talvez seja melhor perguntar a Debain sobre isso?

Olá. Como este é o Debian genérico, você se importaria se eu o movesse para Ask Ubuntu ou Unix & Linux ?
Jivings

@Jivings Eu acho que é relacionado ao PI, já que não sei nada sobre hard float vs soft float e sei que há advertências com Pi em relação a isso. Se houver um consenso geral de que alguém lá poderia ajudar a responder a esta pergunta, não tenho nenhum problema em ser movido

Respostas:


4

Se por OpenCV você se refere às bibliotecas de visão computacional em http://opencv.willowgarage.com/ , elas já estão empacotadas para debian pela Equipe de Ciências da Debian.

Sua melhor aposta é baixar o pacote fonte debianizado do seu espelho debian mais próximo, modificar o debian / rules e / ou Makefile ou configurar etc, conforme necessário para compilar corretamente no raspberry pi e reconstruir os pacotes.

O trabalho de empacotamento já está pronto, não há necessidade de fazê-lo novamente .... e de novo e de novo sempre que você desejar atualizá-los.

Há um monte de pacotes binários, mas libopencv-dev é provavelmente o que você deseja começar com http://packages.debian.org/search?keywords=libopencv-dev


Os pacotes publicados funcionarão em uma arquitetura ARM como o Raspberry Pi? Eu gostaria de entender melhor os pacotes e dependências, mas parece-me que, a menos que o willowgarage libere um pacote especificamente para o processador no Raspberry Pi, seus pacotes não funcionarão.
Dan B

Você deve ter interpretado mal o que escrevi. Eu disse para baixar os pacotes debian SOURCE e recompilar para o Raspberry Pi. 'onlinemarketresults' já possui um ambiente de compilação RPi (ou compilação cruzada) configurado e sabe como compilar para RPi, ele só queria saber como criar um pacote.
27512

11

Eu pensei em adicionar uma resposta melhor para qualquer outra pessoa observando esse tópico.

Portanto, se você já passou pelo problema de criar opencv no dispositivo, provavelmente já seguiu as instruções aqui:

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

Nesse caso, se você não adicionar os -D argsparâmetros CMake para substituir dinamicamente na etapa dois e executar cmake ..dentro do diretório de criação (criado), ele gerará um CMakeCache.txtarquivo.

Se você editar o CMakeCache.txtarquivo, poderá alterar:

CPACK_BINARY_DEB:BOOL=ON

... além das outras variáveis ​​especificadas no link opencv acima. Em vez de correr makeou make install... apenas corra make packagee a mágica acontece.

Aviso: Se você tiver, WITH_CUDA:BOOL=ONpode ter problemas de dependência com o empacotador - e essa é uma pergunta totalmente diferente ...

Para mais informações, consulte os CPACK_*_*:BOOLparâmetros nos arquivos cmake e consulte a documentação do CPack:

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


Isso produz dois arquivos .deb, dois arquivos tar e um script. Quais desses precisam ser distribuídos e executados em um sistema de destino? Todos? Eles precisam de algum arquivo de suporte?
21416 Alex

@ Alex, esqueci esse post no ano passado. Então, você deve ter OpenCV-*-{libs,dev}.deb Você precisa de ambos. Eu acho que o dev tem os cabeçalhos que o ld usa para vincular o .so nas bibliotecas. Você também pode descobrir isso executando dpkg -c OpenCV-*.debo pacote para listar o conteúdo. Além disso, se você criou isso a partir do source.tar, talvez não tenha um número de versão e dpkg -i $pkgnão irá gostar disso. Você pode saber se está escrito OpenCV-unknown-*{dev,libs}.debEm que caso git clone github.com/Itseez/opencve git checkout $tagna guia releases. Se você construir a partir do topo da árvore, também receberá a tag deb.
Hhony 23/03

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.