
Ich arbeite auf verschiedenen Maschinen, manche als centos7
, manche als centos6
. Ich erstelle eine Binärdatei tmux
mit 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, .bashrc
zwischen den Versionen wechseln soll ?tmux
Antwort1
Der Befehl uname -m
gibt 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/i686
und zu setzen ~/bin/x86_64
. (Oder, wenn es 32-Bit-Power oder etwas anderes ist, was auch immer uname -m
zurü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-release
Pakets anzusehen, mit rpm -q
, also etwa so:
PATH=$PATH:~/bin/centos$(rpm -q --qf '%{VERSION}' centos-release)
~/bin/centos6
was 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 if
Anweisung vorhanden ist, bevor Sie dies überhaupt ausführen.)
Sie können --nosignatures --nodigest
diesen 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.