Permiso denegado problema de extracción al ejecutar `apt source <some_package>`

0

Estoy tratando de obtener los archivos fuente de algún paquete, me da ese error:

~$ sudo apt source ros-kinetic-nav-core 
Reading package lists... Done
Need to get 6.606 B of source archives.
Get:1 http://packages.ros.org/ros/ubuntu xenial/main ros-kinetic-nav-core 1.14.0-0xenial (dsc) [1.061 B]
Get:2 http://packages.ros.org/ros/ubuntu xenial/main ros-kinetic-nav-core 1.14.0-0xenial (tar) [3.509 B]
Get:3 http://packages.ros.org/ros/ubuntu xenial/main ros-kinetic-nav-core 1.14.0-0xenial (diff) [2.036 B]
Fetched 6.606 B in 4s (1.455 B/s)                
dpkg-source: warning: extracting unsigned source package (ros-kinetic-nav-core_1.14.0-0xenial.dsc)
dpkg-source: info: extracting ros-kinetic-nav-core in ros-kinetic-nav-core-1.14.0
dpkg-source: info: unpacking ros-kinetic-nav-core_1.14.0.orig.tar.gz
dpkg-source: info: unpacking ros-kinetic-nav-core_1.14.0-0xenial.debian.tar.xz
W: Can't drop privileges for downloading as file 'ros-kinetic-nav-core_1.14.0-0xenial.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Los archivos están disponibles pero apt no puede extraerlos:

/opt/ros/kinetic/share/nav_core$ ls
cmake        ros-kinetic-nav-core-1.14.0                        ros-kinetic-nav-core_1.14.0-0xenial.dsc
package.xml  ros-kinetic-nav-core_1.14.0-0xenial.debian.tar.xz  ros-kinetic-nav-core_1.14.0.orig.tar.gz
Orhan G. Hafif
fuente
3
No necesitas correr apt sourcecon sudo. Probar sin Asegúrese de estar en una ubicación del sistema de archivos donde tenga permiso para escribir (es decir, en algún lugar de su directorio de inicio) también.
Zanna
Gracias por el comentario. Es mi pereza. Quiero esa fuente para ingresar a la carpeta fuente con el roscd nav_corecomando para localizar las fuentes fácilmente. No pensé en los permisos: P
Orhan G. Hafif
:) ¿Lo arreglaste entonces?
Zanna
No: P Después de obtener las fuentes en mi espacio de trabajo personal, cambiar el nombre de la carpeta hace que funcione con roscd. Pero no estoy seguro, puede que renombrar no sea necesario: PI lo intentará mañana :)
Orhan G. Hafif

Respuestas:

2

Simplemente use el apt-get sourcecomando sin sudoprefijo; escribirá en el directorio actual.

La advertencia se volvió a redactar después del Informe de error: no se pueden eliminar los privilegios al ejecutar apt-get source como root | Registros de informes de errores de Debian (y docenas de otros informes de la misma característica)

No entiendo por qué hay informes de errores al respecto. Si busca en un directorio en el que _apt no puede escribir, ejecutará los buscadores como root en lugar de _apt para que pueda hacer cualquier tarea tonta (no se necesita root aquí) que está intentando hacer.

También podríamos convertirlo en un error y decir: Este comando no funciona como root, pero eso tampoco hará felices a las personas.

Si bien es posible que queramos resolver esto en algún momento, esto no es un gran problema y requeriría una gran cantidad de trabajo para solucionarlo.

La advertencia fue redactada de nuevo:

Note: This is a warning about disabling a security feature. It is
supposed to be scary as we are disabling a security feature and we
can't just be silent about it! Downloads really shouldn't happen
any longer as root to decrease the attack surface – but if a warning
causes that much uproar, consider what an error would do…

The old WARNING message:
| W: Can't drop privileges for downloading as file 'foobar' couldn't be
| accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
is frequently (incorrectly) considered to be an error message indicating
that the download didn't happen which isn't the case, it was performed,
but without all the security features enabled we could have used if run
from some other place…
osgx
fuente
También intenté con el usuario root, sucedió lo mismo.
Orhan G. Hafif
Gracias por su respuesta. Estaba tratando de obtener las fuentes en el directorio de instalación, para ingresar el roscd some_packagecomando. Pero encontré otra solución. Explicado en los comentarios anteriores.
Orhan G. Hafif