Installer un programme sur Linux: fournir une commande courte

1

Supposons que vous distribuiez un programme sous Linux, que vous l'appeliez Foo, et que son fichier exécutable s'appelle foo.exe (car il s'agit d'un programme CLR qui s'exécute sous Mono) et qu'il a besoin de deux DLL dans le même répertoire et peut-être une version ultérieure peut avoir besoin de fichiers de données lus au démarrage et ainsi de suite, il est donc un peu fastidieux de le déplacer dans un répertoire bin global et préfère rester dans son répertoire d'origine ...

Mais l'utilisateur préférerait invoquer le programme en tapant à la fooplace de mono /path/to/foo.exe.

Quel est le meilleur / le plus habituel moyen de fournir une commande aussi courte? Un script / makefile d'installation peut-il / doit-il créer un script d'une ligne appelé fooinvoquant le chemin complet et placer le script d'une ligne dans un répertoire bin global? Si tel est le cas, quel devrait être le répertoire bin cible et existe-t-il des instructions sur la manière de procéder? Ou existe-t-il une alternative privilégiée?

edit : L’approche consistant à créer un script d’une ligne au moment de l’installation semble bien fonctionner, voici le script d’installation que j’ai écrit:

a@a-desktop:~/ayane$ cat install.sh 
#!/bin/sh
echo mono `pwd`/ayane.exe '"$@"' >ayane
chmod +x ayane
mv ayane /usr/local/bin
muraille
la source

Réponses:

4

Je mettrais un lien ou un script dans /usr/local/bin

Un lien si tout ce que vous devez faire pour commencer foo.exeest de taper le chemin complet /my/path/foo.exe. D'autre part, vous aurez besoin d'un petit script shell qui appelle mono /path/to/foo.exe.

Fusil
la source
2

J'utiliserais la norme de hiérarchie du système de fichiers comme guide, installerais votre paquet /opt/package_nameet placerais votre script d'encapsuleur dans /usr/local/binou autoriserais l'utilisateur à configurer ces choix et à générer le script enveloppant au moment de l'installation, en fonction de ces choix. Une alternative serait de mettre le script d'emballage dans le même répertoire que l'application et ajoutez le répertoire de l' application à PATHdans /etc/profile, mais je considère que cela moins souhaitable.

Dennis Williamson
la source
2

Utilisez un alias

mettre quelque chose comme

alias foo='mono /path/to/foo.exe'

dans le fichier d'initialisation du shell de l'utilisateur.

Iain
la source
1

Le moyen le plus simple est d'utiliser un alias Bash. Cependant, je ne suis pas sûr que la pratique habituelle consiste à ajouter un alias aux fichiers de profil.

Nerdfest
la source