Um método genérico para instalar uma biblioteca ausente no Ubuntu Systems

0

Vamos dar uma longa lista de dependências necessárias para que o GNU-Radio seja instalado no Ubuntu 17.04. Eu elaborei esta lista abaixo.

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq

Esta é uma lista extremamente longa de dependências e há numerosas ocasiões em que o APT trava ou reclama dizendo que uma ou duas das dependências não foram encontradas.

Como podemos instalar uma dependência que não é encontrada pelo APT? Quais são os métodos mais aceitos?

Por exemplo, um método muito bom é descrito em esta resposta onde N0rbert faz um esforço para extrair os libliquid1d & libliquid1d-dev usando um método estranho Eu não entendo, extraindo bibliotecas do /mirrors.kernel.org. No entanto, até hoje, quando digito apt-get install libliquid1d no meu sistema Ubuntu 16.04, ele ainda diz que não consegue encontrar essa biblioteca. Abaixo está minha saída do console:

 [sudo] password for user:
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 E: Unable to locate package libliquid1d

Portanto, neste caso, um usuário pode pesquisar e encontrar no link que esta biblioteca existe dentro do ecossistema do Ubuntu apenas para lançamentos Artful, Bionic e Cosmic. Então, que tal instalar para outras distribuições?

Esta é a pergunta que tenho. Quais hacks são conhecidos / populares na comunidade quando esse caso acontece? Estou interessado em um método genérico que funciona para instalar dependências ausentes nas distribuições do Ubuntu, se existirem. Espero que minha pergunta seja específica o suficiente.

Muito obrigado por respostas e visualizações.

    
por Dina 09.05.2018 / 11:00

1 resposta

1

Talvez as dependências sejam encontradas em outra versão do Ubuntu ou em uma versão do Debian. Execute este comando para descobrir.

sudo apt install devscripts  
rmadison -u ubuntu,debian first-package-name next-package-name last-package-name  

Substitua os nomes dos pacotes no código acima pelos nomes dos pacotes que você está procurando.

O problema com este comando é que às vezes o número da versão do pacote é parte do nome do pacote, então o programa rmadison só encontrará pacotes que tenham o mesmo número de versão em seus nomes. Para superar essa limitação, escrevi um script de shell bash que permite procurar pacotes que correspondam a parte do nome do pacote, por exemplo, corresponde apenas à parte do nome do nome do pacote sem precisar igualar o número da versão também.

  1. Crie um script de shell para consultar se existem vários pacotes chamados Open-multiple-URLs-in-Firefox.sh. O script contém o seguinte código:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
    
  2. Torne o script executável.

    chmod +x Open-multiple-URLs-in-Firefox.sh
    
  3. Crie um arquivo chamado packages.txt que contenha os nomes de todos os pacotes de dependência necessários, cada pacote em uma linha separada. Salve packages.txt no mesmo diretório que Open-multiple-URLs-in-Firefox.sh.

  4. Execute o script.

    ./Open-multiple-URLs-in-Firefox.sh  
    

A página da Web que contém informações sobre cada pacote de dependência necessário será aberta em uma guia separada no Firefox.

Para procurar por vários pacotes em Debian , substitua https://packages.ubuntu.com/ no script de shell com https://packages.debian.org/search?keywords=

    
por karel 09.05.2018 / 12:15