Como termino a instalação de um programa a partir do código-fonte?

2

Eu compilei o sqlite3 do código-fonte, versão 3.6.16. Eu usei --prefix=/usr/bin como minha única opção de compilação.

Os binários compilados e instalados corretamente, mas no diretório /usr/bin/sqlite3/bin . Então o aplicativo fica em /usr/bin/sqlite3/bin/sqlite3 .

Agora, como eu "digo ao Linux" que o sqlite3 está instalado lá? Então, quando eu executar which sqlite3 , ele imprimirá /usr/bin/sqlite3/bin/sqlite3 ?

Eu preciso desta versão especificamente de sqlite3 para compilar um RubyGem; sqlite3-ruby , v1.3.0 ou superior.

Suponho que adicionarei PATH ou algo ao meu ~/.profile e, em seguida, executarei source .profile para recarregar as alterações. O que "está dizendo ao Linux" onde os aplicativos são instalados para serem chamados? symlinks ?

    
por dmanexe 31.05.2011 / 22:05

2 respostas

1

Normalmente, ao compilar o código-fonte, eu usaria algo semelhante ao seguinte:

--prefix=/usr

Eu suspeito que isso colocará tudo onde você espera que seja.

    
por Kory Wnuk 01.06.2011 / 00:32
2

Experimente editar ~/.bashrc para incluir esta linha:

export PATH=$PATH:/usr/bin/sqlite3/bin/

Outra maneira de fazer isso sem modificar o caminho é criar um link simbólico:

sudo ln -s /usr/bin/sqlite3/bin/sqlite3 /usr/local/bin/sqlite3

Esteja ciente de que, se você instalou o pacote sqlite3 , seu arquivo executável entrará em conflito com sua versão recém-compilada. Você terá que executar /usr/bin/sqlite3/bin/sqlite3 explicitamente.

BTW, usando --prefix=/usr/bin como uma opção de compilação não é uma boa ideia, eu recomendaria --prefix=/usr/local .

    
por Flimm 31.05.2011 / 23:15