Esta é a minha primeira vez tentando compilar e instalar qualquer coisa em uma máquina Linux. Eu obtive a versão mais recente do https://github.com/processone/exmpp via git e li as instruções que afirmam:
2. Construa e instale
Exmpp usa as ferramentas automáticas. Portanto, o processo é bastante comum:
$ ./configure $ make $ sudo make install
depois do tipo ./configure
eu recebo o erro
Não foi possível encontrar o install-sh, install.sh ou shtool no ac-aux
O Google foi de pouca ou nenhuma ajuda. Não tenho certeza do que devo fazer. Qualquer ajuda seria muito apreciada
Bem, eu tentei a resposta de sebastian_k e não funcionou para mim (
./configure
falhei no meio do caminho com um erro extremamente estranho).No entanto, o que funcionou para mim foi copiar as instruções usadas neste log de construção que encontrei
A versão curta (para que você não precise percorrer você mesma) é:
fonte
autoreconf -i
é a resposta correta (ov
ef
são geralmente opcional)Esta pergunta, e a maioria das outras respostas aqui, surgem de um mal-entendido de como os projetos que usam o GNU Build System (aka Autotools) são distribuídos. De fato, no caso da biblioteca Erlang XMPP mencionada pelo OP, o mal-entendido parece estar da parte dos desenvolvedores.
Obtendo o software da maneira certa
Se tudo o que você deseja fazer é compilar e instalar um projeto lançado com o GNU Autotools, não deve fazer check-out no sistema de controle de origem . Em vez disso, você deve baixar o release de origem empacotado fornecido pelo desenvolvedor. Normalmente, eles tomam a forma de tarballs distribuídos no site do projeto. Para projetos hospedados inteiramente no GitHub, Savannah ou em algum serviço de hospedagem semelhante, esses tarballs geralmente são encontrados atrás de algum link chamado "Download" ou "Releases". Você descompacta o pacote e pronuncia alguma variante do
./configure && make && sudo make install
encantamento padrão . Isso é tudo; você não precisa invocar nenhum dos GNU Autotools e nem precisa ter o GNU Autotools instalado no seu sistema.A razão pela qual você, usuário, não precisa do GNU Autotools para compilar um projeto empacotado pelo Autotools é que o desenvolvedor já usou os vários programas do Autotools para gerar um " pacote de distribuição" que pode ser usado para criar o software em qualquer Sistema Unix-like. O tarball de distribuição contém um
configure
script altamente portátil que verifica o ambiente de construção, verifica dependências e constrói umMakefile
personalizado para o seu sistema.Então, quando você precisa do Autotools?
O único motivo para você precisar instalar e chamar o GNU Autotools por si mesmo é se você deseja fazer um trabalho de desenvolvimento em um projeto criado com o Autotools. E mesmo assim, você provavelmente não precisará do Autotools, a menos que altere as dependências do projeto. Nesse caso, você seria realmente precisa verificar a fonte original, fazer mudanças apropriadas aos Autotools-specific arquivos de entrada (
configure.ac
,Makefile.am
, etc.), e executar os Autotools sobre eles para gerar um novoconfigure
arquivo. Se você deseja publicar independentemente o pacote revisado, use o Makefile gerado pelo Autotools para gerar um novo pacote de distribuição e, em seguida, publique esse pacote em algum lugar online.O problema é que alguns desenvolvedores disponibilizam seu repositório de origem publicamente, mas deixam de publicar seus tarballs de distribuição (ou dificultam a localização de onde são publicados). Por exemplo, em vez de publicar seus tarballs de distribuição como GitHub Releases , o GitHub Releases da biblioteca Erlang XMPP são tarballs do repositório de origem bruta. Isso torna impossível compilar o projeto sem o GNU Autotools, derrotando todo o propósito de usar o Autotools.
Resumo de TL; DR
As GNU Autotools são algo que os desenvolvedores usam para criar pacotes portáteis de código fonte para os usuários. Os usuários devem baixar e compilar a partir desses pacotes de origem, não o código original do sistema de controle de origem. Se os desenvolvedores não fornecerem esses pacotes de código-fonte, eles não estarão usando o Autotools corretamente e devem ser gentilmente batidos com uma truta molhada até verem o erro de seus caminhos.
fonte
./configure && make && sudo make install
como você sugeriu no segundo parágrafo.Eu tive esse problema e achei que era devido à seguinte linha
configure.ac
:A linha não era ruim por si só, mas precisava ser movida para mais perto da parte superior do
configure.ac
arquivo.fonte
Faça o seguinte para corrigir esse problema,
Então faça a instalação
fonte
Ao tentar compilar o GNU Octave do repositório Mercurial, você pode encontrar esse problema. A correção é executada
./bootstrap
enquanto estiver na raiz da árvore de origem.fonte
sudo apt-get install automake autoconf
trabalha com sucesso
fonte
Eu tive um problema semelhante quando tentei
./configure
um código-fonte e obtive o mesmo erro que o postado. Finalmente resolvi meus problemas digitando o código:fonte
Após instalar o
autogen
pacote, este erro foi resolvido nawolfSSL
compilação.fonte
Eu tive um erro ligeiramente diferente:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Acontece que o configure não pôde encontrar
build-aux/install-sh
. Eu liguei assimln -s build-aux/install-sh .
então constrói.
Espero que ajude alguém lá fora!
fonte