Como posso alias um binário dependente da máquina em que estou

0

Eu trabalho em máquinas diferentes, algumas como centos7 , algumas são centos6 , eu construo um binário tmux com uma versão diferente em cada 'tipo' porque a mesma versão não pode executar ambas.

Como posso dizer ao meu .bashrc para alternar entre a versão do tmux dependendo de qual caixa eu trabalho?

    
por statquant 15.01.2017 / 19:10

1 resposta

1

O comando uname -m dirá em qual arquitetura você está. Por exemplo, no meu sistema agora:

$ uname -m
x86_64

Posso sugerir colocar os binários arquivados em ~/bin/i686 e ~/bin/x86_64 . (Ou, se for Power de 32 bits ou qualquer outra coisa, seja qual for o valor de uname -m ). Em seguida, em ~/.bash_profile (que é o lugar certo para isso , tem uma linha como esta:

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

, que anexará esse novo caminho de caixa específica ao arqui-vio ao seu caminho existente.

Ou, se você quiser algo diferente da arquitetura da máquina, use um distinguisher diferente. Por exemplo, uma maneira fácil de dizer as versões do CentOS é olhar para a versão do pacote centos-release , com rpm -q , então, assim:

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

que te dará ~/bin/centos6 ou ~/bin/centos7 - embora não haja tratamento de erros, então no Fedora ou algo assim você receberá uma mensagem de erro sem sentido no caminho . (Talvez verifique se existe centos-release com uma declaração if antes mesmo de executar isso.)

Você também pode adicionar --nosignatures --nodigest para acelerar esse comando RPM em alguns centésimos de segundo. Não é grande coisa, mas como isso acontece a cada novo shell de login, parece valer a digitação extra.

    
por 15.01.2017 / 21:59