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.
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 ?
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.
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 .