Precisa usar o sudo -s para o comando make, dependendo da versão do Ubuntu

0

Nós temos um Makefile para compilar o driver de uma interface de rede. Ao chamar o Makefile em uma instalação do Ubuntu 9.04, precisamos chamar apenas 'make'. No entanto, ao chamar o Makefile em uma instalação do Ubuntu 10.04, precisamos chamar 'sudo -s make'.

No Ubuntu 9.04, se chamarmos 'sudo -s make', a compilação falhará. E no Ubuntu 10.04, se chamarmos de 'make' a compilação também falhará.

Embora a compilação possa ser executada em ambas as versões do Ubuntu emitindo ou não o bit 'sudo -s', gostaríamos de ter um único script .sh que chame o Makefile com sucesso, independentemente de qual versão do Ubuntu está sendo executado. Existem diferenças na forma como o sudo -s é tratado em 9.04 comparado a 10.04? E se houver, qual é a melhor solução para garantir que ambas as versões sejam atendidas em um único script .sh ao chamar make?

    
por Ponder Muse 07.03.2012 / 18:57

1 resposta

3

O comando make deve compilar o código-fonte. Essa é uma tarefa que não deve exigir privilégios administrativos. Para instalação em todo o sistema, são necessários privilégios de root. Isso significa, no seu caso, que o makefile não está correto. Eu não sei o que isso faz, mas não é para fazer isso, pois requer privilégios de root.

Considere o seguinte cenário: Um usuário deseja instalar o software. Ele / ela lança

./configure --prefix=/home/joe/bin/usr && make && make install

O comando make não deve requerer acesso root, isso evitaria qualquer usuário que instalasse seu programa. Você menciona, é um driver de rede, que normalmente não é necessário para ser usado por usuários não-root, de qualquer forma, você deve corrigir sua compilação.

    
por Marco 07.03.2012 / 19:17