Wie kann ich eine Binärdatei abhängig von der Maschine, auf der ich mich befinde, aliasen?

Wie kann ich eine Binärdatei abhängig von der Maschine, auf der ich mich befinde, aliasen?

Ich arbeite auf verschiedenen Maschinen, manche als centos7, manche als centos6. Ich erstelle eine Binärdatei tmuxmit einer anderen Version für jeden „Typ“, da die gleiche Version nicht auf beiden ausgeführt werden kann.

Wie kann ich meinem Computer sagen, dass er je nachdem, an welcher Box ich arbeite, .bashrczwischen den Versionen wechseln soll ?tmux

Antwort1

Der Befehl uname -mgibt an, auf welcher Architektur Sie sich befinden. Auf meinem aktuellen System sieht das beispielsweise so aus:

$ uname -m
x86_64

Ich würde vorschlagen, Archful-Binärdateien in ~/bin/i686und zu setzen ~/bin/x86_64. (Oder, wenn es 32-Bit-Power oder etwas anderes ist, was auch immer uname -mzurückkommt.) Dann in ~/.bash_profile(das ist dasder richtige Ort für diese, haben Sie eine Zeile wie diese:

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

Dadurch wird dieser neue archspezifische Binärpfad an Ihren vorhandenen Pfad angehängt.

Oder, wenn Sie etwas anderes als die Rechnerarchitektur wollen, verwenden Sie ein anderes Unterscheidungsmerkmal. Eine einfache Möglichkeit, CentOS-Versionen zu erkennen, besteht beispielsweise darin, sich die Version des centos-releasePakets anzusehen, mit rpm -q, also etwa so:

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

~/bin/centos6was Ihnen entweder oder bringt ~/bin/centos7— obwohl es keine Fehlerbehandlung gibt, also erhalten Sie unter Fedora oder so eine unsinnige Fehlermeldungdirekt im Weg. (Überprüfen Sie möglicherweise, ob „centos-release“ mit einer ifAnweisung vorhanden ist, bevor Sie dies überhaupt ausführen.)

Sie können --nosignatures --nodigestdiesen RPM-Befehl auch um einige Hundertstelsekunden beschleunigen. Das ist keine große Sache, aber da es bei jeder neuen Login-Shell passiert, scheint es die zusätzliche Eingabe wert zu sein.

verwandte Informationen