Wie kann ich ein binäres Alias ​​abhängig von der Maschine sein, auf der ich bin

364
statquant

Ich arbeite auf verschiedenen Maschinen, einige so centos7, einige sind centos6, baue ich eine binäre tmuxmit einer anderen Version auf jedem ‚Typ‘ als die gleiche Version können nicht beide runn.

Wie kann ich sagen, dass ich je nach Box, an der ich arbeite .bashrc, zwischen den Versionen wechseln kann tmux?

0

1 Antwort auf die Frage

1
mattdm

Der Befehl uname -msagt Ihnen, auf welcher Architektur Sie sich befinden. Zum Beispiel jetzt auf meinem System:

$ uname -m x86_64 

Ich könnte vorschlagen, archful binaries in ~/bin/i686und einzufügen ~/bin/x86_64. (Oder wenn es sich um 32-Bit-Power oder etwas anderes handelt, was auch immer uname -mzurückkehrt.) Dann haben Sie in ~/.bash_profile(was der richtige Ort dafür ist, eine Zeile wie folgt:

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

Dadurch wird dieser neue arch-spezifische bin-Pfad an Ihren vorhandenen Pfad angehängt.

Wenn Sie etwas anderes als die Maschinenarchitektur wünschen, verwenden Sie einen anderen Distinguisher. Beispielsweise können Sie CentOS-Versionen auf einfache Weise feststellen, indem Sie sich die Version des centos-releasePakets ansehen rpm -q, und zwar folgendermaßen:

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

Das wird Sie entweder bekommen ~/bin/centos6oder ~/bin/centos7- obwohl es keine Fehlerbehandlung gibt, so bekommen Sie unter Fedora oder etwas eine sinnlose Fehlermeldung direkt im Pfad . (Vielleicht prüfen Sie, ob das centos-Release mit einer ifAnweisung existiert, bevor Sie diese überhaupt ausführen .)

Sie können auch hinzufügen --nosignatures --nodigest, um diesen RPM-Befehl um einige Hundertstel Sekunden zu beschleunigen. Keine große Sache, aber da dies bei jeder neuen Login-Shell der Fall sein wird, lohnt sich die zusätzliche Eingabe.

Es gibt hier ein kleines Missverständnis, beide sind 64bit, die Version von Centos unterscheidet sich immer noch +1 statquant vor 7 Jahren 0
Ich verstehe. In diesem Fall verwenden Sie dasselbe Grundkonzept, verwenden Sie jedoch einen anderen Distinguisher. mattdm vor 7 Jahren 0