Общий метод для установки отсутствующей библиотеки в Ubuntu Systems

Давайте рассмотрим длинный список зависимостей, необходимых для установки GNU-Radio в Ubuntu 17.04. Я разрабатываю этот список ниже.

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

Это очень длинный список зависимостей, и есть множество случаев, когда APT зависает или жалуется, говоря, что одна или две зависимости не найдены.

Как мы можем установить зависимость, которая не найдена APT? Каковы наиболее распространенные методы?

Например, очень хороший метод описан в в этом ответе , где Норберт пытается извлечь недостающие libliquid1d и libliquid1d-dev, используя странный метод, который я не понимаю, извлекая библиотеки из /mirrors.kernel.org. Однако на сегодняшний день, когда я набираю apt-get install libliquid1d в моей системе Ubuntu 16.04, он все равно говорит, что не может найти эту библиотеку. Ниже приведен вывод моей консоли:

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

Так что в этом случае пользователь может найти и найти в https://packages.ubuntu.com/search?keywords=libliquid1d , что это Библиотека существует в экосистеме Ubuntu только для выпусков Artful, Bionic и Cosmic. Так как насчет установки для других дистрибутивов?

Ubuntu packages search result

У меня есть вопрос. Какие хаки известны / популярны в сообществе, когда это происходит? Меня интересует универсальный метод, который работает для установки отсутствующих зависимостей в дистрибутивах Ubuntu, если он существует. Я надеюсь, что мой вопрос достаточно конкретен.

Большое спасибо за ответы и мнения.

0
задан 11 May 2018 в 22:18

1 ответ

Возможно, зависимости найдены на другой версии Ubuntu или версии Debian. Выполните эту команду для обнаружения.

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

Замените имена пакета в вышеупомянутом коде с названиями пакетов, которые Вы ищете.

Проблема с этой командой состоит в том, что иногда число версии пакета является частью имени пакета, таким образом, rmadison программа только найдет пакеты, которые имеют тот же номер версии на их имена. Для преодоления этого ограничения, я записал сценарий оболочки удара, который допускает поиск пакетов, которые соответствуют части имени пакета, например, соответствуют только заглавной роли имени пакета, не будучи должен соответствовать номеру версии также.

  1. Создайте сценарий оболочки, чтобы запросить, существуют ли несколько пакетов названные Open-multiple-URLs-in-Firefox.sh. Сценарий содержит следующий код:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
    
  2. Сделайте исполняемый файл сценария.

    chmod +x Open-multiple-URLs-in-Firefox.sh
    
  3. Создайте файл под названием packages.txt, который содержит названия всех необходимых пакетов зависимости, каждого пакета на отдельной строке. Сохраните packages.txt в том же каталоге как Open-multiple-URLs-in-Firefox.sh.

  4. Запустите скрипт.

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

Веб-страница, которая имеет информацию о каждом необходимом пакете зависимости, откроется на отдельной вкладке в Firefox.

Для поиска нескольких пакетов в замене Debian https://packages.ubuntu.com/ в сценарии оболочки с https://packages.debian.org/search?keywords=

1
ответ дан 29 October 2019 в 09:10

Другие вопросы по тегам:

Похожие вопросы: