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

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

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 ‘make’ a compilação também falha.

Embora a compilação possa ser realizada 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 ele esteja executando sobre. Há alguma diferença na maneira como sudo -s é tratado no 9.04 em comparação com o 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?

Responder1

O makecomando 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. Não sei o que faz, mas não deveria, pois requer privilégios de root.

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

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

O makecomando não deve exigir acesso root, isso evitariaqualquerusuário instalando seu programa. Você mencionou, é 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.

informação relacionada