我正在运行kubuntu 14.04,并且至少在这些暑假之前不打算升级。所提供的libav包有些过时(后面有两个主要版本),并为我的一些用例产生了不令人满意的输出。为此,我尝试从源代码构建和安装,这证明了我的问题解决了。我希望保持这种状态(我对git相当有经验,应该不会在更新快照和保持do更新方面出现问题),现在我想卸载我拥有的几个libav包,以便进行一些清理和防止奇怪的冲突。
当我尝试这样做时,apt-get想要删除一堆其他(元)-packages,因为它们依赖libav (vlc、海豚、kubuntu桌面(!)等等)。
如何将所有这些应用程序重新绑定到我构建的新的libav可执行文件(我想使用sudo make install全局安装它们应该是相当直接的),然后如何安全地卸载过期包而不破坏我的设置?
编辑:按照@MoonSweep建议,我试着构建一个equivs包,但我在完成它时遇到了问题:如果我试图删除没有设备的libav包来填充dep,下面是输出:
$sudo apt-get remove libavcodec-* libavformat* libavutil*
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libavcodec-dev' for regex 'libavcodec-*'
[...more regex gibberish...]
The following packages were automatically installed and are no longer required:
libechonest2.1 libftgl2 libglew1.10 libprojectm2 libprotobuf8 libqxt-core0
libqxt-gui0 projectm-data
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
baloo clementine dolphin gstreamer1.0-libav gstreamer1.0-plugins-bad
kubuntu-desktop libavcodec-dev libavcodec-extra libavcodec-extra-54
libavformat-dev libavformat54 libavutil-dev libavutil52 libbaloowidgets4
libchromaprint-dev libchromaprint0 libk3b6-extracodecs libkfilemetadata4
libopencv-contrib2.4 libopencv-highgui2.4 libopencv-legacy2.4
libopencv-objdetect2.4 libswscale-dev libswscale2
nepomuk-core-ffmpegextractor phonon-backend-vlc vlc vlc-nox
vlc-plugin-notify vlc-plugin-samba
0 upgraded, 0 newly installed, 30 to remove and 0 not upgraded.
After this operation, 64.2 MB disk space will be freed.
Do you want to continue? [Y/n]这是我安装的equivs软件包
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2
Package: libav-source
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
Provides: libavcodec-extra,libavcodec-extra-54,libavformat,libavformat54,libavutil52,libswscale2,libswscale2,gstreamer1.0-libav,libavcodec-dev,libavformat-dev,libavutil-dev,libswscale-dev
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Files: <pair of space-separated paths; First is file to include, second is destination>
# <more pairs, if there's more than one file to include. Notice the starting space>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraph但是它似乎没有提供足够的结果,因为前面的remove命令具有完全相同的结果。我做错了什么?
发布于 2015-03-26 21:44:23
您不需要“重新绑定”这些应用程序;如果您的库安装正确(即使在/usr/local中),应用程序应该能够找到它们。
您需要构建并安装一个假装提供这些库的假包,以便从包管理器的角度满足依赖关系。请看一下equivs包。
https://askubuntu.com/questions/601738
复制相似问题