Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.
OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Ejecutar QPhotoRec como root desde los menús de LXQt
Tengo instalado QPhotoRec tanto en Plasma como en LXQt. La cuestión es que QPhotoRec debe ejecutarse como root para acceder a los discos. En Plasma, esto se consigue simplemente marcando en el editor de menús que la aplicación se ejecute como root. En LXQt, en cambio, no acabo de lograrlo. He creado el archivo "~/.local/share/applications/qphotorec.desktop" con el siguiente contenido...
[Desktop Entry]
Categories=System;Filesystem;Qt;
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY XDG_RUNTIME_DIR=/tmp/runtime-root /usr/bin/qphotorec
GenericName=Data Recovery Utility
Icon=qphotorec
Name=QPhotoRec
NoDisplay=false
StartupNotify=true
Terminal=false
Type=Application
Version=1.0
...pero, aunque al pinchar en la entrada de los menús me pide el password de root, la aplicación no llega a abrirse.
Lo curioso es que si ejecuto ese mismo comando desde consola...
$ pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY XDG_RUNTIME_DIR=/tmp/runtime-root /usr/bin/qphotorec
...entonces ¡sí se abre!
¿Quizá me falte algo por poner en el archivo "qphotorec.desktop"?
¡Gracias y saludos!



# 127176 Según recuerdo
Según recuerdo XAUTHORITY=$HOME/.Xauthority
Y no recuerdo que XDG_RUNTIME_DIR=/tmp/runtime-root fuera necesario
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127179 Pues he probado a cambiar el
Pues he probado a cambiar el XAUTHORITY como dices, pero no se aprecia ningún cambio, ni en consola ni desde los menús gráficos.
El argumento XDG_RUNTIME_DIR lo puse porque me lo pedía pkexec al ejecutarlo desde consola. No obstante, tampoco funciona el enlace simbólico al quitarlo.
Gracias igualmente.
# 127177 Hay un viejo reporte sobre
Hay un viejo reporte sobre esto https://bugs.mageia.org/show_bug.cgi?id=29752
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127178 Gracias, aunque no veo ahí
Gracias, aunque no veo ahí ninguna solución para el enlace simbólico (*.desktop). Lo único que veo es que hablan de que hay que ser root para poder trabajar con los discos y que no aparezcan los errores en el inicio...
# 127180 Esto me funciono
Exec=sh -c "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/qphotorec"
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127181 Gracias, aunque me sigue
Gracias, aunque me sigue pasando básicamente lo mismo:
1.º Modifico la línea "Exec:..." por la que tú me dices.
2.º Ejecuto la aplicación desde los menús de LXQt. Me pide contraseña de root, pero la aplicación no se abre.
3.º Ejecuto desde consola la línea "Exec:..." que tú me dices. Sí funciona, aunque me pide el argumento XDG_RUNTIME_DIR.
4.º Introduzco el argumento XDG_RUNTIME_DIR en la línea "Exec:..." que tú me dices.
5.º Ejecuto la aplicación desde los menús de LXQt. Me pide contraseña de root, pero la aplicación no se abre.
6.º Ejecuto desde consola la línea "Exec:..." que tú me dices, pero añadiendo el argumento XDG_RUNTIME_DIR. Sí funciona y no me da ningún error.
# 127183 Estas seguro de que estas
Estas seguro de que estas editando el archivo correcto?
Por si las dudas yo copie el lanzandor al escritorio y ese fue el que modifique
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127186 Pues acabo de probar con el
Pues acabo de probar con el archivo /usr/share/applications/qphotorec.desktop (lo he copiado a ~/.local/share/applications/qphotorec.desktop y he editado la línea "Exec=...") y tampoco me funciona.
# 127185 Prueba usar un
Prueba usar un script
digamos
root-qphotorec
contenido
#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/qphotorec
chmod a+x root-qphotorec
Y
Exec=/home/user/root-qphotorec
Está de más decir que puedes y debes ajustar la ruta o como root puedes copiar el script a /usr/bin
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127187 Lo mismo. Me pide la
Lo mismo. Me pide la contraseña de root, la introduzco y después de eso no pasa absolutamente nada.
Sin embargo, si ejecuto directamente desde consola el script root-qphotorec, sí funciona.
Una pregunta: ¿tú lo estás probando también en LXQt o con otro entorno de escritorio?
¡Muchas gracias!
# 127188 LxQt, pero
No es una instalación LxQt pura, tengo Plasma X11 y Plasma Wayland
Sugerencia Pon el script en el escritorio y úsalo desde ahí, imagino eso te funcionará
O si quieres ser un poco geek crea un archivo policy
Puedes ver por ejemplo /usr/share/polkit-1/actions/kernel-clean.policy
Del paquete Tuningdrake
Y ya te deberá funcionar solo con la linea
Exec=qphotorec
O en el peor de los casos
Exec=pkexec qphotorec
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127189 Claro, es que a mí en Plasma
Claro, es que a mí en Plasma también me funciona, pero no en LXQt. Por esto te preguntaba.
El script me funciona en cualquier localización, pero no desde los menús de LXQt, que es desde donde quiero lanzar la aplicación.
Lo del archivo policy no lo entiendo...
¡Muchas gracias por todo!
# 127190 Me ha tomado unos intentos
Pero si tienes el repositorio blogdrake, al actualizar tendras un qphotorec que te
Pedirá la contraseña de root al iniciar desde el menu y que debe iniciar sin problema
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127197 Sí tengo el repo BDK, pero no
Sí tengo el repo BDK, pero no sucede eso. Cuando instalo qphotorec desde BDK y lo lanzo desde los menús de LXQt, simplemente se abre la aplicación en modo usuario, sin permisos de root.
# 127200 Que versión tienes? Tuvimos
Que versión tienes? Tuvimos un problema hace unos días y algunas actualizaciones no se entregaron
en cuanto fueron procesadas.
Que salida te da
rpm -q qphotorec
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127201 Creo que qphotorec está incluido en photorec
# urpmq -y qphotorec
Ningún paquete llamado qphotorec
# urpmf qphotorec
photorec:/usr/bin/qphotorec
# urpmq -i photorec
https://ftp.blogdrake.net/mageia/mageia9/free/x86_64/media_info/info.xml.lzma
Name : photorec
Version : 7.1
Release : 4.mga9
Group : System/Kernel and hardware
Size : 1508932 Architecture: x86_64
Source RPM : testdisk-7.1-4.mga9.src.rpm
URL : https://www.cgsecurity.org/wiki/TestDisk
Summary : Data recovery software
Description :
PhotoRec is file data recovery software designed to recover lost files
including video, documents and archives from Hard Disks and CDRom and lost
pictures (thus, its 'Photo Recovery' name) from digital camera memory.
PhotoRec ignores the filesystem and goes after the underlying data, so it
will still work even if your media's filesystem has been severely damaged
or re-formatted.
# 127202 Si pero el de blogdrake tiene subindice 3
rpm -q photorec
photorec-7.1-4.3bdk_mga9
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil
Usuario
# 127204 Tengo lo mismo
$ rpm -q photorec
photorec-7.1-4.3bdk_mga9
BOFH
# 127194 El problema no es pkexec, sino el archivo .desktop.
En los lanzadores NO se expanden variables de entorno como $DISPLAY o $XAUTHORITY, mientras que en la consola sí... Por eso el mismo comando funciona en la terminal, pero no desde el menú de LXQt.
Tecnicismo:
En un .desktop, la línea Exec= no pasa por un shell, así que $DISPLAY queda literal y pkexec lanza la app sin entorno gráfico válido => la app no abre.
Solución:
Hay que forzar el uso de un shell para que las variables se expandan.
A probar:
Edita ~/.local/share/applications/qphotorec.desktop y cambia solo la línea Exec= por esta:
Exec=sh -c 'pkexec env DISPLAY="$DISPLAY" XAUTHORITY="$XAUTHORITY" XDG_RUNTIME_DIR="/run/user/$(id -u)" /usr/bin/qphotorec'
El detalle es NO USAR el XDG_RUNTIME_DIR apuntando a /tmp/runtime-root, que crashea a Qt.
/tmp/runtime-root se usa en entornos sin systemd, pero en sistemas modernos ~ Qt, DBus y Wayland (seguro se me escapa algún otro) ~ esperan a /run/user/UID.
El .desktop quedaría así:
Nota:
¿Por qué la añadir 'TryExec=/usr/bin/qphotorec' & Para qué sirve?
TryExec NO lanza nada... Solo le dice al menú que:
“Muestra esta entrada solo si binario en cuestión existe y es ejecutable”.
Si No existe, la entrada desaparece del menú, cosa muy útil. ;)
Usuario
# 127196 Pues muchas gracias por toda
Pues muchas gracias por toda las explicaciones. He aprendido mucho :-)
Sin embargo y por desgracia, tras haber copiado tal cual el contenido que tú has puesto en el archivo *.desktop, el resultado es el mismo: me pide contraseña de root, pero no se lanza el entorno gráfico.
Usuario
# 127198 SOLUCIONADO
¡Increíble! Se me ha ocurrido dar permisos de ejecución al archivo *.desktop (chmod +x ~/.local/share/applications/qhotorec.desktop) y ya funciona. Eso sí, he tenido que volver a la variable XDG_RUNTIME_DIR que tenía anteriormente (XDG_RUNTIME_DIR=/tmp/runtime-root) para eliminar un warning persistente. También le he quitado el comando "sh -c", porque he visto que funciona perfectamente sin él.
Este es el contenido final del archivo:
Lo importante, como decía, es dar permisos de ejecución (+x) al archivo.
Es curioso, porque el resto de los lanzadores de ~/.local/share/applications no tienen permisos de ejecución, excepto el de Telegram.
Saludos y muchas gracias por todas las respuestas, que me han servido para aprender un montón.
Usuario
# 127199 Aún no...
Ahora sí que ya no entiendo nada. Tras reiniciar el sistema y sin cambiar nada, ha dejado de funcionar. He probado a meterle el "sh -c" y tampoco. Poco me ha durado la alegría...
Edito: Tras un segundo reinicio, ¡vuelve a funcionar! xD
Usuario
# 127205 SOLUCIONADO - PUEDEN CERRAR EL HILO
Por mi parte, se puede cerrar este hilo. Después de unos cuantos reinicios, sigue funcionando con total normalidad, así que para mí ya está solucionado. La clave en mi caso ha sido dar permisos de ejecución al archivo qphotorec.desktop
Un saludo y gracias por toda la ayuda!!