¿Cómo puedo asignar un alias a un binario que depende de la máquina en la que estoy?

¿Cómo puedo asignar un alias a un binario que depende de la máquina en la que estoy?

Trabajo en diferentes máquinas, algunas como centos7, otras centos6, construyo un binario tmuxcon una versión diferente en cada 'tipo' ya que la misma versión no puede ejecutar ambas.

¿Cómo puedo indicarle .bashrcque cambie entre versiones tmuxdependiendo del cuadro en el que trabajo?

Respuesta1

El comando uname -mle dirá en qué arquitectura se encuentra. Por ejemplo, en mi sistema ahora mismo:

$ uname -m
x86_64

Podría sugerir poner archivos binarios archful en ~/bin/i686y ~/bin/x86_64. (O, si es Power de 32 bits o algo más, lo que uname -mregrese). Luego, en ~/.bash_profile(cuál es ellugar correcto para esto, tiene una línea como esta:

PATH=$PATH:~/bin/$(uname -m)

que agregará esta nueva ruta bin específica del arco a su ruta existente.

O, si desea algo distinto a la arquitectura de la máquina, utilice un distintivo diferente. Por ejemplo, una forma sencilla de saber las versiones de CentOS es mirar la versión del centos-releasepaquete, con rpm -q, así:

PATH=$PATH:~/bin/centos$(rpm -q --qf '%{VERSION}' centos-release)

lo que te dará o ~/bin/centos6, ~/bin/centos7aunque no hay manejo de errores, por lo que en Fedora o algo así recibirás un mensaje de error sin sentidojusto en el camino. (Tal vez verifique si centos-release existe con una ifdeclaración incluso antes de ejecutar esto).

También puede agregar --nosignatures --nodigestpara acelerar este comando de RPM en unas centésimas de segundo. No es gran cosa, pero como sucederá en cada nuevo shell de inicio de sesión, parece que vale la pena escribir más.

información relacionada