
Я точно знаю, что правильно установил ROS (дистрибутив — melodic) на моем wsl, и я знаю, что выполнил ВСЕ шаги, чтобы правильно загрузить полный пакет, но использование командной строки roslaunch или чего-либо, связанного с roslaunch, только вернуло бы меня к этому сообщению.
Command 'roslaunch' not found, but can be installed with:
sudo apt install python-roslaunch
если я ввожу командную строку
sudo apt install python-roslaunch
это тогда привело бы меня к
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
python-roslaunch : Depends: python-roslib but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
и установка python-roslib приведет меня к другой ошибке, похожей на вышеприведенную. Я перепробовал все. От переустановки всего до касания файлов, расположенных в каталоге rootf, но пока ничего не сработало. Буду признателен за все, что хотя бы поможет мне понять, в чем проблема.
решение1
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get update --fix-missing
$ sudo apt-get autoclean
$ apt-get clear cache
решение2
Вот несколько быстрых и простых способов исправить you have held broken packages
ошибку.
Откройте файл sources.list
/etc/apt/sources.list
и проверьте, нет ли источников программного обеспечения для другого выпуска Ubuntu, отличного от используемого вами в данный момент. Если вы обнаружите какие-либо неправильные строки выпуска в sources.list, откройте файл sources.list с помощьюsudoedit /etc/apt/sources.list
, закомментируйте неправильные строки в sources.list, поставив перед ними символ#
, сохраните файл sources.list и запустите егоsudo apt update
для обновления списка доступных пакетов программного обеспечения.ВыберитеИсправить сломанные пакетыопция в менеджере пакетов Synaptic. Выполните следующие команды для установки Synaptic.
sudo apt update sudo apt upgrade sudo apt install synaptic
Откройте Synaptic и в Synaptic выберитеРедактировать->Исправить сломанные пакетыи затем повторитьРедактировать->Исправить сломанные пакетывторой раз.
В Synaptic на левой панели щелкнитеПользовательские фильтрыкнопка, которая отмечена курсором мыши на скриншоте ниже. Из списка в левом верхнем углу выберитеСломанный. В центральной панели будут перечислены все сломанные пакеты, которые еще необходимо восстановить.
Select the broken packages one at a time. Select a broken package, and then open the terminal and run <code>apt policy <b><package-name></b></code>. The results of this command will tell you if that broken package was installed from the default Ubuntu repositories or from some other source. If the broken package was installed from some other source, maybe that package can be removed along with its software source and replaced by a different version of the same package from the default Ubuntu repositories. Usually this means fixing a broken package by downgrading that package to an older version.
Если вы получили это сообщение об ошибке:
Try 'apt-get -f install' with no packages (or specify a solution)
Выполните следующие команды:
sudo apt update sudo apt upgrade sudo apt-get -f install
Удалите сломанную упаковку вручную.
Найдите свой пакет в
/var/lib/dpkg/info
ls -l /var/lib/dpkg/info | grep <package>
Переместите папку пакета в другое место.
cd /tmp && sudo mkdir new-package-location sudo mv /var/lib/dpkg/info/<package>.* /tmp/new-package-location/
Выполните следующую команду:
sudo dpkg --remove --force-remove-reinstreq <package>
Если все эти методы не работают, возможно, что сломанные пакеты вызваны чем-то, что так глубоко встроено в операционную систему, что ни один из этих методов не оказывает на нее никакого эффекта. Первое очевидное место для поиска этого глубоко встроенного "чего-то" - это исходные коды программного обеспечения в /etc/apt/sources.list
. Проверьте файл sources.list, чтобы увидеть, содержит ли он какие-либо нестандартные строки, которые могут вызывать ошибку сломанных пакетов. Стандартный файл Ubuntu sources.list выглядит так же, как файлы sources.list вэтот ответ.
Правильный способ удалить подозрительную строку из sources.list — закомментировать ее, поставив перед ней символ #
. Затем запустите sudo apt update
для обновления списка доступного программного обеспечения.