Desinstalar os pacotes libav depois de reinstalar a partir da origem

0

Estou executando o kubuntu 14.04 e não planejo fazer a atualização até pelo menos essas férias de verão. Os pacotes libav fornecidos são um pouco desatualizados (duas versões principais por trás) e produzem resultados insatisfatórios para alguns dos meus casos de uso. Por esse motivo, tentei criar e instalar a partir do código-fonte, o que provou resolver os problemas que tive. Eu gostaria de manter assim (estou bastante experiente com o git e não deveria ter problemas atualizando meu snapshot e mantendo os deps atualizados), e agora eu quero desinstalar os vários pacotes libav que eu tenho para fazer um um pouco de limpeza e evitar conflitos estranhos.

Quando eu tento fazer isso, o apt-get quer remover um monte de outros (meta) -pacotes, porque eles dependem da libav (vlc, dolphin, kubuntu-desktop (!), etc).

Como posso religar todos esses aplicativos para os novos executáveis libav que eu criei (acho que deve ser bastante direto se os instalar globalmente com sudo make install ), e como posso então desinstalar com segurança os pacotes desatualizados sem quebrar meu configuração?

Editar: seguindo o conselho @MoonSweep, eu tentei construir um pacote equivs, mas eu tenho problemas para fazer isso: aqui está a saída se eu tentar remover os pacotes libav sem o pacote equivs para preencher os deps:

$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]

Aqui está o pacote equivs que eu instalei

### 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 <[email protected]>
# 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

Mas isso não parece ser suficiente, já que o comando remove anterior tem exatamente o mesmo resultado. O que estou fazendo errado?

    
por nathdwek 26.03.2015 / 21:34

1 resposta

0

Você não precisa "religar" esses aplicativos; se suas bibliotecas estiverem instaladas corretamente (mesmo em /usr/local ), os aplicativos deverão poder encontrá-los.

O que você precisa é criar e instalar um pacote falso que pretenda fornecer essas bibliotecas, a fim de satisfazer as dependências do ponto de vista do gerenciador de pacotes. Dê uma olhada no pacote equivs .

    
por MoonSweep 26.03.2015 / 22:44