quais pacotes são necessários para usar o make?

0

Eu tento compilar um pacote em um novo debian wheezy dentro de uma VM (Kernel de 32 bits):

cd /tmp/
wget https://github.com/freifunk-gluon/batman-adv-legacy/archive/master.zip
rm -Rf batman-adv-legacy-master
unzip master.zip
cd /tmp/batman-adv-legacy-master/
make
make install

Mas recebo o erro

/bin/sh: 1: cd: can't cd to /lib/modules/3.2.0-4-686-pae/build
Makefile:35: /lib/modules/3.2.0-4-686-pae/build is missing, please set KERNELPATH
/tmp/batman-adv-legacy-master/gen-compat-autoconf.sh /tmp/batman-adv-legacy-master/compat-autoconf.h
make -C /lib/modules/3.2.0-4-686-pae/build M=/tmp/batman-adv-legacy-master PWD=/tmp/batman-adv-legacy-master modules
make: *** /lib/modules/3.2.0-4-686-pae/build: No such file or directory.  Stop.

Eu também tentei:

cd /lib/modules/$(uname -r)/
ln -s /usr/src/batman-adv-2013.4.0/ build
cd -

Mas então recebo o erro

gen-compat-autoconf.sh /tmp/batman-adv-legacy-master/compat-autoconf.h
make -C /lib/modules/3.2.0-4-686-pae/build M=/tmp/batman-adv-legacy-master PWD=/tmp/batman-adv-legacy-master modules
make[1]: Entering directory '/usr/src/batman-adv-2013.4.0'
make[1]: *** No rule to make target 'modules'.  Stop.
make[1]: Leaving directory '/usr/src/batman-adv-2013.4.0'

Eu acho que tenho alguns pacotes faltando, mas quais?

    
por rubo77 19.01.2015 / 11:10

2 respostas

2

Você deve instalar o pacote de cabeçalhos linux para sua versão do kernel. Tente algo como o seguinte para o metapacote:

# apt-get install linux-headers-686-pae

No meu sistema (amd64), você pode ver como o pacote de cabeçalho instalado traz o diretório build que você está perdendo:

$ dpkg -L linux-headers-3.2.0-4-amd64 | grep ^/lib/modules
/lib/modules
/lib/modules/3.2.0-4-amd64
/lib/modules/3.2.0-4-amd64/source
/lib/modules/3.2.0-4-amd64/build

Devo acrescentar que isto é particularmente importante para o seu caso, porque você está tentando compilar um módulo do kernel. Em geral, você precisará (além do make e dos compiladores para os idiomas apropriados) os pacotes de cabeçalho para dependências do programa. No Debian, estes geralmente são encontrados em pacotes com nomes como <project>-dev .

    
por 19.01.2015 / 12:25
0

Você precisará do pacote build-essential para compilar pacotes no debian. Basta executar isso em um terminal:

sudo apt-get install build-essential

Isso também instalará alguns outros pacotes necessários para compilação (por exemplo, gcc). Isso deve resolver seu problema.

    
por 19.01.2015 / 11:32