Como posso dizer ao aptitude que um pacote foi instalado manualmente?

3

Eu instalei um pacote (não lembro qual deles, mas isso não deveria ser muito importante) e precisei de "o real" ffmpeg , então eu purgei o pacote debian para ffmpeg e instalei a outra versão manualmente. / p>

O problema é que agora não consigo instalar ou atualizar nenhum pacote sem aptitude informando que xyz package requer ffmpeg , que não está sendo instalado. No entanto, desde que o pacote é instalado, todos os programas que dependem dele funcionam bem. Eu não quero sobrescrever a versão que tenho com a versão do repositório, eu só quero dizer ao aptitude que o ffmpeg está realmente instalado.

Já experimentei o apt-mark , mas como o aptitude não pensa que está instalado, não irá marcá-lo manualmente.

Conforme solicitado, apt-cache policy ffmpeg mostra:

ffmpeg:
  Installed: (none)
  Candidate: 7:3.2.10-1~deb9u1~bpo8+1
  Version table:
     10:2.6.9-dmo1 0
        100 /var/lib/dpkg/status
     7:3.2.10-1~deb9u1~bpo8+1 0
        100 http://http.debian.net/debian/ jessie-backports/main amd64 Packages

Ainda estou muito interessado em uma solução, mas decidi instalar a versão do repositório e reinstalar a versão desejada. O Aptitude "instalou" o ffmpeg, mas não substituiu a minha versão atual (talvez coloque-a em um ponto diferente ou talvez tenha visto uma versão "mais recente").

    
por user1794469 02.03.2018 / 19:17

1 resposta

3

É não recomendado para instalar pacotes aleatórios com o dpkg.

Leia a resposta completa antes de realizar qualquer ação

Apt está com um problema porque não está associado à sua instalação de ffmpeg . Tanto quanto você está preocupado, você não tem ffmpeg instalado e está dando o erro acima por causa disso. Sua saída de apt-cache policy ffmpeg prova isso. Não estou ciente dos métodos para associar um arquivo .deb aleatório a apt , a menos que seu pacote configure apt durante o processo de instalação. Se alguém puder me corrigir sobre isso, eu apreciaria muito isso. Se você precisa de um pacote que não esteja disponível em seus repositórios atuais, você pode, a seu próprio critério, adicionar testing / unstable / backports / qualquer repositório ao seu sources.list que tenha o pacote que você está procurando para e use o gerenciador de pacotes.

Eu não recomendo que você use um repo não-oficial do Debian.

Pesquise as versões disponíveis de ffmpeg aqui . Se a versão desejada estiver em um repositório que não seja estável, você deverá adicioná-la à sua sources.list. Se você configurar o "Apt Pinning" você pode gerenciar múltiplos lançamentos do Debian com pouca sobrecarga. Para corrigir sua instalação de ffmpeg start, remova sua instância atual para que possamos começar do zero.

apt-get purge ffmpeg
dpkg --purge ffmpeg
dpkg -l | ffmpeg

Isso elimina ffmpeg e, em seguida, verifica se ele está instalado. Você deve estar procurando um rc status como por este post . Você pode então seguir o guia em o wiki sobre como fixar para adicionar testes e repos instáveis. Não esqueça de criar os arquivos em /etc/apt/sources.list.d/ para cada repo que você planeja usar, e um arquivo /etc/apt/preferences.d/ correspondente. Depois de ter criado os arquivos apropriados para configurar com o pinagem, você pode simplesmente executar:

apt-get install ffmpeg/unstable

Para instalar ffmpeg do repositório instável. Você pode substituir a unstable por qualquer repo do pacote desejado, se você configurar o pinning.

No entanto, se você absolutamente precisa usar um repositório Debian não-oficial

Aqui está um guia para adicionar um repositório de terceiros que contém o pacote ffmpeg que você provavelmente está procurando. Se você decidir usar o pinagem adequado, precisará criar o repo ( /etc/apt/sources.list.d/deb-multimedia.list ) e as preferências ( /etc/apt/preferences.d/deb-multimedia.preferences ). Conclua as etapas a seguir após remover ffmpeg da maneira descrita anteriormente.

nano /etc/apt/sources.list

Adicione esta linha:

deb http://www.deb-multimedia.org stretch main non-free

Salve e saia. Agora siga estas etapas:

apt-get update

The “-oAcquire::AllowInsecureRepositories=true” option is mandatory since Buster and thus also needed for unstable.

apt-get update 

-oAcquire::AllowInsecureRepositories=true

apt-get install deb-multimedia-keyring 

-oAcquire::AllowInsecureRepositories=true

Since Squeeze you can install this package with apt-aget. Simply press y when the package ask what to do (don't press return).

If apt-get can not find the new key, do that :

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb

You can verify the package integrity with:

sha256sum deb-multimedia-keyring_2016.8.1_all.deb
9faa6f6cba80aeb69c9bac139b74a3d61596d4486e2458c2c65efe9e21ff3c7d deb-multimedia-keyring_2016.8.1_all.deb

Final and mandatory step.

An apt-get update and apt-get dist-upgrade to install all packages related to ffmpeg.

Depois disso, você pode executar apt-get install ffmpeg e deve ter o pacote correto.

Conclusão

Eu entendo que isso abrange muito, mas eu queria ser abrangente. Minha filosofia pessoal com a administração do Debian é não se desviar da estabilidade, se possível, e não se desviar dos repositórios oficiais, com a configuração apropriada do pinning, de acordo com o para o wiki do Debian , e cuidadosamente limitar e gerenciar qualquer coisa de um .deb ou instalado a partir da origem. Se você puder ajudar a evitar que haja conflitos entre o versionamento de pacotes / bibliotecas por ter tudo o que você possivelmente pode ser gerenciado por apt , você deve estar seguro.

Desculpe se isso é muito longo ou não o que você precisava Eu só queria ter certeza de que cobria todas as bases. Melhor da sorte!

    
por 02.03.2018 / 21:11