SymLink solo funciona en el mismo directorio

1
user@laptop ~ $ sudo ln -s ~/Games/JA/openjk.i386 ~/Desktop/JA
user@laptop ~ $ readlink -f ~/Desktop/JA
/home/user/Games/JA/openjk.i386

Como puede ver, el enlace simbólico apunta al archivo, pero cuando intento hacer clic en él no funciona. Sin embargo, si pongo el enlace simbólico de JA en el mismo directorio que el archivo al que está enlazando (en este caso ~/Games/JA ) funciona. ¿Cómo puedo hacer que funcione fuera de ese directorio? Desktop, por ejemplo)?

Onion
fuente
En primer lugar, no uses sudo Para esto, eso significa que el enlace será propiedad de root, no es tu usuario y no lo necesitas de todos modos. Es esto exactamente ¿que estas haciendo? Acabo de repetirlo y funciona como se esperaba en mi Debian. ¿Tienes acceso a todos los directorios en cuestión? ¿Qué pasa cuando haces clic en el enlace? Qué debería ¿ocurrir? Que tipo de archivo es openjk.i386?
terdon

Respuestas:

1

El problema seguramente es que el binario. openjk.i386 Seguramente esperando algunos archivos en su directorio. Pero el binario asume, que su directorio es ~/Desktop/, donde no se encuentran los archivos requeridos.

Recomendaría usar un script muy pequeño en lugar de un enlace simbólico. P.ej. Debe tener un aspecto como este:

#!/bin/sh
cd /pathToBinary/
./binary $@

Nombra el archivo JA y hazlo ejecutable con chmod a+x JA.

Explicación: los $@ asegura que si su script se inicia con algún argumento, se reenviará al binario real.

erik
fuente