
Estoy seguro de que instalé ROS correctamente (con la distribución melódica) en mi wsl y sé que seguí CADA paso para descargar el paquete completo correctamente, pero usando la línea de comando roslaunch o cualquier cosa relacionada con roslaunch. solo me llevaría de regreso a este mensaje
Command 'roslaunch' not found, but can be installed with:
sudo apt install python-roslaunch
si ingreso la línea de comando
sudo apt install python-roslaunch
entonces me llevaría a
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.
e instalar python-roslib me llevaría a otro error similar al anterior. Lo he probado todo. Desde reinstalar todo hasta tocar los archivos ubicados en el directorio rootf, pero hasta ahora nada ha funcionado. Se agradecería cualquier cosa que al menos pudiera ayudarme a descubrir qué ocurre.
Respuesta1
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get update --fix-missing
$ sudo apt-get autoclean
$ apt-get clear cache
Respuesta2
Estas son algunas formas rápidas y sencillas de corregir el you have held broken packages
error.
Abra su archivo sources.list
/etc/apt/sources.list
y verifique que no haya fuentes de software para una versión de Ubuntu diferente a la versión de Ubuntu que está utilizando actualmente. Si encuentra líneas de publicación incorrectas en fuentes.list, abra el archivo fuentes.lista consudoedit /etc/apt/sources.list
, comente las líneas incorrectas en fuentes.lista precediéndolas con un#
carácter, guarde el archivo fuentes.lista y ejecútelosudo apt update
para actualizar la lista de paquetes de software disponibles.Selecciona elReparar paquetes rotosopción en el administrador de paquetes Synaptic. Ejecute los siguientes comandos para instalar Synaptic.
sudo apt update sudo apt upgrade sudo apt install synaptic
Abra Synaptic y en Synaptic seleccioneEditar->Reparar paquetes rotosy luego repetirEditar->Reparar paquetes rotospor segunda vez.
En Synaptic, en el panel izquierdo, haga clic enFiltros personalizadosbotón que está marcado con el cursor del mouse en la siguiente captura de pantalla. De la lista en la esquina superior izquierda seleccioneRoto. En el panel central aparecerán todos los paquetes rotos que aún deben repararse.
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.
Si recibe este mensaje de error:
Try 'apt-get -f install' with no packages (or specify a solution)
Ejecute los siguientes comandos:
sudo apt update sudo apt upgrade sudo apt-get -f install
Retire manualmente un paquete roto.
Encuentra tu paquete en
/var/lib/dpkg/info
ls -l /var/lib/dpkg/info | grep <package>
Mueva la carpeta del paquete a otra ubicación.
cd /tmp && sudo mkdir new-package-location sudo mv /var/lib/dpkg/info/<package>.* /tmp/new-package-location/
Ejecute el siguiente comando:
sudo dpkg --remove --force-remove-reinstreq <package>
Si todos estos métodos no funcionan, es posible que los paquetes rotos sean causados por algo que está tan profundamente incrustado en el sistema operativo que ninguno de estos métodos tiene ningún efecto sobre él. El primer lugar obvio para buscar este "algo" profundamente arraigado es en las fuentes del software en /etc/apt/sources.list
. Verifique el archivo sources.list para ver si contiene líneas no estándar que puedan estar causando un error de paquetes rotos. Un archivo de fuentes.list estándar de Ubuntu se parece a los archivos de fuentes.list enesta respuesta.
La forma correcta de eliminar una línea sospechosa de fuentes.list es comentarla precediéndola con un #
carácter. Luego ejecute sudo apt update
para actualizar la lista de software disponible.