使用しているマシンに依存するバイナリをエイリアスするにはどうすればいいですか

使用しているマシンに依存するバイナリをエイリアスするにはどうすればいいですか

私はさまざまなマシンで作業しています。一部はcentos7、一部は です。同じバージョンを両方で実行することはできないため、各「タイプ」で異なるバージョンのcentos6バイナリを構築します。tmux

作業するボックスに応じて.bashrcのバージョンを切り替えるにはどうすればよいでしょうか?tmux

答え1

このコマンドはuname -m、現在使用しているアーキテクチャを示します。たとえば、現在の私のシステムでは次のようになります。

$ uname -m
x86_64

~/bin/i686とにアーカイブバイナリを入れることを提案します~/bin/x86_64。(または、32ビットPowerか何か他のものであれば、何でもuname -m返します。)次に、~/.bash_profile(これは適切な場所、次のような行があります:

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

これにより、この新しいアーキテクチャ固有の bin パスが既存のパスに追加されます。

または、マシン アーキテクチャ以外のものが必要な場合は、別の識別子を使用します。たとえば、CentOS のバージョンを確認する簡単な方法は、次のように、centos-releaseを含むパッケージのバージョンを確認することです。rpm -q

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

どちらかになります~/bin/centos6~/bin/centos7、エラー処理がないので、Fedoraなどで意味不明なエラーメッセージが表示されます。まさにその道の途中if(これを実行する前に、centos-release が存在するかどうかをステートメントで確認する必要があるかもしれません。)

また、この RPM コマンドを数百分の 1 秒高速化することもできます--nosignatures --nodigest。大した問題ではありませんが、新しいログイン シェルごとに実行されるため、追加の入力を行う価値があると思われます。

関連情報