Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux


Objetivo: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Hola.

Os traigo un truco. Normalmente cuando creas un ejecutable en gambas o en C, para poderlo ejecutar le tienes que poner en el terminal lo siguiente, (en la carpeta que este el ejecutable):
$.\archivo_ejecutable

¿estais cansados de ponerle el .\ y de ejecutarlo en su carpeta???
Si es asi os digo un pequeño truco que he aprendido en el curso de programador de sistemas

Se trata de crear una nueva carpeta en vuestro usuario, llamada: bin.
Osea, si mi usuario es "uno", pues creas:
$mkdir /home/uno/bin

¿ok?

Ahora sales de tu cuenta o reinicias el ordenador.

Una vez echo esto (es para que coja ese cambio el sistema operativo), mueves el ejecutable , a la carpeta "bin".

Y ya esta, ya lo puedes ejecutar desde cualquier carpeta poniendo:
$archivo_ejecutable

como cualquier comando de gnu/linux....


Saludos...

Nota:
Si quereis saber el porque, echarle un vistazo a esta entrada: https://sites.google.com/site/fpopr...les-del-sistema

última edición por jsbsan el Domingo, 13 Marzo 2011, 06:12; editado 1 vez
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
perdona, pero para que eso funcione tienes que modificar el PATH y si quieres que ocurra de forma automática al iniciar el ordenador tendrás que poner esa modificacón en bashrc si usas bash o en profile si usas otra o en /etc/profile si lo quieres para todos (cosa absurda en este caso pero bueno)

Pero ya puestos a contar cositas hay otra cosita interesante. Como convertir una aplicación gambas en un demonio.

Como sabeis las aplicaciones las corren usuarios. El usuario se logea y luego ejecuta aplicaciones que funcionan de acuerdo al conjunto de privilegios que ese usuario tiene. Cuando el usuario se va los procesos que tenga lanzados se cierran.

Si lo convertis en un demonio entonces ya no depende de ningún usuario. Es el sistema quien lo inicia, lo reinicia o lo para. Para ello desde el punto de vista de gambas lo único que tenemos que hacer es que pongamos la propiedad application.daemon a true.

Si hacemos esto el directorio principal pasa a ser / en vez del user.home (porque ya no depende de ningún usuario). Además cualquier relación de parentesco con cualquier proceso del usuario se rompe. Ya no depende de usuario alguno.

La otra cosa a realizar es configurar linux para que se inicie de forma automática metiendo un enlace en /etc/init.d cosa que es bastante simple y que quizá un día de estos explique como funciona, pero vamos que hay mucha literatura por ahí de como hacer esto.

Perfil MP  
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Soplo:
Citar:

perdona, pero para que eso funcione tienes que modificar el PATH y si quieres que ocurra de forma automática al iniciar el ordenador tendrás que poner esa modificacón en bashrc si usas bash o en profile si usas otra o en /etc/profile si lo quieres para todos (cosa absurda en este caso pero bueno)


En Ubuntu, no hace falta, el archivo .profile ya viene con esa modificacion "de fábrica":

99-20profile

En debian, no se como vendrá...

Saludos

última edición por jsbsan el Domingo, 13 Marzo 2011, 07:20; editado 1 vez
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Julio, esto es de las primeras cosas que hacíamos en los tiempos de las consolas, que entonces era un peñazo de verdad lo del dichoso punto. La manera no es esa, es la que Soplo te dice.
Incluye en tu .profile lo siguiente

PATH="./:$PATH"

Con ello añades el dichoso ./ (que como todo el mundo sabe quiere decir "aquí donde estoy") en el camino de búsqueda de los ejecutables. De hecho al hacerlo así tienes dos ventajas: Te vale para cualquier directorio estés donde estés, no sólo para el /home/user/bin, y le das preferencia a los tuyos antes que a los del sistema, si es que se llaman igual.

Los demonios de Soplo, conejudos. Tomo nota y agradezco... Por cierto aquello de los rc de arranque -con sus S y sus K- y sus 6 niveles de levantar el sistema y demás, hoy día es esoterismo puro, me temo. Los nuevos usuarios me parece que no sospechan siquiera lo que se puede llegar a personalizar y configurar un sistema en ese aspecto.


Suerte.

última edición por shordi el Domingo, 13 Marzo 2011, 10:40; editado 1 vez
Perfil MP  
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Shordi:

Citar:
Te vale para cualquier directorio estés donde estés,no sólo para el /home/user/bin


Estas equivocado, si usas Ubuntu, el fichero .profile , ya lo tiene "predefinido". Solo hace falta crear la carpeta /bin/ en tu usuario, y grabar alli todos los ejecutables que generes.. Y tendras acceso al programa desde cualquier directorio.

Probarlo, como os digo, y os funciona....

Saludos

Nota: Me juego unas cervecitas, a que llevo razón...

última edición por jsbsan el Domingo, 13 Marzo 2011, 12:29; editado 1 vez
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Que sí, Julio, que llevas razón. Pero eso te obliga a copiar los ejecutables en tales carpetas... ¿Y si tu ejecutable busca algo en la carpeta donde está? es algo común a mitad de un desarrollo. ¿Y si no estás en tu carpeta, sino en otro sitio?

Prueba lo que te digo y verás como todo lo que teclees en la línea de comandos te lo ejecuta si está en la carpeta donde estés. Sin necesidad de copiarlo a ningún sitio.

Suerte.

Perfil MP  
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
jsbsan escribió: [Ver mensaje]
debian, no se como vendrá...

Saludos

en debian viene asi el .profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi



Citar:

PATH="./:$PATH"

Con ello añades el dichoso ./ (que como todo el mundo sabe quiere decir "aquí donde estoy") en el camino de búsqueda de los ejecutables. De hecho al hacerlo así tienes dos ventajas: Te vale para cualquier directorio estés donde estés, no sólo para el /home/user/bin, y le das preferencia a los tuyos antes que a los del sistema, si es que se llaman igual.

el modificar el path por el punto para que los programas funcionen en cualquier directorio
parece buena idea pero por algo no viene asi por defecto

Perfil MP  
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
No viene así, supongo, porque puede suceder que realmente no sabes lo que hay en el directorio por defecto. La posibilidad de que se generen errores, supongo también, aumenta en caso de que alguien tenga la extraña costumbre de llamar a sus programas y scripts igual que los del sistema.

Fuera de eso no le veo más inconveniente. Ya digo que era una práctica corriente en los tiempos de las consolas de texto...

Perfil MP  
Ayortano
Objetivo: Re: Truco: Hacer Que Un Programa Se Ejecute Como Un Comando De Gnu/linux
Pero Julio, los "comandos" , si no son funciones de bash <nombre de tu shell preferida>, son parte de coreutils. Es decir, también son programas.

Lo que haces aquí es que el directorio donde se encuentran tus ejecutables esté en la variable PATH.


P.D: Querella de debianitas y ubunteros. env-update && emerge solution.

última edición por Invitado el Lunes, 14 Marzo 2011, 18:32; editado 2 veces

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3961s (PHP: -84% SQL: 184%)
Consultas SQL: 50 - Debug off - GZIP Activado