Wil*_*ill 4 package-management ffmpeg opencv software-installation
我正在尝试安装 OpenCV(视频分析)并遵循Ubuntu OpenCV 安装文档。
提供的脚本有一行执行了一段时间,带走了比我预期更多的包(例如 ubuntu-studio 视频):
sudo apt-get -qq remove ffmpeg x264 libx264-dev
Run Code Online (Sandbox Code Playgroud)
当脚本到达下面的行时,它会爆炸:
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
Run Code Online (Sandbox Code Playgroud)
错误信息是:
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)
我首先运行更新管理器,运行sudo apt-get update,重新启动,尝试手动运行上面的脚本行,但仍然没有变化。
此后遵循以下给出的答案:
我跑了sudo apt-get install -f,似乎什么都没有改变。它确实提到不再需要某些软件包并且可以通过 删除apt-get autoremove,所以我运行了它。它删除了许多软件包,所以我重新运行了install上面的命令。仍然是保持破损包裹的相同问题。
然后我跑了sudo apt-get -u dist-upgrade,结果的一部分是:
The following packages have been kept back: gstreamer0.10-ffmpeg
Run Code Online (Sandbox Code Playgroud)
我不确定这意味着什么。我知道它显示在我的更新管理器中并且无法检查。
然后我跑了
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
然后再跑
sudo apt-get -f install
Run Code Online (Sandbox Code Playgroud)
并且软件包仍然没有升级,尽管有一个非常有趣的评论;
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.
Run Code Online (Sandbox Code Playgroud)
然后我跑了
sudo apt-get -u dist-upgrade
Run Code Online (Sandbox Code Playgroud)
它显示我有一个包裹,所以我跑了
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
Run Code Online (Sandbox Code Playgroud)
它也没有升级包就退出了,所以我跑了
sudo apt-get remove --dry-run gstreamer0.10-ffmpeg:i386
Run Code Online (Sandbox Code Playgroud)
它给了我:
*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]*
Run Code Online (Sandbox Code Playgroud)
但是当我重新跑
sudo apt-get -u dist-upgrade
Run Code Online (Sandbox Code Playgroud)
它显示包裹还在那里。
*The following packages have been kept back:
gstreamer0.10-ffmpeg
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.*
Run Code Online (Sandbox Code Playgroud)
此后,进入 Synaptic PM 并完全删除gstreamer0.10-ffmpeg.
再然
sudo apt-get -u dist-upgrade
Run Code Online (Sandbox Code Playgroud)
并被告知
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)
但是,当我运行原始apt-get命令来安装 opencv(这个问题顶部的第一个代码)时,它仍然给了我同样的损坏包错误。
所以我试过:
$ 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
Run Code Online (Sandbox Code Playgroud)
此后,我跑了:
$ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
Run Code Online (Sandbox Code Playgroud)
但是,还没有解决问题,因为当我尝试使用以下命令运行 OpenCV 安装时,我仍然收到相同的损坏包消息:
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
Run Code Online (Sandbox Code Playgroud)
然后我跑了:
$ 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]
Run Code Online (Sandbox Code Playgroud)
但是当我运行 OpenCV install 命令时,我仍然得到:
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)
然后我几乎完全重新开始,这次重新添加了升级到 Precise 已禁用的存储库。
然后我重新运行以下命令:
$ 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
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行 OpenCV 安装命令时仍然出现此错误:
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)
我还需要做什么?
升级到 Ubuntu Studio 13.xx 会解决这个问题(或使问题复杂化)吗?
好的,我遇到了和你一样的问题(但有另一个包)。所以作为廉价的解决方案,我而不是apt-get使用 aptitude:
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
Run Code Online (Sandbox Code Playgroud)
它将为您提供依赖项的解决方案,就我而言:
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]
Run Code Online (Sandbox Code Playgroud)
我接受了给出的解决方案,您可以选择N该解决方案是否具有破坏性(在我的情况下,它只是一些-dev我很可能不再使用的软件包,但您必须检查您的)。然后我再次重新运行安装命令,一切正常。
| 归档时间: |
|
| 查看次数: |
8037 次 |
| 最近记录: |