Não foi possível localizar o BerkeleyDB

9

Estou tentando instalar um minerador de bitcoin-repote-rpc [http://www.mediafire.com/file/ve608cl5mk1ka3l/bitcoin-remote-rpc-20110227-src.zip]no meu laptop rodando no ubuntu quantal. Preciso usar o CMake para criar o projeto. Encontrei alguns erros e consegui resolvê-los instalando as dependências. Agora, o último bit que não consigo resolver é esta mensagem de erro

CMake Error at CMakeLists.txt:112 (MESSAGE):
  Could not locate BerkeleyDB

Eu gostaria de saber como resolver este problema. Agradecendo antecipadamente.

Quando eu corro

  dpkg -l 'libdb*' | grep '^ii'

Eu recebo os seguintes pacotes já instalados

 ii  libdb5.1:i386                             5.1.29-5ubuntu2                            i386         Berkeley v5.1 Database Libraries [runtime]
ii  libdbus-1-3:i386                          1.6.4-1ubuntu4                             i386         simple interprocess messaging system (library)
ii  libdbus-glib-1-2:i386                     0.100-1ubuntu0.1                           i386         simple interprocess messaging system (GLib-based shared library)
ii  libdbusmenu-glib4:i386                    12.10.2-0ubuntu1                           i386         library for passing menus over DBus
ii  libdbusmenu-gtk3-4:i386                   12.10.2-0ubuntu1                           i386         library for passing menus over DBus - GTK+ version
ii  libdbusmenu-gtk4:i386                     12.10.2-0ubuntu1                           i386         library for passing menus over DBus - GTK+ version
ii  libdbusmenu-qt2:i386                      0.9.2-0ubuntu3                             i386         Qt implementation of the DBusMenu protocol

E esta é a parte do CMakelists.txt que parece estar produzindo o erro

# Use BDB local module
FIND_PACKAGE(BerkeleyDB)

IF(DB_INCLUDE_DIR)
    INCLUDE_DIRECTORIES(${DB_INCLUDE_DIR})
ELSE(DB_INCLUDE_DIR)
    MESSAGE(FATAL_ERROR "Could not locate BerkeleyDB")
ENDIF(DB_INCLUDE_DIR)
Nadeem Muhammad
fonte
Por favor, adicione mais informações sobre o seu problema. A questão está faltando no link para os códigos-fonte do bitcoin miner e você também deve publicar o log de compilação completo para análise. Se minha resposta abaixo não ajudar, precisarei dessas informações para atualizar minha resposta.
oerdnj
mais informações foram adicionadas.
Nadeem Muhammad
Você não recebe pacotes instalados sudo apt-cache search libdb, mas pacotes disponíveis. Por favor, obter a lista de pacotes instalados comdpkg -l 'libdb*' | grep '^ii'
oerdnj
Eu sou muito novo no linux e preciso aprender do zero :) Eu executei o comando e editei minha pergunta para adicionar os resultados. Por favor revise. Obrigado por seu apoio espécie
Nadeem Maomé

Respostas:

12

Pode haver dois motivos:

  1. (Simples) Você tem o libdb-dev e o libdb ++ - dev instalado?
  2. Se a resposta à primeira pergunta for afirmativa, o motivo usual para falha nas compilações é o suporte inexistente para a versão mais recente do Berkeley DB. Você precisará editar o CMakeLists.txt e alterá-lo para aceitar libdb-5.1.so ou libdb ++ - 5.1.so no caso de C ++.
oerdnj
fonte
O banco de dados Berkeley foi resolvido com a instalação do libdb-dev e libdb ++ - dev, conforme recomendado. No entanto, estou preso com outro erro agora. 'Não foi possível encontrar o CURL' Por favor, informe-me o próximo passo.
Nadeem Muhammad
Instale as bibliotecas de desenvolvimento CURL, não se lembre do nome, mas se o fizer apt-cache search libcurl dev, ele mostrará o nome do pacote necessário.
oerdnj
Obrigado por sua ajuda. Consegui passar por todos esses erros de compilação e o arquivo foi finalmente criado. Portanto, o problema original foi resolvido. No entanto, o arquivo do aplicativo não é aberto e quando clico duas vezes nele. Recebo a seguinte mensagem: 'Não há aplicativo instalado para arquivos executáveis. Deseja procurar um aplicativo para abrir este arquivo?
Nadeem Muhammad
Sinto muito, mas não faço ideia. Tente executá-lo no terminal fazendo <path_to_the_application>/<application_name>(não sei o nome do aplicativo) ou fazendo cd <path_to_application>; ./<application_name>.
Oerdnj