обходной путь для ошибки загрузки apt-get из-за невозможности выбрать версию кандидата?

Я пытаюсь установить ros-desktop на Ubuntu16 .04, АРМ. Однако я планирую сначала загрузить пакеты .deb рекурсивно с помощью apt-get download и apt-rdepends , как показано здесь , а затем установить с помощью dpkg игнорируя некоторые нежелательные зависимости. ( apt-get install не позволяет мне игнорировать эти зависимости, поэтому я прибег к этому методу). Но я сталкиваюсь с ошибками при загрузке пакета

E: Can't select candidate version from package xxx as it has no candidate

и многих других подобных строк. Не могли бы вы предложить способ решения этой проблемы.

Важное примечание: Если предлагается apt-get update , я не могу его выполнить, так как некоторые из обновленных пакетов несовместимы и приведут к сбою моих установленных драйверов. Кроме того, есть ли способ успешно загрузить и установить вручную?

К вашему сведению: зависимости, которые я игнорирую, являются mesa, потому что у меня уже есть собственные библиотеки для реализации opengl, и я не хочу, чтобы эти дополнительные пакеты mesa мешали. Заранее спасибо.

1
задан 23 May 2017 в 15:39

1 ответ

Эта ссылка здесь работает, так как я столкнулся с теми же проблемами, что и вы:

www.ostechnix.com/download-packages-dependencies-locally-ubuntu/

Примерно это работает так (замените ключевое слово python на имя вашей зависимости, для меня это было network-manager, и это сработало хорошо):

  1. $ sudo apt-cache depend python выведет список всех зависимостей python
  2. Вывод:

    python PreDepends: python-минимальный Зависит: python2.7 Зависит: libpython-stdlib Конфликты: Перерывы: ядро ​​менеджера обновлений Предлагает: python-doc Предложения: python-tk Заменяет: python-dev

  3. Создайте каталог где-нибудь в рабочей области: mkdir python

  4. Перейдите в этот каталог: cd python

  5. Запустите цикл foreach для каждой зависимости для всех рекомендуемых, предложенных и зависящих пакетов и направьте ошибки в файл errors.txt:

    $ for i in $(apt-cache depend python | grep -E 'Зависит|Рекомендует|Предлагает' | cut -d ':' -f 2,3 | sed -es/'<'/''/ -es/'>'/''/); выполните sudo apt-get download $i 2>>errors.txt; done

  6. В файле errors.txt должны быть какие-то предупреждения "W:" о не сброшенных привилегии, которые вы можете игнорировать, так как это не влияет на загруженные результаты, которые вы можете подтвердить, набрав $ls -la, когда вы можете убедиться сами, что каждый файл на месте, о котором предупреждали for (и поскольку вам, вероятно, не нужны привилегии для этого шага).

  7. После принесения файлов i.E. с USB-накопителем к целевому устройству, вы можете продолжить с

    $ sudo dpkg -i * в соответствующем (зависимом) каталоге (в данном случае python и вы сможете установить файлы.

1
ответ дан 22 April 2020 в 10:22

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

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