Instalando um programa no Linux: fornecendo um comando curto

1

Suponha que você esteja distribuindo um programa para rodar no Linux, chame-o Foo, e o executável do programa é chamado foo.exe (porque é um programa CLR para ser executado sob o Mono) e ele precisa de algumas DLLs no mesmo diretório e talvez uma versão posterior pode precisar de alguns arquivos de dados que ele lê na inicialização e qualquer outra coisa, então realocá-lo em um diretório bin global é um pouco incômodo e ele realmente prefere permanecer em seu diretório original ...

Mas o usuário prefere invocar o programa digitando foo em vez de mono /path/to/foo.exe .

Qual é a melhor / mais usual maneira de fornecer um comando tão curto? Pode / deve um script de instalação / makefile criar um script de uma linha chamado foo que invoca o caminho completo e colocar o script de uma linha em um diretório bin global? Em caso afirmativo, qual deve ser o diretório bin do destino e há instruções sobre como fazer isso? Ou existe uma alternativa preferida?

edit : A abordagem de criar um script de uma linha no momento da instalação parece funcionar bem. Aqui está o script de instalação real que acabei escrevendo:

a@a-desktop:~/ayane$ cat install.sh 
#!/bin/sh
echo mono 'pwd'/ayane.exe '"$@"' >ayane
chmod +x ayane
mv ayane /usr/local/bin
    
por rwallace 30.05.2010 / 18:33

4 respostas

4

Eu colocaria um link ou um script em /usr/local/bin

Um link se tudo que você precisa fazer para iniciar foo.exe é digitar o caminho completo /my/path/foo.exe . Você, por outro lado, precisaria de um pequeno script de shell que chamasse mono /path/to/foo.exe .

    
por 30.05.2010 / 18:53
2

Eu usaria o Padrão da hierarquia do sistema de arquivos como guia e instalaria o seu pacote em /opt/package_name e coloque seu script de wrapper em /usr/local/bin ou permita que o usuário configure essas opções e gere o script de wrapper no momento da instalação com base nessas escolhas. Uma alternativa seria colocar o script wrapper no mesmo diretório que o aplicativo e incluir o diretório do aplicativo em PATH in /etc/profile , mas considero isso menos desejável.

    
por 30.05.2010 / 18:50
2

Use um alias

coloque algo como

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

no arquivo de inicialização do shell do usuário.

    
por 30.05.2010 / 18:54
1

A maneira mais simples é com um alias de Bash. Não tenho certeza se é prática normal adicionar um alias aos arquivos de perfil.

    
por 30.05.2010 / 18:51