make command para instalar no linux dê a ele um diretório

-1

Eu quero instalar o bedtools (ou seja, um código fonte em c ++ para manipular certos tipos de arquivos). Para instalá-lo, as instruções de instalação dizem para baixar o arquivo tar, descompactar o arquivo, ir para o diretório dos arquivos untar e, em seguida, digitar make.

As instruções de instalação são as seguintes:

curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz
tar -zxvf BEDTools.tar.gz
cd BEDTools
make clean
make all
sudo cp bin/* /usr/local/bin/

Mas como posso dar um prefixo para que eu possa instalá-lo em um diretório específico?

Sei que posso pesquisar no Google e tentar responder, mas, como estou instalando o software, prefiro perguntar e garantir que estou executando corretamente, sem correr o risco de não saber onde o instalei, etc.

Eu tentei make --prefix mas prefixo não é uma opção. Estou acostumado a usar o configure, make, make install, mas este software diz para ser instalado apenas com make.

Obrigado!

    
por Dnaiel 07.12.2012 / 04:47

3 respostas

1

A última parte do processo de instalação é copiar os binários para um local que esteja no caminho de pesquisa do seu shell. Você pode descobrir sobre o caminho de pesquisa digitando echo $PATH . Para mim é:

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin

Isso significa que, quando eu digito um nome de programa no shell, ele primeiro procurará em /opt/local/bin se o comando puder ser encontrado lá, depois em /opt/local/sbin , etc. Se eu quisesse procurar em minha casa pasta gostaria de emitir o seguinte comando:

PATH=$PATH:~/bin # search my personal bin folder last

ou

PATH=~/bin:$PATH # search my personal bin folder first

Esta alteração desaparecerá assim que eu sair do shell. Para corrigir isso, eu preciso adicionar o comando a um script que é executado no log in (isso pode ser dependente do sistema operacional). Para mim (no Mac OS X) é o (%) .profile arquivo na minha pasta pessoal, onde eu adiciono a seguinte linha:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH:~/bin

O $PATH é importante para manter os importantes caminhos de pesquisa em volta, que já foram definidos. Se você acidentalmente excluir essa parte, você deve fornecer o caminho absoluto para seus comandos: como /bin/ls , /usr/bin/vim , ...

Você pode descobrir qual comando está sendo executado digitando which <cmd> no seu shell.

    
por 07.12.2012 / 05:16
3

A linha

sudo cp bin/* /usr/local/bin

está instalando os binários compilados em /usr/local/bin . Se você quiser instalá-los em outro lugar, basta alterar a pasta de destino nesta declaração. Por exemplo, se você quiser colocá-los em uma pasta bin em seu diretório inicial, será

cp bin/* ~/bin

(Você pode omitir a parte sudo se estiver instalando em algum lugar em que você já tenha acesso de gravação.)

    
por 07.12.2012 / 04:55
1

Depende do projeto em particular.

Para muitos programas GNU, você pode alterar o destino passando --prefix at configure time.

E vários Makefile -s foram escritos para que você pudesse

  make install DESTDIR='/tmp/somedestdir'

(mas isso pode não funcionar se o binário tiver algum caminho codificado nele)

    
por 07.12.2012 / 08:45