Befehlsmapping in bash möglich?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mgolbs
Beiträge: 275
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Befehlsmapping in bash möglich?

Beitrag von mgolbs » 29.10.2015 10:31:32

Hallo,

ist es grundsätzlich möglich ein Mapping (eine Art Link) eines Befehls in der bash z.B. für einen Benutzer vorzunehmen? Aktuell habe ich das Problem, dass in einem recht komplexen Installationsprozess nach mpicc gesucht wird, das System aber kein mpicc drauf hat und statt dessen mpicc.openmpi-gcc nutzt. Vom Gefühl her sollte doch so etwas gehen. Über Informationen wäre ich sehr dankbar.

Gruß und Dank markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Befehlsmapping in bash möglich?

Beitrag von smutbert » 29.10.2015 10:42:27

man kann aliase definieren:

Code: Alles auswählen

alias mpicc=mpicc.openmpi-gcc
oder natürlich einen symbolischen Link, so wird ~/bin, wenn es existiert bei Debian bereits in der Standardkonfiguration zu PATH hinzugefügt, wenn ich mich recht erinnere

Code: Alles auswählen

$ mkdir ~/bin
$ ln -s $(which mpicc.openmpi-gcc) ~/bin/mpicc
Das alles geht natürlich auch systemweit. Eine weitere systemweite Variante wäre die Verwendung des alternatives-System.

Code: Alles auswählen

# update-alternatives --install /usr/bin/mpicc mpicc $(which mpicc.openmpi-gcc) 50

mgolbs
Beiträge: 275
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Re: Befehlsmapping in bash möglich?

Beitrag von mgolbs » 29.10.2015 12:44:17

Hallo,

vielen Dank für die Information. Kann man diese bei Bedarf auch wieder löschen?

Gruß und Dank Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

uname
Beiträge: 12400
Registriert: 03.06.2008 09:33:02

Re: Befehlsmapping in bash möglich?

Beitrag von uname » 29.10.2015 13:31:50

Ich denke man könnte den symbolischen Link besser unter /usr/local/bin eintragen sofern der Befehl für andere Personen genauso oder gar nicht genutzt werden soll. Dort braucht man als Administrator auch kein schlechtes Gewissen bei Anlage und Löschung haben. Im Benutzerverzeichnis würde ich keinesfalls rumändern. Allenfalls den Anwender auffordern die Änderung selbst vorzunehmen. Die Alternativen-Lösung würde ich für Nicht-Debian-Programme auch ungern anwenden wollen.

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Befehlsmapping in bash möglich?

Beitrag von smutbert » 29.10.2015 13:39:35

mgolbs hat geschrieben:[…]
ist es grundsätzlich möglich ein Mapping (eine Art Link) eines Befehls in der bash z.B. für einen Benutzer vorzunehmen?[…]
Deshalb habe ich ~/bin geschrieben. Natürlich kann man alles davon wieder löschen.

Einen alias, den man beispielsweise in die ~/.bashrc oder /etc/bash.bashrc geschrieben hat, kann man wieder herausschlöschen, einen symbolischen Link löschen und auch aus dem alternatives-System, das im Endeffekt auch nur symblinks macht, kann man das wieder entfernen:

Code: Alles auswählen

# update-alternatives --remove mpicc /usr/bin/mpicc
oder falls man sicher ist, dass man diese "Alternative" selbst angelegt hat und sie vom System nicht verwendet wird

Code: Alles auswählen

# update-alternatives --remove-all mpicc

mgolbs
Beiträge: 275
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Re: Befehlsmapping in bash möglich?

Beitrag von mgolbs » 29.10.2015 14:35:35

Hallo,

vielen Dank! Werde ich gleich mal probieren.

Gruß und Dank Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

Antworten