A todos nos a ocurrido alguna vez, que al intentar ejecutar un comando/programa
hemos obtenido como respuesta command not found
.
Esto significa que el shell/intérprete de comandos no encontró el comando que queríamos ejecutar. Las causas más comunes suelen ser:
./programa
, donde programa es el nombre del ejecutable.
NOTA: Algunos usuarios tienen el sistema configurado para que no sea necesario
esto último que hemos explicado. Para ello tienen incluido en el $ PATH "."
.
Esto hará que podamos ejecutar cualquier programa independientemente del directorio donde
se encuentre. Esta práctica es totalmente desaconsejable por los problemas de seguridad
que puede dar.
comando --help
,
para ver si hace falta añadir variables de entorno, para el uso del mismo.Permission denied
.
El error es bien claro, el ejecutable existe pero no tenemos permiso para ejecutarlo, comprueba que lo podemos ejecutar, es decir, tiene una x en el grupo al que pertenezcamos: dueño, grupo, u otros. Mas información sobre permisos en la subsección ¿Cómo se cambian los permisos de ficheros y directorios?.
Por ultimo, podemos obtener un error en el que se nos informa que cierta librería no se encuentra.
Ejecuta el comando:
[asimov@asimovI bin] ldd comandoEsto mostrará todas las librerías compartidas que el comando/programa utiliza/necesita para funcionar.
Si no tenemos algunas, las tenemos que instalar, pero si las tenemos tenemos que comprobar
que /sbin/ld
(el cargador de librerías dinámicas) sabe donde están,
para ello hemos de añadir una entrada en el fichero /etc/ld.so.conf
que consiste en poner el directorio donde esta la librería, luego ejecutamos
/sbin/ldconfig -D
para cerciorarnos que la lee.