Yo también estoy recibiendo este error en GNURoot. Busque en google y vi tu pregunta publicada en muchos foros de stack. Quise cambiar de armel a armhf y seguí las instrucciones de la web de Debian pero llegué al error que indicas. Lo que tuve que hacer fue chown u+s /usr/bin/mandb
. El error seguía apareciendo pero todo funcionaba a las mil maravillas.
Creo que necesitas chmod dpkg de nuevo y entonces todo funcionará bien. Btw yo también estoy todavía corriendo KitKat.
Editar: Después de más pruebas y el uso de gnuroot, resulta que el método que he indicado anteriormente para evitar el error de permiso denegado no resuelve todos los problemas. Después de mirar /etc/fstab
en el entorno proot, no hay puntos de montaje. Si ejecuta el comando mount desde la terminal de gnuroot notará que mostrará los puntos de montaje del sistema anfitrión. También notarás que al ejecutar chmod 4777 /
o chmod u+s /
aparecerá el error de permiso denegado. Si ejecuta ls -l /acct
se listará el /acct
del sistema anfitrión no del proot.
No he probado esto, pero ya que el entorno proot necesita las banderas suid tendrás que descomprimir la imagen de arranque de tu dispositivo Android, editar el fstab y cambiar las opciones de montaje eliminando la opción nosuid, volver a empaquetar y flashear la imagen de arranque para resolver tu problema. Volver a montar en el terminal como Root (no proot) no resuelve el problema porque incluso después de volver a montar, el archivo fstab sigue siendo el mismo.
Por cierto esto es sólo mi teoría y editaré la respuesta si funciona perfectamente.
Una cita extraída de una respuesta en reddit
Si tienes Root, chroot. En pocas palabras, un chroot generará procesos directamente en la zona de usuario de Linux, mientras que un proot lo hará desde el entorno de Android y estará limitado por las limitaciones de recursos de Android. Un chroot también puede ejecutar un entorno de escritorio más cercano; gestores de ventanas completos, navegadores y demás. Incluso puede ejecutar Java y Android Studio.
Linux Deploy es diferente de Gnuroot porque Linux deploy usa chroot mientras que gnuroot usa proot, esa es la razón por la que funcionan de forma diferente.
Edición 2: Después de seguir probando, descubrí que tenía que ejecutar apt-get install fakeroot
entonces fakeroot /bin/bash
Después de ejecutar estos comandos, el error desapareció. El chmoding resultó no resolver del todo el error. También si te da errores de instalación intenta hacer fakeroot /bin/sh
o fakeroot /bin/dash
Prueba de que fakeroot funciona ahora estoy en debian 10(buster) después de las actualizaciones de los pacientes.
Gnu Root debian es como Termux pero para versiones antiguas de Android.En cuanto al asunto de su llamar al binario su desde dentro de proot, necesitas instalar el binario tsu. Como gnuroot no tiene pkg
en termux, el mismo binario puede ser instalado a través de python2. Así que primero instale python pip y luego ejecute pip install tsu
entonces ejecuta el binario tsu y tal vez tengas suerte y obtengas permisos reales de Root. No funcionará en wheezy stock (lo he probado) debian pero tratar de actualizar a jessie o estiramiento y tal vez usted tendrá suerte.