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
.