GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Problemas de instalación de Opencv en Studio 12.04 - ¿Dependencias rotas?

Esta pregunta ya tiene respuestas aquí :¿Cómo resuelvo las dependencias no satisfechas después de agregar un PPA?

(14 respuestas)
Cerrado hace 7 años.

Problema:

Estoy tratando de instalar OpenCV (análisis de video) y estoy siguiendo la documentación de instalación de Ubuntu OpenCV.

La secuencia de comandos proporcionada tiene una línea que se ejecutó durante algún tiempo, eliminando más paquetes de los que esperaba (como el video de ubuntu-studio):

sudo apt-get -qq remove ffmpeg x264 libx264-dev

Cuando el script llega a la siguiente línea, bombardea:

sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg

El mensaje de error es:

E: Unable to correct problems, you have held broken packages.

Intentos de solución:

Primero ejecuté Update-Manager, ejecuté sudo apt-get update , reinicié, intenté ejecutar la línea de script anterior manualmente y aún no hubo cambios.

A partir de entonces siguieron las respuestas dadas en:

  • ¿Cómo resuelvo las dependencias no satisfechas después de agregar un PPA?

Ejecuté sudo apt-get install -f y nada parecía cambiar. Mencionó que algunos paquetes ya no eran necesarios y podrían eliminarse mediante apt-get autoremove , así que ejecuté eso. Eliminó varios paquetes, así que volví a ejecutar install comando de arriba. Sigue siendo el mismo problema de paquetes rotos retenidos.

Luego ejecuté sudo apt-get -u dist-upgrade , parte de la respuesta resultante fue:

The following packages have been kept back: gstreamer0.10-ffmpeg

No estoy seguro de lo que eso significa. Sé que aparece en mi Update-Manager y no se puede verificar.

Luego corrí

sudo dpkg --configure -a

y luego volver a ejecutar

sudo apt-get -f install

y el paquete aún no se actualizó, aunque hubo un comentario muy interesante;

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 gstreamer0.10-ffmpeg : Depends: libavcodec53 (< 5:0) but it is not going to be installed or
                                 libavcodec-extra-53 (< 5:0) but 5:0.7.2-1ubuntu1+codecs1~oneiric2 is to be installed
E: Unable to correct problems, you have held broken packages.

Luego corrí

sudo apt-get -u dist-upgrade

Mostró que tenía un paquete retenido, así que corrí

sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

También salió sin actualizar el paquete, así que ejecuté

sudo apt-get remove --dry-run gstreamer0.10-ffmpeg:i386

Y me dio:

*The following packages will be REMOVED:
  arista gstreamer0.10-ffmpeg
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Remv arista [0.9.7-3ubuntu1]
Remv gstreamer0.10-ffmpeg [0.10.12-1ubuntu1]*

Pero cuando volví a ejecutar

sudo apt-get -u dist-upgrade

Mostró que el paquete todavía estaba allí.

*The following packages have been kept back:
  gstreamer0.10-ffmpeg
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.*

A partir de entonces, ingresé a Synaptic PM y eliminé por completo gstreamer0.10-ffmpeg .

Reejecutar

sudo apt-get -u dist-upgrade

Y me dijeron

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Sin embargo, cuando ejecuté el apt-get original comando para instalar opencv (primer código en la parte superior de esta pregunta), todavía me dio los mismos errores de paquete roto.

Así que probé:

$ cat /etc/apt/sources.list
# 

# deb cdrom:[Ubuntu-Studio 11.10 _Oneiric Ocelot_ - Release i386 (20111011.1)]/ oneiric main multiverse restricted universe

# deb cdrom:[Ubuntu-Studio 11.10 _Oneiric Ocelot_ - Release i386 (20111011.1)]/ oneiric main multiverse restricted universe

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free license. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
deb http://security.ubuntu.com/ubuntu precise-security universe
deb-src http://security.ubuntu.com/ubuntu precise-security universe
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu oneiric partner

## Uncomment the following two lines to add software from Ubuntu's
## 'extras' repository.
## This software is not part of Ubuntu but is offered by third-party
## developers who want to ship their latest software.
# deb http://extras.ubuntu.com/ubuntu oneiric main
# deb-src http://extras.ubuntu.com/ubuntu oneiric main
# deb http://download.opensuse.org/repositories/home:/popinet/xUbuntu_11.04 ./ # disabled on upgrade to precise

A partir de entonces, ejecuté:

$ sudo apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done

Sin embargo, aún no se ha resuelto el problema, ya que sigo recibiendo el mismo mensaje de paquete roto cuando intento ejecutar la instalación de OpenCV con este comando:

sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg

Luego ejecuté:

$ sudo apt-get autoclean
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Del linux-generic 3.2.0.55.65 [1,714 B]
Del linux-libc-dev 3.2.0-54.82 [858 kB]
Del initramfs-tools-bin 0.99ubuntu13.2 [9,758 B]
Del firefox-globalmenu 24.0+build1-0ubuntu0.12.04.1 [8,958 B]
Del apport 2.0.1-0ubuntu17.5 [147 kB]
Del firefox-locale-en 24.0+build1-0ubuntu0.12.04.1 [578 kB]
Del thunderbird-locale-en-gb 1:24.0+build1-0ubuntu0.12.04.1 [14.0 kB]
Del linux-libc-dev 3.2.0-55.85 [860 kB]
Del thunderbird-globalmenu 1:24.0+build1-0ubuntu0.12.04.1 [8,782 B]
Del apport-gtk 2.0.1-0ubuntu17.5 [9,200 B]
Del thunderbird 1:24.0+build1-0ubuntu0.12.04.1 [29.3 MB]
Del firefox 24.0+build1-0ubuntu0.12.04.1 [28.1 MB]
Del thunderbird-locale-en-us 1:24.0+build1-0ubuntu0.12.04.1 [14.0 kB]
Del linux-image-generic 3.2.0.54.64 [2,262 B]
Del linux-headers-generic 3.2.0.55.65 [2,244 B]
Del linux-image-generic 3.2.0.55.65 [2,260 B]
Del python-apport 2.0.1-0ubuntu17.5 [81.1 kB]
Del initramfs-tools 0.99ubuntu13.2 [49.2 kB]
Del linux-headers-generic 3.2.0.54.64 [2,258 B]
Del linux-headers-lowlatency-pae 3.2.0.55.44 [2,256 B]
Del linux-headers-lowlatency-pae 3.2.0.54.43 [2,250 B]
Del thunderbird-locale-en 1:24.0+build1-0ubuntu0.12.04.1 [342 kB]
Del python-problem-report 2.0.1-0ubuntu17.5 [9,466 B]
Del procps 1:3.2.8-11ubuntu6.2 [225 kB]
Del linux-generic 3.2.0.54.64 [1,722 B]

Pero cuando ejecuto el comando de instalación de OpenCV, sigo recibiendo:

E: Unable to correct problems, you have held broken packages.

Así que comencé casi completamente de nuevo, esta vez agregando repositorios que la actualización a Precise había deshabilitado.

Relacionado:¿"upowerd[4116]:mensajes de acción no controlada 'enlazar'" llenando syslog?

Luego volví a ejecutar los siguientes comandos:

$ sudo apt-get autoclean
Reading package lists... Done
Building dependency tree       
Reading state information... Done

$ sudo apt-get clean

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  python-gudev
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  python-gudev
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 106 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 614874 files and directories currently installed.)
Removing python-gudev ...
Processing triggers for python-support ...

$ sudo dpkg --configure -a

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt-get -u dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ cat /etc/apt/sources.list.d/*

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/earth/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/earth/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/earth/deb/ stable main
# deb http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu precise main # disabled on upgrade to precise
# deb-src http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu precise main # disabled on upgrade to precise
deb http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu oneiric main
deb-src http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu oneiric main
# deb http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu precise main # disabled on upgrade to precise
# deb-src http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu precise main # disabled on upgrade to precise
## Please report any bug on https://bugs.launchpad.net/medibuntu/
# deb http://packages.medibuntu.org/ precise free non-free #Medibuntu - Ubuntu 11.10 "oneiric ocelot" disabled on upgrade to precise
# deb-src http://packages.medibuntu.org/ oneiric free non-free #Medibuntu (source) - Ubuntu 11.10 "oneiric ocelot"
## Please report any bug on https://bugs.launchpad.net/medibuntu/
deb http://packages.medibuntu.org/ oneiric free non-free #Medibuntu - Ubuntu 11.10 "oneiric ocelot"
#deb-src http://packages.medibuntu.org/ oneiric free non-free #Medibuntu (source) - Ubuntu 11.10 "oneiric ocelot"
## Please report any bug on https://bugs.launchpad.net/medibuntu/
# deb http://packages.medibuntu.org/ precise free non-free #Medibuntu - Ubuntu 11.10 "oneiric ocelot" disabled on upgrade to precise
# deb-src http://packages.medibuntu.org/ oneiric free non-free #Medibuntu (source) - Ubuntu 11.10 "oneiric ocelot"
# deb http://www.openfoam.org/download/ubuntu precise main # disabled on upgrade to precise
deb http://www.openfoam.org/download/ubuntu oneiric main
# deb http://www.openfoam.org/download/ubuntu precise main # disabled on upgrade to precise
deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main

Resultado:

Pero sigo recibiendo este error cuando intento ejecutar el comando de instalación de OpenCV:

E: Unable to correct problems, you have held broken packages.

¿Qué más necesito hacer?

Relacionado:bash:=:¿No existe tal archivo o directorio .bashrc?

¿Una actualización a Ubuntu Studio 13.xx resolverá este problema (o lo agravará)?

Respuesta aceptada:

Ok, me he encontrado con el mismo problema que tú (pero con otros paquetes). Entonces, como solución barata, en lugar de apt-get aptitud usada:

sudo apt-get install aptitude
sudo aptitude install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg

te ofrecerá una solución a tus dependencias, en mi caso:

The following actions will resolve these dependencies:

      Remove the following packages:                       
1)      libcupsimage2-dev                                  
2)      libsane-dev                                        
3)      libtiff5-dev                                       

      Keep the following packages at their current version:
4)      libcv-dev [Not Installed]                          
5)      libcvaux-dev [Not Installed]                       
6)      libhighgui-dev [Not Installed]                     
7)      libopencv-contrib-dev [Not Installed]              
8)      libopencv-dev [Not Installed]                      
9)      libopencv-highgui-dev [Not Installed]              
10)     libopencv-legacy-dev [Not Installed]               
11)     libopencv-objdetect-dev [Not Installed]            
12)     libopencv-videostab-dev [Not Installed]         

Acepté la solución dada, puede seleccionar N si la solución es demasiado destructiva (en mi caso fue solo algo de -dev paquetes que muy probablemente ya no voy a usar, pero debes revisar el tuyo ). Luego volví a ejecutar el comando de instalación y todo salió bien.


Ubuntu
  1. Cómo instalar OBS Studio 27.2 en Ubuntu 20.04 / 21.10

  2. ¿Cómo instalar OpenCV en Ubuntu 20.04?

  3. Valgrind:¿problema con los paquetes rotos retenidos?

  4. ¿Instalar/eliminar la lista de paquetes de la línea de comandos con apt-get?

  5. Cómo instalar paquetes .deb locales con apt-get

Cómo instalar Android Studio en Ubuntu

Cómo instalar OBS Studio en Ubuntu

Cómo instalar OpenCV en Ubuntu 20.04

Cómo reparar paquetes duplicados de Yum o dependencias rotas

Cómo instalar OpenCV en CentOS 8

¿Los paquetes de kernel rotos de Ubuntu 16.04 no me permiten instalar o eliminar nada con apt-get?