Mi pregunta parece ser trivial, pero no pude encontrar nada útil en Internet. Tengo un binario en
/urs/bin/binary
pero está desactualizado y, por ejemplo, hay una versión más nueva disponible en algunos soportes
/mount/new_version/binary
Y hay un script bash que invoca este binario en una forma como
binary -doSomething
Necesito este script para invocar una nueva versión del binario en lugar del anterior, pero no tengo permiso para cambiar este script. ¿Es una forma de anular la ruta de alguna manera, pero solo para mi usuario? Cualquier ayuda sería apreciada.
Respuestas:
Si el binario está dentro
/usr/bin/binary
y el script invoca el binario sin especificar la ruta completa, sino que depende de/usr/bin
estar dentroPATH
, simplemente puede agregar la ubicación del nuevo binario al comienzo del usuarioPATH
. Ponga algo como esto en su~/.bashrc
:Por razones de seguridad, los scripts a menudo especifican la ruta completa a los binarios para evitar este tipo de cosas.
fuente
Si tiene acceso al binario, puede hacer una copia de seguridad y crear un enlace simbólico.
[EDITAR]
Lo sentimos, no vi que el cambio debe hacerse solo para un usuario.
Puede crear una función para que se llame en lugar del binario.
Dependiendo de cómo ejecute el binario (ruta completa o solo nombre), debe crear una función adecuada , como:
Si el binario no acepta / necesita argumentos, elimine el "$ @" .
Para automatizar la creación de funciones, coloque las líneas de función en el archivo .profile en el directorio de inicio del usuario.
fuente
alias commandname=/mount/new_version/binary
en el .bashrc arriba de la declaración de ruta / exportación o en el perfil se logrará bastante fácil.
fuente